LINUX下PHP对命名管道操作权限问题解决小记
这两天碰到一个小问题卡了我老半天……就是LINUX下PHP程序与其他程序通信。
我们需要实现用户在WEB页面上进行操作时可以启用我们在服务器端的后台程序(用C、C++编写)。
之前在windows下,已经使用命名管道实现(请见我之前的博文http://blog.csdn.net/rcfalcon/archive/2010/02/09/5303142.aspx),这次将服务器整体移往LINUX下。
服务器环境 CentOS 5 + apache + mysql + php
于是乎基本按照之前的代码框架,很快就在服务器端调通了。(但是我是使用的root用户直接运行的PHP脚本测试的)
但是后来测试通过WEB访问的时候,提示说拿不到命名管道的权限。
于是乎开始解决这个问题……
修改php.ini的open_basedir等设置,未果。
修改httpd.conf的若干设置,未果。
将命名管道chmod 777,未果。
将apache服务器用户组设成 root,未果。
再将命名管管道chown apache:root,未果。
尝试PHP读写普通文件,没问题。
翻PHP官方手册,未发现问题。
于是乎我开始抓狂了。
把百度、google都翻了10多页,也找不到正确答案。。。
最后开始翻国外的编程论坛,终于看到有个人跟我情况类似。但是他说他把httpd换了个目录然后restart service就行了,照着尝试,未果……
最后看到有人说可能是SELINUX的问题,我在崩溃之余怀着最后一丝希望把SELINUX禁了,然后重启。
首先是一切正常,
然后GNOME居然报了一堆错,不管了,继续
然后……
居然可以了!
万恶的SELINUX……
原来centos5、RHEL、FEDORA等自带的默认安装SELINUX,其在很大的程度上加强了整个LINUX系统的安全性。但是很多用户权限上受到限制,比如在我这个问题中,就是其把apache用户的命名管道读写权限给关闭了。
看来还是需要恶补 LINUX啊,太菜了~
相关文档:
摘自http://blog.chinaunix.net/u3/108043/showart_2125958.html
Linux系统Load average负载详细解释
我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟、五分钟、以及十五分钟的系统平均负载
例如我的某台服务器:
$ uptime
09:50:21 up 200 days, 15:07, 1 user, load averag ......
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。 1.core文件的生成开关和大小限制
1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 ......
http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm
http://en.wikipedia.org/wiki/Sticky_bit
http://www.anqn.com/os/linux/2009-03-01/a09108173.shtml
7.4.3 文件特殊权限:SUID/SGID/Sticky Bit
前面一直提到文件的重要权限,就是rwx这3个读、写、执行的权限。但是,怎么 /tmp权限有些奇怪 ......