天儿真好,
我有一个运行游戏服务器的独立屏幕,我正在使用bash脚本 command.sh
将命令发送到分离的屏幕。
在终端中,我可以使用以下命令,服务器成功执行命令:
./command.sh 'any command'
但是,一旦我使用PHP来调用脚本:
<?PHP
if($_POST) {
$commandString = $_POST['inputCommand'];
$output = shell_exec('./command.sh $commandString');
echo "<pre>$output</pre>";
}
?>
屏幕返回错误:
No screen session found.
我尝试将bash脚本的权限更改为777,并尝试将其放在Web根目录中。
有没有人知道为什么php无法运行脚本但是我可以在终端中运行脚本?
其他请求信息
command.sh
#!/bin/bash
screen -S "minecraft" -X stuff "$@"$'\015'
答案 0 :(得分:1)
好像你正试图从另一个用户(默认为www-data)启动来自Web服务器的php脚本。
要将某些文本发送到屏幕,您必须以屏幕所有者身份运行该命令,因为/ var / run / screen / S-user /
中有700个屏幕权限请尝试更改字符串:
sudo -u owner_of_the_screen ./command.sh $commandString