httpd没法加载libphp5.so模块

安装httpd-2.2.8 和php-5.2.5,一切顺利。php

最后一步从新启动apache报以下错误:linux

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 deniedapache

缘由:是Linux有一个SELinux保护模式引发的。服务器

解决办法:app

1关闭SELINUX的方法:spa

vi /etc/selinux/config 将SELINUX=enforcing 改为SELINUX=disabled 须要重启rest

这个方法可能会对服务器带来风险。server

2不关闭SELINUX的方法:(试过能够)xml

# setenforce 0ci

# 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
相关文章
相关标签/搜索