php exec()命令权限被拒绝 我有一个C++可执行文件“SkyPeT转发器”。如果我在Mac中的终端中使用命令行,skypeforwarder将正常工作: henry$/Users/henry/Desktop/skypeForwarder/skypekit-sdk_sdk-4.1.2.20_793394/examples/cpp/tutorial/step3/skypeForwarder sh: /Users/henry/Desktop/skypeForwarder/skypekit-sdk_sdk-4.1.2.20_793394/examples/cpp/tutorial/step3/skypeForwarder: Permission denied

php exec()命令权限被拒绝 我有一个C++可执行文件“SkyPeT转发器”。如果我在Mac中的终端中使用命令行,skypeforwarder将正常工作: henry$/Users/henry/Desktop/skypeForwarder/skypekit-sdk_sdk-4.1.2.20_793394/examples/cpp/tutorial/step3/skypeForwarder sh: /Users/henry/Desktop/skypeForwarder/skypekit-sdk_sdk-4.1.2.20_793394/examples/cpp/tutorial/step3/skypeForwarder: Permission denied,php,linux,permissions,exec,Php,Linux,Permissions,Exec,但如果在php exec()中调用它,它总是发出“permission denied” 到 它仍然不起作用 我根据php.ini中的disable函数在mac中设置apache disable_functions = exec 尽管文件本身可由web服务器读取,但桌面文件夹很可能不可读,因此web服务器无法遍历到该文件夹以定位可执行文件。您应该将skypeforwarder二进制文件移动到web服务器可以读取的位置,例如与您尝试提供此PHP脚本的位置平行的目录。但是,该目录不应可通过web访问

但如果在php exec()中调用它,它总是发出“permission denied”

它仍然不起作用


我根据php.ini中的disable函数在mac中设置apache

disable_functions = exec

尽管文件本身可由web服务器读取,但
桌面
文件夹很可能不可读,因此web服务器无法遍历到该文件夹以定位可执行文件。您应该将
skypeforwarder
二进制文件移动到web服务器可以读取的位置,例如与您尝试提供此PHP脚本的位置平行的目录。但是,该目录不应可通过web访问。使用.htaccess对其进行保护,或将其置于web DocumentRoot之上,但它必须是web服务器可读的

默认情况下,OSX上的
桌面
-rwxr------
,不建议更改该目录上的权限

此外,将文件更改为web服务器用户所拥有和可写是非常不可取的。相反,它应该是可读的,可由web服务器执行,但不可写

chown henry skypeforwarder
chmod 755 skypeforwarder

标准免责声明:与往常一样,从可在web上访问的PHP脚本执行系统调用时要格外小心。

exec(“whoami”)的输出是什么;?很可能是有人因为心情不好而乱逛。我把你投了赞成票,现在起作用了。权限被拒绝,因为尽管我浏览了www.skypefrowarder,但henry仍然是/Users/henry/Desktop/skypefrowarder/directory的所有者。一位同事用两个步骤帮我解决了这个问题。1.vi/private/etc/sudoers,添加一行:_wwwall=(ALL)NOPASSWD:ALL 2。chown_www:staff/Users/henry/Desktop/skypeForwarder/谢谢Michael,你的许多建议都适合我。我知道在/Users/henry/Desktop/下设置目录不是一个好方法。我将更改它。我在我的/private/etc/php.ini中搜索,没有禁用函数列表。谢谢。我从你在另一篇帖子上的评论中看到,
exec(“whoami”)
的输出是www,这意味着该函数是允许的,所以它不是我所建议的。如果它被禁用,您将在apache/PHP错误日志中得到一个错误。
-rwxr-xr-x  1 _www  staff  1212716 19 Apr 11:23 skypeForwarder
disable_functions = exec
chown henry skypeforwarder
chmod 755 skypeforwarder