Php exec功能不能按预期工作

时间:2011-03-09 05:29:58

标签: php exec

我在php脚本中使用exec函数,如果我在命令行中运行脚本,例如“php xx.php”,exec函数将被执行,但如果我从浏览器访问php页面,那么exec函数不会运行。有谁知道如何解决这个问题?

感谢。

4 个答案:

答案 0 :(得分:4)

脚本是否尝试创建/编辑/删除文件?尝试使Web服务器可以写入文件和包含目录。如果您要添加文件,请导航至要添加的文件夹并运行以下内容:chmod go+w .。如果您尝试删除/编辑文件,请尝试以下操作:chmod go+w myfile.txt

从命令行运行脚本时,它以登录用户身份运行,而在通过浏览器运行时,它作为Web服务器用户(通常是名为www的用户)运行。此用户通常没有< em> write 访问正在提供的文件和目录。

答案 1 :(得分:3)

您可以使用“ 2&gt;&amp; 1 ”作为您尝试使用exec()执行的命令的成功。

例如: - exec(php xx.php 2&gt;&amp; 1“,$ output);

然后您可以通过打印输出跟踪问题。

答案 2 :(得分:2)

检查phpinfo()输出以查看是否启用了安全模式。还要检查是否启用了suhosin或mod_security。所有这些都会限制您使用exec() ...

的能力

答案 3 :(得分:0)

如果您正在使用MAMP(对于WAMP和LAMP,我认为它应该有点类似)尝试打开文件MAMP / Library / bin / envvar以及if和else的四行应该看起来像这样:

#if test "x$DYLD_LIBRARY_PATH" != "x" ; then
#  DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#else
#  DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib"

对我有用!祝你好运!