「 Call to undefined function curl_init() 」エラーの回避法

Ubuntu 14.04 + Apache + PHP で開発中、エラーが発生

PHP Fatal error: Call to undefined function curl_init() in xxxx

phpでcurlが使えないようです

インストールします
$ sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

Apache再起動
$ sudo service apache2 restart

これで有効になりました

CakephpでUnknown status codeのinternal errorが発生した

Cakephpでデータベースの登録処理を作っていたらエラーが発生

cakephp-internal-error

internal-error??
検索したらキャッシュとかデータベースとか言われてました

ログを見ると
$ tail app/tmp/logs/error.log
2014-11-22 06:00:44 Error: [CakeException] Unknown status code
Request URL: /cakephp/comments/add
Stack Trace:
#0 /vagrant/cakephp/lib/Cake/Controller/Controller.php(785): CakeResponse->statusCode(’25’)
#1 /vagrant/cakephp/app/Controller/CommentsController.php(16): Controller->redirect(Array, ’25’)
#2 [internal function]: CommentsController->add()
・・・

リダイレクトでコード25でとぼうとしてる..

間違いはこれでした

$this->redirect(array('controller' => 'posts', 'action' => 'view'), $id);
// カッコの位置を修正して第一引数の配列にdataを入れる
$this->redirect(array('controller' => 'posts', 'action' => 'view', $id));

redirectの第2引数には、HTTPのレスポンスコードが入るようで
やっかいかとおもったらちょっとの違いでした

UbuntuにVagrantを入れてみた

Ubuntu 14.04にVagrantを入れてみました

VirtualBoxを入れる

UbuntuにVirtualBoxをインストールする
を参考にUbuntu 14.04のためsource.listには
deb http://download.virtualbox.org/virtualbox/debian trusty contrib
を追記、あとは同じです

vagrantを入れる

古いバージョンはgemでしたがいまはインストーラーがあります
https://www.vagrantup.com/downloads.html
からOSにあったものをダウンロードします

$ dpkg -i

rubyをrbenvで入れてたため
$ rbenv rehash
参考) Ubuntuにrubyを入れてみた

これでvagrantが使えます
$ vagrant -v
Vagrant 1.6.5

ベースにしたいboxを
https://vagrantcloud.com/
で探します

見つけたboxを
$ vagrant init (ボックス名)
で指定します

Ubuntu 12.04 ならpreciseで検索して
$ vagrant init ubuntu/precise32
とかです

これでVagrantfile
ができるので、必要であれば設定を変えたります

あとは
$ vagrant up
すればOSが立ち上がり
$ vagrant ssh
でsshでログインできます

Ubuntuにrubyを入れてみた

Ubuntu 14.04にrubyを入れてみました
rubyのバージョンが切り替えられるようにrbenvを使います

gitは入れておきます
参考) UbuntuにGitを入れてみた

rbenvをインストール

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bashrc
$ echo ‘eval “$(rbenv init -)”‘ >> ~/.bashrc
$ . ~/.bashrc

ruby-buildを導入

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rubyをインストール

必要なものをいれておきます
$ sudo apt-get install -y libssl-dev zlib1g-dev libreadline-dev libyaml-dev flex gettext
$ sudo apt-get install -y build-essential

$ rbenv install –list
でインストールできるrubyのバージョンが選べます

2.1.2を入れてみます
$ rbenv install 2.1.2
$ rbenv global 2.1.2
$ rbenv rehash
$ gem update –system
$ echo “install: –no-rdoc –no-ri” > ~/.gemrc
$ echo “update: –no-rdoc –no-ri” >> ~/.gemrc

これで準備できました
$ rbenv versions
でいれたrubyのバージョンがみれます

$ rbenv local (ruby version)
でそのディレクトリ以下で有効になります