我正在尝试使用proc_open()
执行程序并打印结果。但是,我不断收到“许可被拒绝”的消息。已将脚本和可执行文件的 chmod 设置为 0777,但无济于事。
ini_get('safe_mode')
是假的。
可能出什么问题了?
我正在使用 CentOS、Apache 和 PHP 5.3.3。
我在使用相同的设置时遇到了这个问题,结果发现问题是 SELinux(默认情况下处于打开状态)阻止了 httpd 执行我的外部程序。据我了解,问题在于httpd有自己的域,不能接触它之外的东西。因此,最简单的做法是将脚本移至/var/www
目录并重置文件上下文:
restorecon -RF /var/www/
如果这是不可能的,您可以就地更改程序的上下文:
semanage fcontext -a -t httpd_sys_content_t "/path/to/program(/.*)?"
这基本上表明你的程序属于httpd。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)