2010-12-10 219 views
1

我有一个涉及exec()的PHP脚本,它可以在命令行中正常运行,但不能在web上下文中运行。该脚本很简单:exec()通过命令行运行,但不通过网络运行

<?php exec('echo "wee" > /home/jason/wee.txt'); 

如果我把这个脚本wee.php和运行php wee.php,它工作正常,并wee.txt被写入。

如果我去http://mysite.com/wee.php,脚本假装运行正常,但wee.txt实际上没有写入。

任何想法为什么会发生这种情况?

回答

3

Web服务器以不同的用户身份运行,并且该用户没有写入主目录的权限。

+0

有什么办法可以使这项工作?像临时授权 – Thejas 2016-07-25 11:12:34

0

您的Web服务器可能(正确)没有适当的权限写入主目录。

0

注意到您正在写给/ home/jason。请注意,apache将是运行此命令的人(如果使用Ubunut或Debian,则为www-data用户)。该过程是否具有写入该文件夹的权限?

相关问题