为什么这个 php 脚本无法执行 bash 脚本?

为什么这个 php 脚本无法执行 bash 脚本?

为什么我无法使用 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_functionsphp.ini但什么都没有。我也检查过其他问题,但似乎都没有解决我的问题。

答案1

首先,确保舍邦具体如下:

#!/bin/bash

其次,使用终端中的以下命令确保该脚本可执行:

chmod +x /path/to/a.sh

第三,您必须使用 Bash 脚本的完整路径,或者在您的情况下,您可以使用:

$message=exec("$old/a.sh");

另外,顺便提一下,您的 php 脚本中的以下两个命令毫无意义:

$old = getcwd();
chdir($old);

它们相当于chdir(getcwd()),将当前目录更改为...当前目录,因此实际上什么都没有发生。

相关内容