我们在开启了selinx的linux系统中,即使正确的设置了文件系统权限,常常还是会出现权限问题,这是我们要思考是不是selinx引起的了。

1、MYSQL:
在selinux打开的前提下,修改/etc/my.cnf中mysqld数据路径后启动Mysql服务出错,查看/var/log/mysql.log提示:
110806 16:32:16 [Warning] Can't create test file /storage/db/mysql/mysqllocalhost.lower-test
/usr/sbin/mysqld: Can't change dir to '/storage/db/mysql/' (Errcode: 13)
给目录设置selinux权限:
chcon -R -t mysqld_db_t /storage/db/mysql/
ls -ldZ /storage/db/mysql/
再次启动mysql服务提示:
Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
执行mysql_install_db创建mysql数据库,然后启动mysql成功:
mysql_install_db --datadir /storage/db/mysql/
2、httpd站点:
在selinux打开的前提下,运行PHP代码在/var/log/http/下错误日志中发现如下错误:
PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0
[Tue Sep 17 16:03:45 2013] [error] [client 106.2.169.130] PHP Fatal error:  Unknown: Failed opening required '/storage/web/pzycx/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
配置站点目录的selinux权限即可:
chcon -R -h -t httpd_sys_content_t /storage/web/
3、关闭selinux:
修改/etc/sysconfig/selinux文件,将SELINUX=enforcing改成SELINUX=disabled并重启服务器,即能永久关闭selinux.