我想尝试从php脚本打开gnome-terminal:
shell_exec('bash /data/manager/application/.shell/system.sh');
此脚本使用一个功能来检查终端:
SCRIPTCURRENT=`readlink -m $0`
SCRIPTCURRENTPATH=$(dirname "$SCRIPTCURRENT")
runintoterminal () {
if ! [ -t 1 ]; then
gnome-terminal -e "bash $1"
exit 0
fi
}
runintoterminal $SCRIPTCURRENT
我尝试过:
shell_exec('gnome-terminal');
但是它不起作用...(我知道有可能...。但是如何?
我使用nginx和php-fpm。用我自己的插座。 Nginx和套接字使用我的用户,而不使用www-data。 (我使用的是Ubuntu 14.04LTS)
我已经尝试使用0777权限...
我的bash脚本可以从netbeans IDE ans终端运行...但是不能从php ...
问题很可能是gnome-terminal不知道它应该在哪里绘制。通常,它显示在与启动它的程序相同的显示器上(IDE,终端),但是Web服务器没有显示器,因此它不知道要去哪里。您可以尝试使用DISPLAY =:0 gnome-terminal -e“ bash $ 1”在当前的第一个本地图形登录会话上显示它(如果具有该权限)。that other guy]
shell_exec('DISPLAY=:0 bash /data/manager/application/.shell/system.sh');
或关于功能:
SCRIPTCURRENT=`readlink -m $0`
SCRIPTCURRENTPATH=$(dirname "$SCRIPTCURRENT")
runintoterminal () {
if ! [ -t 1 ]; then
DISPLAY=:0 gnome-terminal -e "bash $1"
exit 0
fi
}
runintoterminal $SCRIPTCURRENT
Si quelqu'un passe parlà,la solution est ici!
https://www.php.net/manual/fr/features.commandline.webserver.php