さくらのレンタルサーバーにPHP5を入れる(PDO対応・今さら編)
さくらインターネットの共有サーバーでは、長らくPHP5のサポートが行われていなかったため、一部のユーザが、独自にPHP5をホームディレクトリ内にインストールを試み、ノウハウが共有されてきた。
・さくらのレンタルサーバでPHP5
などを参照。
昨年ようやく、さくらインターネットの共有サーバーでもPHP5のサポートが開始されたが、何か物足りない...。
・好き勝手PHP.iniをいじりたい
・好き勝手モジュールを入れてコンパイルしたい
・任意のバージョンを入れたい
ということで敢えて今更やってみる。準備としていくつかディレクトリを作成。
$mkdir ~/local $mkdir ~/src $mkdir ~/etc
PHPをダウンロードして展開する。
$cd ~/src $wget http://... $tar zxvf php-5.2.9.tar.gz
展開したディレクトリに、以下のようなシェルスクリプトを用意する。
conf.sh
#!/bin/sh./configure \
--prefix=$HOME/local \
--with-config-file-path=$HOME/etc \
--with-pear=$HOME/local/share/pear5 \
--enable-mbstring=all \
--enable-mbregex \
--enable-force-cgi-redirect \
--with-openssl=/usr \
--with-mysql \
--with-curl \
--enable-ftp \
--enable-pdo \
--with-pdo-mysql=/usr/local/bin/mysql
PDOやFTPなどをオプションでとりあえず指定。GDは必要なし。無駄にハマってしまったのがphp.iniのパス指定で、ここではファイル名ではなくディレクトリ名を指定する。
スクリプトに実行権を与えて、実行(=configure)する。その後makeしてインストール。
$cd php-5.2.9 $chmod u+x conf.sh $./conf.sh ... $make ... $make test ... $make install ...
続いてCGIモードでオリジナルのPHPを動かすための作業。
$mkdir ~/www/cgi-bin $ln ~/local/bin/php-cgi ~/www/cgi-bin/php5.cgi
ドキュメントルート(~/www)に下記のような.htaccessを設置。
Action php5-script /cgi-bin/php5.cgi AddHandler php5-script .php
最後に~/etcにphp.iniの設置。どこかのphp.iniを使うなり、php.ini-recommendedを使うなりする。.htaccessのphp_valueでエラーログファイルの切り替えができないので、あらかじめphp.iniでログの保存先ディレクトリを指定しておくと良い。
error_log = /home/xxxxx/var/log/php.log
最後に、ドキュメントルートに置いたphpファイルにphpinfo()を記述し、インストールしたPHPが動いているかチェックして完了。
ただし、CLIでPHPを動かす場合はインストール先のPHPを指定する。
