PHP shell_exec命令不';行不通

PHP shell_exec命令不';行不通,php,linux,bash,lamp,Php,Linux,Bash,Lamp,我正在尝试从PHP代码中学习执行shell脚本。因此,我制作了一个测试程序,在PHP中执行一个bash脚本。但是,它没有效果。相关代码如下所示 <?php ....... shell_exec('/bin/bash /var/www/html/just_touch.sh'); ?> touch /home/user/some.txt 我本来希望在执行后有一个文件/home/user/some.txt,但是没有,没有。我犯了什么错误 p.S:但以下代码仍然有效 $output

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

<?php 
.......
shell_exec('/bin/bash /var/www/html/just_touch.sh');
?> 
touch /home/user/some.txt
我本来希望在执行后有一个文件
/home/user/some.txt
,但是没有,没有。我犯了什么错误

p.S:但以下代码仍然有效

$output = shell_exec('ls /home/user');
echo $output;
这与权限有关吗

此外,我注意到,虽然这张照片上写着“你能看见我吗?”

这可不行

shell_exec('echo Can you see me?')
这是怎么回事?

在使用
shell\u exec
时,Stderr会丢失。您可能不想使用:

shell_exec('/bin/bash/var/www/html/just_touch.sh 2>&1');
使用
shell\u exec
时,Stderr将丢失。您可能不想使用:

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

提供/somedir/just\u touch的完整路径。狗屎仍然不起作用。有没有办法查看Mozilla中发生了什么错误?要查看Mozilla中的某些内容,请使用
passthru()
而不是
shell\u exec()
。最有可能的是
/home/user/some.txt
不可由Web服务器userid写入,那么如何使其可写入?我怎么能通过webservers用户ID检查它是否可写?给出/somedir/just_touch.shIt的完整路径仍然不起作用。有没有办法查看Mozilla中发生了什么错误?要查看Mozilla中的某些内容,请使用
passthru()
而不是
shell\u exec()
。最有可能的是
/home/user/some.txt
不可由Web服务器userid写入,那么如何使其可写入?我如何通过webservers用户ID检查其是否可写?这确实非常有用,因为现在我看到消息touch:cannot touch'/home/user/some.txt':权限被拒绝。但是,这些许可权让我很痛苦:(!你知道怎么解决这些权限吗?让目标目录
/home/user
可由Web服务器用户写入。也就是说,让它组可写:
chmod g+w/home/user
,并将主目录组设置为Web服务器正在运行的同一组:
chgrp wwwrun/home/user
。现在我得到了一个将权限设置为777。但我认为这是非常不安全的。我将使用您的方法结帐。确实非常有用,因为现在我看到消息,touch:cannot touch'/home/user/some.txt':权限被拒绝。这些权限正在扼杀我的生命:(!你知道怎么解决这些权限吗?让目标目录
/home/user
可由Web服务器用户写入。也就是说,让它组可写:
chmod g+w/home/user
,并将主目录组设置为Web服务器正在运行的同一组:
chgrp wwwrun/home/user
。现在我得到了一个将权限设置为777。但我认为这是非常不安全的。我将使用您的方法进行验证。
shell_exec('echo Can you see me?')