Centos

編譯 Apache 後沒有 PHP 模組

  • August 11, 2016

我正在嘗試在 CentOS 上安裝 Apache 2.4 和 PHP 5.6,我已經正確完成並確認使用./apachectl configtestand php -v. 問題是 Apache 無法辨識 PHP 腳本,因為 Apache 安裝不包含 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

任何幫助表示讚賞。

不要讓它無人回答。

Apache 不能mod_php.so作為其建構的一部分進行建構,因為它不知道如何解析或執行 PHP。另一方面,PHP 需要知道 Apache 是如何編譯生成mod_php.so的。您需要指定:

  • --enable-so到 Apache 的配置腳本,以允許將額外的模組建構為共享庫。並創建apxs,用於建構共享庫的擴展工具。
  • 以及--with-apxs2=/path/to/apachePHP 的配置腳本,使其能夠針對 Apache 標頭建構、查找apxs和生成mod_php.so.

通常在 *nix 系統上,Apache--prefix將預設為/usr/localapxs/usr/local/bin/apxs. 因此編譯應該如下執行。

第一個 Aapche ( httpd) 與:

./configure --enable-so
make
make install

然後是 PHP:

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

參考:

引用自:https://unix.stackexchange.com/questions/302633