从 PHP 执行 Bash 命令:对未执行的脚本进行故障排除
用户在从 PHP 文件执行 Bash 脚本时遇到困难。尽管尝试使用 shell_exec 和 system,该脚本仍然未执行。但是,其他命令(例如“ls”)使用 shell_exec 可以正常运行。
潜在原因和解决方案:
问题很可能源于从错误的目录执行脚本。为了解决这个问题,用户需要在执行脚本之前将当前工作目录更改为脚本所在的目录。这确保了脚本执行的正确上下文。
代码片段:
以下代码片段演示了如何正确执行 Bash 脚本:
<code class="php">$old_path = getcwd(); chdir('/my/path/'); // Change to the script's directory $output = shell_exec('./script.sh var1 var2'); chdir($old_path); // Return to the previous working directory</code>
在此代码中,getcwd() 检索当前工作目录,chdir('/my/path/') 将工作目录设置为脚本的路径,shell_exec('./script.sh var1 var2') 执行带有给定参数的脚本,并且 chdir($old_path) 恢复到以前的工作目录。
以上是为什么我的 Bash 脚本不能从 PHP 执行?的详细内容。更多信息请关注PHP中文网其他相关文章!