Cannot load /usr/local/apache/modules/libphp5.so
今天在CentOS(5.9)上,编译安装了httpd-2.2.14,php-5.3.0,安装完毕重启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
于是在google上搜索了一下,原始是因为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
service httpd restart
setenforce 1
其实这些都是网上给出的解决办法,我都试过了,可以解决问题。但是好多都没有具体说明setenforce和chcon这两个命令
// 查看SELinux的当前模式
# getenforce
// 设置SELinux的当前模式,1设为Enforcing,2设为Permissive
# setenforce 1|0
chcon命令:修改对象(文件)的安全上下文。比如:用户:角色:类型:安全级别。
命令格式:
Chcon [OPTIONS…] CONTEXT FILES…..
Chcon [OPTIONS…] –reference=PEF_FILES FILES…
说明:
CONTEXT 为要设置的安全上下文
FILES 对象(文件)
--reference 参照的对象
PEF_FILES 参照文件上下文
FILES 应用参照文件上下文为我的上下文。
OPTIONS 如下:
-f 强迫执行
-R 递归地修改对象的安全上下文
-r ROLE 修改安全上下文角色的配置
-t TYPE 修改安全上下文类型的配置
-u USER 修改安全上下文用户的配置
-v 显示冗长的信息
-l, --range=RANGE 修改安全上下文中的安全级别

浙公网安备 33010602011771号