我写了这个简单的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中的所有变体:exec
,system
,shell_exec
,callthru
但没有任何效果......
我错过了什么吗?
答案 0 :(得分:0)
好吧,我看不出它在shell中是如何工作的。
您正在调用/{SOME_PATH}/perl-script.pl
,但未定义变量SOME_PATH
。你是说STORAGE_PATH
吗?另外,您忘记了$
之前的{
。
当您使用它时,请检查运行Web服务器的用户是否有权执行这两个脚本。