【发布时间】:2018-03-13 04:23:46
【问题描述】:
我是网络开发的新手。我正在尝试使用 PHP 的 shell_exec() 执行 shell 脚本。在脚本中,我试图调用一个 GUI 应用程序(Qt)。当我从终端执行 PHP 脚本时,应用程序按预期启动。但是当我从浏览器打开它时,出现了一个空白页。
我正在使用 Ubuntu 和 apache2 服务器作为服务运行。当我在google中搜索时,在Windows环境下通过允许apache服务与桌面交互来解决类似的问题。
PHP 脚本:
<?php
$log = shell_exec('sh testcmd.sh');
?>
testcmd.sh:
./Program1
我们将非常感谢您提供的任何帮助。
【问题讨论】:
-
这是因为 shell_exec() 发出一个命令让服务器而不是客户端跟随。
-
您在 testcmd.sh
#!/bin/sh中缺少 hashbang,如果您在./Program1上没有具有正确权限的执行位以便 www-data 可以执行它,它也将永远无法工作。跨度> -
@LawrenceCherone 我尝试在脚本中包含 #!/bin/sh 但没有成功。可执行文件已获得所有权限(777)。我尝试使用非 GUI 应用程序,它们运行良好。我认为这与 $DISPLAY 有关。
-
标签: php linux apache qt web-applications