ここではPHP 5を
/usr/local/phpにインストールします。
Apache HTTPサーバがインストールされていれば、HTTPサーバ用のPHPモジュールのインストールを同時に行う事が出来るので、連携して利用するつもりならば、あらかじめHTTPサーバーをインストールしておくと良い。 HTTPサーバーのインストール方法については、Apache HTTPサーバのインストール方法を参考にしてください。
PostgreSQLを操作するためのPHP関数を使うためには、あらかじめPostgreSQLをインストールしておく必要がある。 インストール方法はこちらを参考にしてください。
PHPのウェブサイトからソースを取得する。 現時点のバージョンは5.3.6。 ソースの解凍からインストールまでは次の通り。
$ tar zxvf php-5.3.6.tar.gz $ cd php-5.3.3/ $ ./configure --prefix=/usr/local/php \ > --with-apxs2=/usr/local/apache/bin/apxs \ > --with-pgsql --with-gd --enable-mbstring \ > --with-freetype-dir=/usrconfigureオプションは一例なので、自分の環境に合わせて書き換える必要がある。--with-pgsqlはPostgreSQLの操作関数が必要な場合、--enable-mbstringはPHPでマルチバイトの正規表現関数関数が必要な場合に付ける。
--with-gdは画像処理用のライブラリで、動的に画像を生成するための関数が含まれる。 libjpegやlibpngなどのライブラリが見つからないというエラーが出たときには、次節を見てライブラリの位置を指定するオプションを付ける。
GDライブラリの関数のうちでTrueTypeフォントを使うものがあるが(例えばimagettftext())、これらを利用するためにはFreeTypeをインストールする必要がある。 あらかじめインストールされていればそのパスを--with-freetype-dirで指定する。例えば、freetype.hがにあるならば、--with-freetype-dir=/usrとする。
実際にヘッダファイルが存在するのに、configure時に見つからない場合には、configureファイルを開いて--with-xxx-dir=などの設定がどのようになっているのかを確認してみるとよい。
configureがうまく通れば、そしてコンパイルとインストールは次の通り。
$ make $ su # make install
--with-apxs2を付けてコンパイルした場合には、Apache HTTPにモジュールがインストールされているはず。
$ ls /usr/local/apache/module libphp5.so
展開したソースファイルのディレクトリ直下に、PHPの初期設定ファイルphp.iniのサンプルとして、php.ini-developmentとphp.ini-productionが準備されている。 前者は開発に適した設定、後者は運用に適した設定になっているとのこと。 php.ini-developmentを利用するなら、
# cp php-5.3.3/php.ini-development /usr/local/php/lib/php.iniとすればよい。
php.iniにタイムゾーンの設定を行っておく。
date.timezone="Asia/Tokyo"
上に書いたように、PHPをコンパイルするときに画像処理用のライブラリであるGDを加える場合にはオプションに
--with-gdを加える。 このときに、GDで必要とされるlibjpeg, libpngなどが見つからない事がある。 ライブラリのパスを指定するオプションは--with-libdirと--with-jpeg-dirや--with-png-dirなど。
PHPのソースコードに含まれるconfigureの中を見てみると、36643行あたりに
for i in $PHP_JPEG_DIR /usr/local /usr; do test -f $i/$PHP_LIBDIR/libjpeg.$SHLIB_SUFFIX_NAME ↓(続く) ↓ || test -f $i/$PHP_LIBDIR/libjpeg.a && GD_JPEG_DIR=$i && break doneのような記述があり、
--with-jpeg-dir → $PHP_JPEG_DIR --with-libdir → $PHP_LIBDIRのように変換されるので、 64bit版のLinuxの場合はライブラリが/usr/lib64などにインストールされているので、
--with-libdir=lib64とすればよい。
▼参考サイト or 参考文献