PHP shell_exec 命令无效

PHP shell_exec command doesn't work

我正在尝试学习从 PHP 代码中执行 shell 脚本。因此,我制作了一个测试程序来从 PHP 中执行 bash 脚本。但是,它没有效果。相关代码如下所示。

<?php 
.......
shell_exec('/bin/bash /var/www/html/just_touch.sh');
?> 

just_touch.sh 脚本只是创建一个新文件,如下所示。

touch /home/user/some.txt

我希望在执行后得到文件 /home/user/some.txt,但是没有,它没有生成。我做错了什么?

P.S: 虽然下面的代码有效。

$output = shell_exec('ls /home/user');
echo $output;

这与权限有什么关系吗?

此外,我注意到虽然打印 "Can you see me?".

$output = shell_exec('echo Can you see me?');
echo $output;

这不是!

shell_exec('echo Can you see me?')

这是怎么回事?

Stderr 在使用 shell_exec 时丢失。您可能不想使用:

shell_exec('/bin/bash /var/www/html/just_touch.sh 2>&1');