PHPをビルドしてApacheと連携させる方法
小粋空間 » 自宅サーバ » Apache » PHPをビルドしてApacheと連携させる方法
PHPをビルドしてApacheと連携させる方法を紹介します。
1.はじめに
ブラウザからPHPファイルを読み込ませたいため、Linux(CentOS)のApache2.4にPHP5.xを組み込んでみました(Apacheはインストール済)。
# yum install php
インストール後、httpd.confに下記の2行を追記。
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
:
AddType application/x-httpd-php .php
が、Apacheを再起動したところ、下記のエラーが発生しました。
# cd /usr/local/apache2/bin
# ./apachectl restart
httpd: Syntax error on line 150 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/lib64/httpd/modules/libphp5.so into server: /usr/lib64/httpd/modules/libphp5.so: undefined symbol: unixd_config
追加したLoadModuleディレクティブでひっかかっているようです。
ネットで調べたところ、yumでインストールしたApache2.4とPHP5ではうまく連携できないようです。
Apache2.2に戻せば連携できるようですが、PHPをソースからビルドすれば連携させられることがわかったので、その方法で実施しました。
2.PHPをビルドしてApacheと連携させる
連携させるための仕組みをもう少し説明すると、PHPを手動でインストールする際、Apacheと連携させるためのモジュールlibphp5.soを、Apache2.4にバンドルされているapxsというものを利用して生成します。
yumでインストールしたPHPに含まれていたlibphp5.soは、Apache2.2対応のものだったのかもしれません。
yumでインストールしたPHPを削除
# yum remove php
yumでlibxml2とlibxml2-develをインストール。
# yum install -y libxml2 libxml2-devel
PHP5.x系の最終バージョンをダウンロード
wget http://jp2.php.net/get/php-5.6.40.tar.gz/from/this/mirror -O php-5.6.40.tar.gz
スタンドアローン環境の場合は、https://www.php.net/releases/からphp-5.6.40.tar.gzをダウンロードして、Linuxマシンに転送します。
tar.gzを展開します。
# tar xzf php-5.6.40.tar.gz
展開したディレクトリに移動。
# cd php-5.6.40
Apacheと連携させるためのlibphp5.soを作るために、./configure実行時にapxsを指定します。
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs
これでhttpd.confに
LoadModule php5_module modules/libphp5.so
がビルド時に自動的に設定されます。
後は通常通りのビルドを実施します。
# make
# make test
# make install
ビルド後はApacheを再起動します。
# cd /usr/local/apache2/bin
# ./apachctl restart
/usr/local/apache2/htdocs配下に
<?php phpinfo(); ?>
の内容をindex.phpで作成し、ブラウザでアクセスしてPHPの情報が表示されればOKです。
3.参考
参考サイトは下記です。ありがとうございました。