httpd無法加載libphp5.so模塊


安裝httpd-2.2.8 和php-5.2.5,一切順利。

最后一步重新啟動apache報如下錯誤:

httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

原因:是Linux有一個SELinux保護模式引起的。

解決辦法:

1關閉SELINUX的方法:

vi /etc/selinux/config 將SELINUX=enforcing 改成SELINUX=disabled 需要重啟

這個方法可能會對服務器帶來風險。

2不關閉SELINUX的方法:(試過可以)

# setenforce 0

# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so

我用的命令是chcon  -t texrel_shlib_t /usr/local/apache/modules/libphp5.so

# service httpd restart

# setenforce 1

 

 

有 很多apache的Permission denied問題都是SELINUX引起的,
如果在Redhat Enterprise Linux 4.0或Fedora Core 2 Linux以上版本的Linux中,
關閉SELINUX試試
# vi  /etc/selinux/config
看看SELINUX選項是否為disabled,若不是
改成SELINUX=disabled

 

libphp5.so可能遇到的問題(轉摘)

安裝完APACHE和PHP5后,經常在啟動APACHE載入libphp5.so時發現問題。我把遇到的問題統計下來:


1。undefined symbol:SQLITE3 SELECT.....
解決:

ZLIB編譯安裝

2。cannot restore segment prot after reloc: Permission denied
解決:

SELINUX的問題,對LIB庫的保護。

打該命令:chcon -t texrel_shlib_t libphp5.so

3。undefined symbol:zend_ini_string......
解決:

確保已安裝libxml2,zlib,如果不行就把expat也裝上.我裝的版本分別為libxml2-2.6.26,zlib-1.2.3,expat-2.0.0.PHP用的是5.2.1,APACHE為2.2.4版本.
刪除所有libphp5.so,刪除php5的安裝源,tar個新的安裝源(直接make clean可能也行),重新編譯,用最簡單的編譯,如下:
./configure --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache2/bin/apxs \ ---with-config-file-path=/etc

編譯安裝,一切OK,修改APACHE的httpd.conf,添加

AddType application/x-httpd/php .php


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM