php-5.3.10をソースからインストールしてみました。 最新版を使いたかったのでyumではなく、ソースからビルドしています。 サーバはさくらのVPSです。
公式サイト
手順
ダウンロードからインストールまで
$ cd /usr/local/var
$ wget http://jp.php.net/distributions/php-5.3.10.tar.gz
$ cd php-5.3.10
$ yum install libjpeg-devel libpng-devel mysql-devel libxml2-devel
$ ./configure --with-jpeg-dir --with-gd --with-mysql --with-libdir=lib64 --with-zlib --enable-mbstring --enable-fpm
$ make
$ sudo paco -D make install
オプションを追加して再ビルドできるようにPacoをかませて
make install
しています。
php-fpmの設定
phpを実行するユーザーのホームディレクトリに設定ファイルを置くことにします。
$ cd ~
$ mkdir php
$ cp /usr/local/etc/php-fpm.conf.default php/php-fpm.conf
$ nano php/php-fpm.conf
起動スクリプトを用意する
$ cp /usr/local/var/php-5.3.10/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
$ nano php-fpm
php.iniを指定して動作させます。 少々強引ですが次のように編集しました。
--- /usr/local/var/php-5.3.10/sapi/fpm/init.d.php-fpm 2012-02-24 03:09:31.000000000 +0900
+++ /etc/init.d/php-fpm 2012-02-24 01:31:07.000000000 +0900
@@ -13,8 +13,10 @@
prefix=/usr/local
exec_prefix=${prefix}
-php_fpm_BIN=${exec_prefix}/sbin/php-fpm
-php_fpm_CONF=${prefix}/etc/php-fpm.conf
+php_fpm_BIN=${exec_prefix}"/sbin/php-fpm -c /home/www/php/php.ini"
+#php_fpm_BIN=${exec_prefix}/sbin/php-fpm
+php_fpm_CONF=/home/www/php/php-fpm.conf
+#php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
実行パスにオプションで使用したいphp.iniのパスを指定します。 php-fpm.confを読み込む場所も変えておきます。
php-fpm.confの編集
起動スクリプトはPidファイルを見て、サービスを起動、停止、再起動させますのでPidファイルを作るように設定します。
--- /usr/local/etc/php-fpm.conf.default 2012-02-24 03:15:08.000000000 +0900
+++ /home/www/php/php-fpm.conf 2012-02-25 15:03:45.000000000 +0900
@@ -22,14 +22,14 @@
; Pid file
; Note: the default prefix is /usr/local/var
; Default Value: none
-;pid = run/php-fpm.pid
+pid = run/php-fpm.pid
ioncubeを読みこませる
php.iniファイルを作成します。
ioncubeを読みこませる
php.iniファイルを作成します。
$ cd /home/www
$ nano php/php.ini
ioncube loaderを使いたかったのでphp.iniに次のように書き込みました。
zend_extension = /usr/local/lib64/php/modules/ioncube_loader_lin_5.3.so
ioncube loaderはサーバに合ったものを適当な場所にコピーしておいてください。
chkconfigで起動スクリプトに登録
$ cd /etc/init.d
$ sudo chkconfig --add php-fpm
サービスの起動、停止、再起動は以下のコマンドで
# 起動
$ sudo /etc/init.d/php-fm start
# 停止
$ sudo /etc/init.d/php-fm stop
# 再起動
$ sudo /etc/init.d/php-fm restart
ハマったこと
動作確認のためブログから画像をアップロードしたら次のようなエラーが表示されました。
Call to undefined function imagejpeg()
コンパイル時にgdにjpeg用のライブラリが含まれていなかったことが原因です。
./configure
が通っていたので気が付きませんでした。 再ビルド時には
make clean
を
忘れずに
実行してください。
$ make clean
$ ./configure --with-jpeg-dir --with-gd --with-mysql --with-libdir=lib64 --with-zlib --enable-mbstring --enable-fpm
$ make
$ sudo paco -D make install