我有一个涉及exec()的PHP脚本,它可以在命令行中正常运行,但不能在web环境中运行。脚本很简单:
<?php exec('echo "wee" > /home/jason/wee.txt');如果我将此脚本命名为wee.php并运行php wee.php,它将正常工作,并且可以编写wee.txt。
如果我转到http://mysite.com/wee.php,脚本看起来运行得很好,但实际上并没有编写wee.txt。
你知道为什么会发生这种事吗?
发布于 2010-12-11 01:04:09
web服务器以其他用户身份运行,该用户无权写入您的主目录。
发布于 2010-12-11 01:14:38
其他的帖子是正确的,暗示web服务器用户没有权限写入您的主目录。要查看它们是否正确,请尝试修改代码以写入/tmp/wee.txt。这应该是完全可写的。
另一种可能性是php可以配置为禁止调用exec()。请参阅http://www.cyberciti.biz/faq/linux-unix-apache-lighttpd-phpini-disable-functions/
发布于 2010-12-11 01:04:15
您的web服务器可能(正确地)没有写入主目录的适当权限。
https://stackoverflow.com/questions/4411356
复制相似问题