提问人:Nimesh 提问时间:11/4/2023 最后编辑:OlivierNimesh 更新时间:11/5/2023 访问量:74
在 Ubuntu 上通过 PHP exec 执行命令
Executing commands via PHP exec on Ubuntu
问:
我想通过 PHP exec() 运行一个 linux 命令,下面我的第一个命令在 Ubuntu Server 22.04 的后台完美地执行 -
<?php
$cmd = "java -jar /var/www/html/selenium-drivers/selenium-server-4.14.1.jar hub";
exec($cmd . " > /dev/null &");
?>
但是与我的第二个命令非常相似的是没有执行。
<?php
$cmd = "java -jar /var/www/html/selenium-drivers/selenium-server-4.14.1.jar node --port 5555 --selenium-manager true";
exec($cmd . " > /dev/null &");
?>
我无法找出不工作的原因。有人请帮忙吗?
检查了PHP的所有必要权限,没有权限问题。第一个命令执行完美,但第二个命令执行不完美。
答:
0赞
Nimesh
11/5/2023
#1
我在@ChrisHaas的评论的帮助下解决了这个问题 实际问题与 www-data (Apache2) 访问目录的正确权限有关。我允许该目录,例如 -
sudo chmod -R 777 /var/www/html/selenium-drivers
然后我可以执行命令
<?php
$cmd = "java -jar /var/www/html/selenium-drivers/selenium-server-4.14.1.jar node --port 5555 --selenium-manager true";
exec($cmd . " > /dev/null &");
?>
评论
1赞
Don't Panic
11/5/2023
太好了,你解决了问题(不要忘记接受/赞成你的答案,以便未来的访问者可以看到它很有帮助)。请注意,尽管使用 777 权限很危险,但您不应该这样做。运行 Web 服务器的用户是需要写入权限的用户,对吗?因此,只有该用户需要写入权限。
0赞
Nimesh
11/7/2023
是的。你是对的。谢谢
评论
$cmd = "nohup java -jar /var/www/html/selenium-drivers/selenium-server-4.14.1.jar node --port 5555 --selenium-manager true > /dev/null 2>&1 &"; exec($cmd);
node
node
PATH
—help