exec / system() - 被调用的脚本在从PHP调用之前一直有效

时间:2012-05-02 03:23:35

标签: php external-process

我有一个bash脚本:

run.sh

#!/bin/sh
cd /var/www/project/bin/ 
CMD="./executable <full_path_to_file>;
$CMD

当我从终端运行此程序时。 (即./run.sh,它运作正常)

然而,当我从PHP调用它时:

system("full_path_to_sh_file", $out);

它成功调用脚本,甚至运行可执行文件,但现在可执行文件抛出一个错误,指出找不到提供的文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  1. 如何从网络服务器或命令行运行PHP脚本?
  2. 如果来自网络服务器,它运行的是哪个用户(httpd或apache?)
  3. 确保环境与从终端运行时的环境相同(例如:同一用户)
  4. 如果以不同用户身份运行,请尝试此操作: sudo -u apache /fullpath/run.sh