安装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
转载来源:http://i.hi.baidu.com/yangjie312/blog/item/cfdd4aef5ca5cf30269791a7.html
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/5185/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表
2012-6-3 01:15 | zviwv88809
人生能不几多发好好发发吧结果就会大不一样从前了
2012-5-29 10:06 | hxngb9vf
支持楼主,长见识了
2012-5-7 09:39 | 0178kl65
我是新来的,还请大家多多关照哦!
分页: 1/1 1