php5.4.9が出ているので、それでfuelphpを動かしてみる
phpの複数のバージョンを入れて動作確認するには、
phpenvのインストールとphpbuildのインストールをすると調子良い。
phpenv:複数バージョンの切り替えを司る機能
phpbuild:複数バージョンをインストール出来る仕組み
これを使うと、自分の環境の指定したディレクトリ意外汚れないからいい感じ。
みんなにも迷惑かからない
■完成図
/home/xxx/.phpenv/version/5.4.9<-- php5.4.9が入る場所
/home/xxx/.php-buid
こんなディレクトリ構成になる
■phpenvを入れる
git clone https://github.com/CHH/phpenv.git
cd phpenv/bin/
./phpenv-install.sh
これで、phpenvの導入完成
.bashrcの修正
PATH="$PATH":/home/xxx/.phpenv/bin
eval "$(phpenv init -)"
■phpbuildを入れる
git clone https://github.com/CHH/php-build.git ~/.php-build
.bashrcの修正
PATH="$PATH":/home/xxx/.phpenv/bin:/home/xxx/.php-build/bin
■どんなバージョンが入れられるんだろう・・・確認してみる
$ php-build --definitions
5.2.17
5.3.10
5.3.11
5.3.11RC1
5.3.11RC2
:
:
めっちゃいっぱいある
■php5.4.9をいれる
そのまえに、今回cli版だけでなく、fuelphpも動かしたいので、apacheで
利用するphpのモジュール(libphp5.so)も変える必要がある。
1.現在利用しているlibphp5.soを退避させておく
(現状の環境だと、/usr/lib64/httpd/modules/配下にあるのでそれをバックアップ)
これから実行するphp-buildコマンドで、ここの、modules配下にあるlibphp5.soが
上書きされるようになるんだけど、自分の権限でここが上書きできないのであれば、
modules配下の書き込み権限を変えておく必要がある。
2.phpをbuildする設定を変える。
普通にbuildすると、libphp5.soを作ってくれないので、設定ファイルを修正
/home/xxx/.php-build/share/php-build/definitions
ここの配下にある、5.4.9を修正
configure_option "--with-apxs2" "/usr/sbin/apxs" <--- この行追加
install_package "http://downloads.php.net/stas/php-5.4.9.tar.bz2"
install_pyrus
install_xdebug "2.2.1"
apxsのパスを正しいものにすること。
3.buidする
php-build 5.4.9 ~/.phpenv/versions/5.4.9
このコマンド叩けば良いんだけど、いろいろパッケージ入れろとうるさい
sudo yum install re2c
sudo yum install libxml2-devel
sudo yum install openssl-devel
sudo yum install libcurl-devel
sudo yum install libjpeg-devel
sudo yum install libpng-devel
sudo yum install readline-devel
sudo yum install libtidy-devel
sudo yum install libxslt-devel
この位はインストールして出来上がり。
ls ~/.phpenv/versions/5.4.9/
bin etc include lib php pyrus sbin share var
こんな感じでインストール出来ている
4.ちゃんと入ったか確認
phpenv versions
* system
5.4.9 (set by /home/xxx/.phpenv/versions/5.4.9/.ruby-version)
お!5.4.9がある。これでOK
5.バージョンを切り替える
phpenv local 5.4.9
オプションにlocalとglobalが指定できる
localにすると、.phpenv/versions/5.4.9/配下のphpが5.4.9が動く
phpenv versions
system
* 5.4.9 (set by /home/xxx/.phpenv/versions/5.4.9/.ruby-version)
お!切り替わった
■php5.4.9をいれる(2)
apache経由でも動くようにする
(1)でlibphp5.soモジュールを作成している。
/usr/lib64/modules/libphp5.soが最新のものになっているはず
1.まずは、5.4.9用のモジュールを移動させる
5.4.9/lib/httpd/modules/配下に、libphp5.soを移動
2.(1)で退避させた旧バージョンを元にもどしておく
3.httpd.confの修正
php5.4.9を動かす際は、
こんな感じになる
LoadModule php5_module /home/xxx/.phpenv/versions/5.4.9/lib/httpd/modules/libphp5.so
4.じゃー動くか確認
apacheをリスタートしとく。
5.4.9/配下のディレクトリ構成は下記のような感じ。
ここのvarにdocumentrootを作っておく
bin etc include lib php pyrus sbin share var
var/www/index.php
index.phpにphpinfo();だけ入れておく。
5.これで見てみると、自分の環境は、5.4.9で動いておる
■fuelphpを入れてみる
1.環境を作る
5.4.9配下はこんな感じだけど、
bin etc include lib php pyrus sbin share var
ここに、fuelのディレクトリを作った
bin etc fuel include lib php pyrus sbin share var
documentrootはvar/www配下なので、fuel配下に設けるpublicディレクトリを
var/www/プロジェクト にたいしてシンボリックリンクを後で張る
2.fuelディレクトリ配下での作業
curl get.fuelphp.com/oil > get_installer
get_installerのファイルのPREFIXをカレントディレクトリに修正
./get_installer
これで、同じディレクトリfuel配下のディレクトリにoilが置かれる
oilコマンドの実行
するんだけど、phpを叩いてしまうと、system上動いているphpを
キックしてしまうので、php5.4.9が作動するように、oilファイルの
phpを
/home/xxx/.phpenv/versions/5.4.9/bin/php に変更する
じゃー実行
oil create プロジェクト名
できた。
プロジェクト配下にあるpublicディレクトリを5.4.9/var/www配下に対して
シンボリックリンクを張って完成
cliでphpを起動しようとすると、/etc/php.iniを見に行ってしまうので、起動するときは、
~/.phpenv/versions/5.4.9/bin/php -c /home/xxx/.phpenv/versions/5.4.9/etc/php.ini oil g controller registration
こんな感じで実行する
※php oil g controllerが全然動かなかった。
これは、phpがsystem上動いているPHPをキックするため。
oilコマンドを5.4.9の環境で実行する時は、
/home/xxx/.phpenv/versions/5.4.9/bin/php oil g controller
と言う風にしないとダメ・・・
はまった
phpの複数のバージョンを入れて動作確認するには、
phpenvのインストールとphpbuildのインストールをすると調子良い。
phpenv:複数バージョンの切り替えを司る機能
phpbuild:複数バージョンをインストール出来る仕組み
これを使うと、自分の環境の指定したディレクトリ意外汚れないからいい感じ。
みんなにも迷惑かからない
■完成図
/home/xxx/.phpenv/version/5.4.9<-- php5.4.9が入る場所
/home/xxx/.php-buid
こんなディレクトリ構成になる
■phpenvを入れる
git clone https://github.com/CHH/phpenv.git
cd phpenv/bin/
./phpenv-install.sh
これで、phpenvの導入完成
.bashrcの修正
PATH="$PATH":/home/xxx/.phpenv/bin
eval "$(phpenv init -)"
■phpbuildを入れる
git clone https://github.com/CHH/php-build.git ~/.php-build
.bashrcの修正
PATH="$PATH":/home/xxx/.phpenv/bin:/home/xxx/.php-build/bin
■どんなバージョンが入れられるんだろう・・・確認してみる
$ php-build --definitions
5.2.17
5.3.10
5.3.11
5.3.11RC1
5.3.11RC2
:
:
めっちゃいっぱいある
■php5.4.9をいれる
そのまえに、今回cli版だけでなく、fuelphpも動かしたいので、apacheで
利用するphpのモジュール(libphp5.so)も変える必要がある。
1.現在利用しているlibphp5.soを退避させておく
(現状の環境だと、/usr/lib64/httpd/modules/配下にあるのでそれをバックアップ)
これから実行するphp-buildコマンドで、ここの、modules配下にあるlibphp5.soが
上書きされるようになるんだけど、自分の権限でここが上書きできないのであれば、
modules配下の書き込み権限を変えておく必要がある。
2.phpをbuildする設定を変える。
普通にbuildすると、libphp5.soを作ってくれないので、設定ファイルを修正
/home/xxx/.php-build/share/php-build/definitions
ここの配下にある、5.4.9を修正
configure_option "--with-apxs2" "/usr/sbin/apxs" <--- この行追加
install_package "http://downloads.php.net/stas/php-5.4.9.tar.bz2"
install_pyrus
install_xdebug "2.2.1"
apxsのパスを正しいものにすること。
3.buidする
php-build 5.4.9 ~/.phpenv/versions/5.4.9
このコマンド叩けば良いんだけど、いろいろパッケージ入れろとうるさい
sudo yum install re2c
sudo yum install libxml2-devel
sudo yum install openssl-devel
sudo yum install libcurl-devel
sudo yum install libjpeg-devel
sudo yum install libpng-devel
sudo yum install readline-devel
sudo yum install libtidy-devel
sudo yum install libxslt-devel
この位はインストールして出来上がり。
ls ~/.phpenv/versions/5.4.9/
bin etc include lib php pyrus sbin share var
こんな感じでインストール出来ている
4.ちゃんと入ったか確認
phpenv versions
* system
5.4.9 (set by /home/xxx/.phpenv/versions/5.4.9/.ruby-version)
お!5.4.9がある。これでOK
5.バージョンを切り替える
phpenv local 5.4.9
オプションにlocalとglobalが指定できる
localにすると、.phpenv/versions/5.4.9/配下のphpが5.4.9が動く
phpenv versions
system
* 5.4.9 (set by /home/xxx/.phpenv/versions/5.4.9/.ruby-version)
お!切り替わった
■php5.4.9をいれる(2)
apache経由でも動くようにする
(1)でlibphp5.soモジュールを作成している。
/usr/lib64/modules/libphp5.soが最新のものになっているはず
1.まずは、5.4.9用のモジュールを移動させる
5.4.9/lib/httpd/modules/配下に、libphp5.soを移動
2.(1)で退避させた旧バージョンを元にもどしておく
3.httpd.confの修正
php5.4.9を動かす際は、
こんな感じになる
LoadModule php5_module /home/xxx/.phpenv/versions/5.4.9/lib/httpd/modules/libphp5.so
4.じゃー動くか確認
apacheをリスタートしとく。
5.4.9/配下のディレクトリ構成は下記のような感じ。
ここのvarにdocumentrootを作っておく
bin etc include lib php pyrus sbin share var
var/www/index.php
index.phpにphpinfo();だけ入れておく。
5.これで見てみると、自分の環境は、5.4.9で動いておる
■fuelphpを入れてみる
1.環境を作る
5.4.9配下はこんな感じだけど、
bin etc include lib php pyrus sbin share var
ここに、fuelのディレクトリを作った
bin etc fuel include lib php pyrus sbin share var
documentrootはvar/www配下なので、fuel配下に設けるpublicディレクトリを
var/www/プロジェクト にたいしてシンボリックリンクを後で張る
2.fuelディレクトリ配下での作業
curl get.fuelphp.com/oil > get_installer
get_installerのファイルのPREFIXをカレントディレクトリに修正
./get_installer
これで、同じディレクトリfuel配下のディレクトリにoilが置かれる
oilコマンドの実行
するんだけど、phpを叩いてしまうと、system上動いているphpを
キックしてしまうので、php5.4.9が作動するように、oilファイルの
phpを
/home/xxx/.phpenv/versions/5.4.9/bin/php に変更する
じゃー実行
oil create プロジェクト名
できた。
プロジェクト配下にあるpublicディレクトリを5.4.9/var/www配下に対して
シンボリックリンクを張って完成
cliでphpを起動しようとすると、/etc/php.iniを見に行ってしまうので、起動するときは、
~/.phpenv/versions/5.4.9/bin/php -c /home/xxx/.phpenv/versions/5.4.9/etc/php.ini oil g controller registration
こんな感じで実行する
※php oil g controllerが全然動かなかった。
これは、phpがsystem上動いているPHPをキックするため。
oilコマンドを5.4.9の環境で実行する時は、
/home/xxx/.phpenv/versions/5.4.9/bin/php oil g controller
と言う風にしないとダメ・・・
はまった