Centos
編譯 Apache 後沒有 PHP 模組
我正在嘗試在 CentOS 上安裝 Apache 2.4 和 PHP 5.6,我已經正確完成並確認使用
./apachectl configtest
andphp -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/apache
PHP 的配置腳本,使其能夠針對 Apache 標頭建構、查找apxs
和生成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
參考: