トップページへ

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.参考

参考サイトは下記です。ありがとうございました。

« 前の記事へ

次の記事へ »

トップページへ