您的位置:首页 > 运维架构 > Apache

SELinux和Apache、Zend Optimizer、MySQL共建和谐服务器

2009-10-03 09:13 543 查看
服务器是CentOS 4.5的操作系统
先关了SELinux,安装好Zend Optimizer,解开X-Space压缩包,建好数据库,一切都OK。

到了晚上,越想越觉得关闭SELinux只是舍本逐末的做法


于是把SELinux又打开,重启服务器,WEB应用果然不能访问了。
于是google之,得之主要命令是:chcon,详细信息如下:
Usage: chcon [OPTION]... CONTEXT FILE...
or: chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE...
or: chcon [OPTION]... --reference=RFILE FILE...
Change the security context of each FILE to CONTEXT.

-c, --changes like verbose but report only when a change is made
-h, --no-dereference affect symbolic links instead of any referenced file
(available only on systems with lchown system call)
-f, --silent, --quiet suppress most error messages
--reference=RFILE use RFILE's group instead of using a CONTEXT value
-u, --user=USER set user USER in the target security context
-r, --role=ROLE set role ROLE in the target security context
-t, --type=TYPE set type TYPE in the target security context
-l, --range=RANGE set range RANGE in the target security context
-R, --recursive change files and directories recursively
-v, --verbose output a diagnostic for every file processed
--help display this help and exit
--version output version information and exit

先改网站存放目录的安全标志:
#chcon -h -R system_u:object_r:httpd_sys_content_t xspace
重启apache服务,浏览一下,提示没装Zend Optimizer


写个info.php,看一下,果然没有Zend Optimizer
分析了一下,估计是SELinux关闭状态下安装Zend Optimizer时生成的新的php.ini文件没带安全标志
#ls -Z /etc/php.ini
果然是空的,给它加上
#chcon -h system_u:object_r:httpd_sys_content_t /etc/php.ini

重启apache,还是不行


把/usr/local/Zend目录下所有.so文件都改成system_u:object_r:httpd_sys_content_t,把所有目录都改成httpd_sys_content_t(因为在关闭SELinux的情况下安装的Zend Optimizer,所以这些目录和文件都没有安全标志)
再重启apache,没有探测到Zend Optimizer的提示没有了,等了一小会儿,页面提示打不开.frm文件


.frm文件不是MySQL的数据库文件么,看来原因跟上面差不多
把MySQL所在目录的安装标志改成root:object_r:mysqld_db_t即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: