繁体   English   中英

PHP shell_exec不能正常工作

[英]PHP shell_exec not working

我正在尝试在我的MacOSX上运行shell脚本,但它不起作用。 我的report.sh文件调用另一个存储在/ usr / local / bin中的.sh文件(Sweave.sh)。

<?php

shell_exec("./report.sh");
echo "Hello 123";

?>

它在我的浏览器上打印'Hello 123',但是report.sh没有做它的工作。 为什么会这样? 这是report.sh:

# !/bin/bash
Sweave.sh -ld test_sweave.Rnw

如果从终端呼叫./report.sh,它可以正常运行...感谢您的帮助!

编辑:如果我从终端拨打./report.php,它说:

./report.php: line 2: ?php: No such file or directory
./report.php: line 4: syntax error near unexpected token `"./report.sh"'
./report.php: line 4: `shell_exec("./report.sh");'

如果要通过命令行运行脚本,则必须:

a)用这一行开始文件

#!/path/to/php

b)运行:

php report.php

如果可行,则可能是由于权限,因为您的Web服务器在与您不同的用户下运行。

感谢大家的评论,这是一个许可问题。 我通过更改我的服务器的'Documents'文件夹的权限来解决它(我确定它不是最安全的方式,但我只是测试)。

只需添加rw访问权限,成为所有者并申请封闭的项目 - 就是这样!

php -q report.php可以在没有shebang的情况下工作( #!/path/to/php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM