Apacheのコンパイル後、PHPモジュールはありません。

Apacheのコンパイル後、PHPモジュールはありません。

CentOSにApache 2.4とPHP 5.6をインストールしようとしていましたが、正しくインストールされてい./apachectl configtestますphp -v。問題は、ApacheのインストールにApacheに必要なPHPモジュールが含まれていないため、ApacheがPHPスクリプトを認識しないことです。

唯一のことPHPドキュメントhttpd.conf私が言うことは、以下を追加してモジュールを追加するだけです。

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
AddType application/x-httpd-php .php

サーバーを起動しようとすると、次のように出力されます。

httpd: Syntax error on line 156 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/mod_php.so into server: /usr/
local/apache2/modules/mod_php.so: cannot open shared object file: No such file or directory

エラーなしでApacheとPHPを正しくコンパイルしました。

私はこれをApache用にコンパイルするために使用します。

./configure --with-included-apr=/usr
make
make install

PHPの場合:

./configure
make
make install

助けてくれてありがとう。

答え1

応答がないことを防ぐために。

Apacheはmod_php.soPHPを解析または実行する方法がわからないため、ビルドの一部としてビルドすることはできません。一方、PHPはApacheがどのようにコンパイルされたかを知る必要がありますmod_php.so

  • --enable-so追加モジュールを共有ライブラリとして構築できるように、Apache用の設定スクリプト。apxs共有ライブラリを構築するための拡張ツールを作成します。

  • また、--with-apxs2=/path/to/apache.Apacheヘッダを構築、検索apxs、生成できるPHP用の設定スクリプトがありますmod_php.so

通常、* nixシステムでは、Apacheは--prefixデフォルト値/usr/localです。したがって、コンパイルは次のように実行する必要があります。apxs/usr/local/bin/apxs

最初のAapche(httpd)には次のものがあります。

./configure --enable-so
make
make install

その後、PHPは次のよ​​うになります。

./configure --with-apxs2=/usr/local/apache2/bin/apxs
make
make install

引用:

関連情報