PHP7.3とApacheを連携させる方法
PHP7.3とApacheを連携させる方法を紹介します。
1.問題点
PHPとApacheを連携させるためには、libphpXX.soというApacheモジュールが必要です。
このモジュールはPHPインストール時に自動的に設定されるようですが、今回PHP7.3をyumでインストールした際に、このApacheモジュールがありませんでした。
理由は、apxs(APache eXtenSion tool)というコマンドがLinuxにインストールされていなかったためです。
apxsのインストールは「Linux(CentOS)でapxsがみつからない場合の対処」をご覧ください。
本記事では、そのあとApacheと連係させる方法を紹介します。
特殊なケースと思いますが、参考になれば幸いです。
2.PHP7.3とApacheを連携させる方法
Apacheモジュール(libphp7.so)を、PHPのソースをコンパイルにより生成します。
PHP7.3のソースをダウンロード。wgetできない場合、URLからアーカイブをダウンロードします。
# wget --trust-server-names https://www.php.net/distributions/php-7.3.25.tar.gz
アーカイブを展開し、展開したディレクトリに移動。
# tar -zxvf php-7.3.25.tar.gz
# cd php-7.3.25
./configureの実行。"--with-apxs2=/usr/sbin/apxs"でapxsのパスを指定します。指定しないとlibphp7.soが生成されないので注意してください。
# ./configure --with-apxs2=/usr/sbin/apxs
libxml2など、./configureでエラーが発生する場合は適宜パッケージをインストールしてください。
余談で、libxml2-2.9.9.tar.gz(http://xmlsoft.org/download/)をインストールしましたが、python関連のエラーを避けたいため、./configureで下記のようにしました。
# tar -zxvf libxml2-2.9.9.tar.gz
# cd libxml2-2.9.9
# ./configure --with-python=no
# make
# make install
話を戻して、PHPの./configureが成功後、コンパイルします。
# make
これでlibs配下にlibphp7.soが生成されました。
# cd libs
# ls -l
total 34876
-rw-r--r-- 1 root root 1057 Apr 29 19:53 libphp7.la
-rwxr-xr-x 1 root root 35707918 Apr 29 19:53 libphp7.so
make installは実行せず、libphp7.soを/etc/httpd/modulesにコピー。
# cp libphp7.so /etc/httpd/modules/
あとは、httpd.confに下記の設定を追加します。
LoadModule php7_module modules/libphp7.so
:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
設定後、サーバを再起動。
# service httpd restart
これでブラウザからPHPファイルにアクセスして正常に表示されればOKです。
ビルドしたときのphp-7.3.25ディレクトリは削除してください。
- VMをundefineできない場合の対処
- cpanflute2でエラーになる場合の対処
- シェルスクリプトをバイナリ化する「shc」
- OpenSSLで文字列を暗号化・複号化する方法
- sshログインに時間がかかる場合の対処
- vi/vimで範囲指定して置換する方法
- vi/vimでマークした行に移動する方法
- vi/vimで複数行を一括削除する方法
- LinuxでOSキャッシュをクリアする方法
- lessで検索文字列だけを表示する方法
- tailコマンドでファイルがローテートされても追従する方法
- svnでファイルやディレクトリを削除する方法
- phpMyAdminで「unknown system variable 'lc_messages'」となる場合の対処
- Linux(CentOS)でapxsがみつからない場合の対処
- CentOS 6にPHP7.3をインストールする方法