为什么我无法使用 php 执行此 bash 脚本?我已尝试exec()
过shell_exec()
。
索引.php
<?php
$old = getcwd();
echo $old;
chdir($old);
$message=exec("a.sh");
print_r($message);
?>
灰
#!bin/bash
echo "i am a" > /opt/lampp/htdocs/a.txt
echo "Done"
我按照这里的建议尝试过chdir
,也检查过我的disable_functions
,php.ini
但什么都没有。我也检查过其他问题,但似乎都没有解决我的问题。
答案1
首先,确保舍邦具体如下:
#!/bin/bash
其次,使用终端中的以下命令确保该脚本可执行:
chmod +x /path/to/a.sh
第三,您必须使用 Bash 脚本的完整路径,或者在您的情况下,您可以使用:
$message=exec("$old/a.sh");
另外,顺便提一下,您的 php 脚本中的以下两个命令毫无意义:
$old = getcwd();
chdir($old);
它们相当于chdir(getcwd())
,将当前目录更改为...当前目录,因此实际上什么都没有发生。