Linux

Apache2 和 PHP5 不能一起工作

  • May 22, 2011

我使用所有預設配置(簡單地 ./configure、make、make install)在我的系統上安裝了最新的 apache web 伺服器。然後我試圖將 PHP5 綁定到其中,但我永遠無法讓它工作。

我做的第一件事是嘗試讓它與這些設置一起工作:

./configure --with-apxs2=/usr/local/apache2/bin/apxs prefix=/usr/local/apache2/php --with-config-file-path=/usr/local/apache2/php --enable-force-cgi-redirect --disable-cgi --enable-shared

當我嘗試“進行安裝”時,這給了我這個錯誤:

Warning! dlname not found in /usr/local/apache2/modules/libphp5.la.
Assuming installing a .so rather than a libtool archive.
chmod 755 /usr/local/apache2/modules/libphp5.so
chmod: cannot access `/usr/local/apache2/modules/libphp5.so': No such file or directory
apxs:Error: Command failed with rc=65536

所以我厭倦了沒有任何選項(除了 apxs2)的配置,並且能夠製作和安裝。這是 make install 的輸出:

Installing PHP SAPI module:       apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/lib64/apr-1/build/libtool' libphp5.la /usr/local/apache2/modules
/usr/lib64/apr-1/build/libtool --mode=install cp libphp5.la /usr/local/apache2/modules/
l    ibtool: install: cp .libs/libphp5.so /usr/local/apache2/modules/libphp5.so
libtool: install: cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /home/max/Desktop/localhost/php-5.3.6/libs'
chmod 755 /usr/local/apache2/modules/libphp5.so
[activating module `php5' in /usr/local/apache2/conf/httpd.conf]
Installing PHP CLI binary:        /usr/local/bin/
Installing PHP CLI man page:      /usr/local/man/man1/
Installing build environment:     /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:       /usr/local/bin/
 program: phpize
 program: php-config
Installing man pages:             /usr/local/man/man1/
 page: phpize.1
 page: php-config.1
Installing PEAR environment:      /usr/local/lib/php/
[PEAR] Archive_Tar    - already installed: 1.3.7
[PEAR] Console_Getopt - already installed: 1.3.0
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util       - already installed: 1.2.1
[PEAR] PEAR           - already installed: 1.9.2
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
/home/max/Desktop/localhost/php-5.3.6/build/shtool install -c ext/phar/phar.phar /usr/local/bin
ln -s -f /usr/local/bin/phar.phar /usr/local/bin/phar
Installing PDO headers:          /usr/local/include/php/ext/pdo/

我重新啟動了 apache 服務並前往 localhost 查看 php 文件,但它沒有工作(apache 只是索引 htdocs 文件夾中的 .php 文件並讓我下載它們)。

有任何想法嗎?

確保您已將 PHP 包含在 apache 配置文件中,並且您已為其設置了正確的處理程序。

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
<IfModule mod_php5.c>
   <FilesMatch "\.ph(p3?|tml)$">
       SetHandler application/x-httpd-php
   </FilesMatch>
</IfModule>

無論如何:您確定需要從原始碼編譯的 Apache 和 PHP 嗎?大多數 Linux 發行版都有預編譯的軟體包,配置它們要容易得多。

如果您使用的是 64 位作業系統(如圖所示),您可能會遇到此錯誤,這是由於 64 位文件的庫路徑不同。最後列出了兩種可能的解決方案:

  1. 使用所需選項執行 ./configure
  2. 編輯 ./libtool:將 /usr/lib64 添加到sys_lib_search_path_specANDsys_lib_dlsearch_path_spec
  3. 製作/安裝

或者

  1. 使用 bz2 PHP 源下載而不是 gz

引用自:https://serverfault.com/questions/272241