【发布时间】:2016-10-23 10:08:23
【问题描述】:
我正在执行一个 C 程序,即“.exe”,它是来自 PHP 的可执行文件。
我有一个带有 HTML 的界面,每当我点击一个按钮时它都会调用一个 PHP 文件。
在 PHP 上,它调用一个 shell 脚本。 所以在 PHP 上,我使用以下内容:
echo shell_exec('sh auto_script.sh');
shell文件执行程序.exe如下:
./import -file.txt
import 是我的可执行 C 程序 .exe,而 file.txt 是我目前正在硬编码的输入。
可执行文件 'import' 存储在与调用的 php 文件相同的目录中。
当我在终端上执行 shell 脚本时,它会以必要的输出正确执行。
但是当我尝试从 PHP 执行它时它不起作用。到目前为止,我已授予文件的完全权限。
【问题讨论】:
-
脚本
cd是否指向包含import程序的目录?./表示在当前工作目录中查找程序。 -
您需要在
shell_exec()的参数周围加上引号。 -
是的,导入是一个可执行文件,它与 php 文件位于同一目录中,并且我在 shell_exec 中的参数周围有引号。
-
将
2>&1添加到shell_exec()的参数末尾,以便您看到任何错误消息。 -
如果脚本使用任何 bash 扩展,您应该将其作为
bash auto_script.sh运行,而不是sh auto_script.sh。