Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.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
从PHP调用的Shell脚本不起作用,但它在命令行中起作用_Php_Linux_Django_Shell - Fatal编程技术网

从PHP调用的Shell脚本不起作用,但它在命令行中起作用

从PHP调用的Shell脚本不起作用,但它在命令行中起作用,php,linux,django,shell,Php,Linux,Django,Shell,我想通过从PHP调用的shell脚本复制一个文件。 但是,cp命令不能正常工作 我的系统如下: Linux:Ubuntu MATE 16.01、Apache2(端口80)、django(端口8000)、php(端口80) Shell脚本如下所示: #!/bin/sh cp /var/www/html/aaa.html /home/user/test/aaa.html aaa.html是django上的一个网页,由php保存在/var/www/html/下。 我在aaa.html上调用php

我想通过从PHP调用的shell脚本复制一个文件。 但是,cp命令不能正常工作

我的系统如下: Linux:Ubuntu MATE 16.01、Apache2(端口80)、django(端口8000)、php(端口80)

Shell脚本如下所示:

 #!/bin/sh
 cp /var/www/html/aaa.html /home/user/test/aaa.html
aaa.html是django上的一个网页,由php保存在/var/www/html/下。 我在aaa.html上调用php,然后上传aaa.html。之后,我在php上执行上面的shell脚本

当我在命令行(SSH-connect)中输入'cp/var/www/html/aaa.html/home/user/test/aaa.html'时,即使django的runserver正在运行,它也会工作,aaa.html也会更新。但是,当我在shell脚本中执行命令时,aaa.html不会更新

如何通过PHP调用的shell脚本更新aaa.html? 我想如果我能杀死runserver,aaa.html就会更新。 虽然从shell脚本调用的kill命令也不起作用。 有什么办法吗


谢谢。

通常对于此类问题,最好能提供更多信息,如给出的错误。 但10次中有9次这是一个许可问题

当您通过SSH执行此操作时,它是作为您用来登录的用户来完成的。这个人显然有权更改这个文件

当PHP尝试这样做时,这通常是由用于web服务器的用户完成的(例如:www数据)。您需要确保此用户对该文件具有权限

您可以使用Chmod执行此操作,Chmod会更改文件权限:

chmod g+w <myfile>
adduser www-data(or the webserver user) <the group belonging to the file> 
chmod g+w
添加用户www数据(或Web服务器用户)
这将更改权限以允许组写入,并将用户添加到文件所属的组


注意:可能通过ssh更改-/创建此文件,它属于您的用户,而不是使用Web服务器的用户

命令“cp/var/www/html/aaa.html/home/user/test/bbb.html”工作正常。非常感谢您的快速回复!更改权限后,该命令正常工作。@user8257918如果您愿意,请将此问题标记为已回答。