从php调用shell命令与shell有不同的行为

时间:2013-03-20 17:57:23

标签: php shell

我写了这个简单的shell脚本:

#!/bin/sh
STORAGE_PATH=/tmp/;
export STORAGE_PATH;
cd STORAGE_PATH;
perl /{SOME_PATH}/perl-script.pl;

当我从shell调用它时,它按预期完美地工作。但是从PHP它无限地挂起,并且在调试时,我发现它在Perl执行期间挂起,这实际上没有任何意义,因为如果在shell中调用它会继续。

我对shebang #!/bin/sh犯了什么错误吗?我也试过了#!/bin/bash

我尝试了php中的所有变体:execsystemshell_execcallthru但没有任何效果......

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

好吧,我看不出它在shell中是如何工作的。

您正在调用/{SOME_PATH}/perl-script.pl,但未定义变量SOME_PATH。你是说STORAGE_PATH吗?另外,您忘记了$之前的{

当您使用它时,请检查运行Web服务器的用户是否有权执行这两个脚本。