Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行bash脚本,该脚本从php中的特定用户启动屏幕_Php_Linux - Fatal编程技术网

运行bash脚本,该脚本从php中的特定用户启动屏幕

运行bash脚本,该脚本从php中的特定用户启动屏幕,php,linux,Php,Linux,关于从PHP启动屏幕的主题,我已经深入研究了所有我能找到的东西。我正在启动一个游戏服务器,因此我必须从特定用户运行它,以便服务器可执行文件在正确的文件夹中查找其他文件。我已将Apache的用户从默认用户更改为必须从中运行服务器的用户。当我有exec('cd/User/FolderWithScript&&bash script.sh)时为了模拟我将如何启动它,它不会在/var/log/apache2/error.log中报告任何错误,但也不会启动服务器或其屏幕 如果我使用exec('cd/User

关于从PHP启动屏幕的主题,我已经深入研究了所有我能找到的东西。我正在启动一个游戏服务器,因此我必须从特定用户运行它,以便服务器可执行文件在正确的文件夹中查找其他文件。我已将Apache的用户从默认用户更改为必须从中运行服务器的用户。当我有
exec('cd/User/FolderWithScript&&bash script.sh)时为了模拟我将如何启动它,它不会在/var/log/apache2/error.log中报告任何错误,但也不会启动服务器或其屏幕

如果我使用
exec('cd/User/FolderWithExecutable&&screen-dmS-serverexecutable+Args')这基本上就是脚本所做的

如果我使用exec(cd/User/FolderWithScript&&bash ServerExcutable+Args)
它在/var/log/apache2/error.log中为服务器吐出了所有常用的内容,但不幸的是,它似乎在错误的目录中查找了大多数游戏文件,这些文件位于/User/.game中


谢谢

我必须在我的sudoers文件中添加
www-data-ALL=(ALL)NOPASSWD:/Path/to/Script
,然后在PHP中运行
exec('cd/Path/to/Script(AndExecutable)&&sudo-u User/Path/to/Script)基本上,它不会正确运行,除非我从可执行文件所在的文件夹中运行脚本,除非我使用在sudoers文件中输入的脚本的整个路径,否则它不会运行。

如果从命令行使用PHP运行命令,会得到什么?我如何在终端中使用PHP?查找sudo命令以其他用户的身份运行命令。嗯,一开始也尝试过这一点。使用sudo-u User并将web用户的权限设置为ALL:(User)NOPASSWD:/User/FolderWithScript/script.shType
php-a
作为要运行php的用户输入命令行,然后键入。按ctrl+c组合键可以杀死它。