PHP exec、system、shell_exec在Ubuntu机器上无法与wget配合使用

3
我有一个简单的脚本,目前正在测试,但它不起作用。
我有这些简单的行:
$url = "http://www.google.com";   
system("wget --page-requisites ".$url); 

问题在于它什么也没做,我的网站位于 /var/www/html/server_a,我正在检查是否已下载所需的页面,但似乎什么也没做。
我使用的是 Ubuntu 14.04 的 VPS。

你检查过文件夹/var/www/html/的权限了吗? - Dalton Cézane
你能检查一下错误日志吗?或者,你可以打开错误报告功能,看看是否显示任何警告或错误? - SuperCabbage
无法写入 'www.example.com/index.html'(没有此文件或目录)。 在0秒内转换了0个文件。 --2018-09-03 11:21:16-- http://www.google.com/ 正在解析 www.google.com (www.google.com)... 108.177.122.106, 108.177.122.147, 108.177.122.104, ... 正在连接 www.google.com (www.google.com)|108.177.122.106|:80... 已连接。 HTTP 请求已发送,正在等待响应... 200 OK 长度未指定 [text/html] www.google.com:权限被拒绝www.google.com/index.html:没有此文件或目录无法写入 'www.google.com/index.html'(没有此文件或目录)。 - Gongas
/var/www/html/server_a 是否属于 www-data:www-data? - unixmiah
1个回答

0

你的问题是sudo,你需要在运行这个命令之前添加sudo。

$url = "http://www.google.com";   
system("sudo wget --page-requisites ".$url); 

这听起来不是一个好主意。为什么wget需要sudo?你为什么假设他的用户帐户能够使用sudo?你还需要输入一个密码,而system()并没有做到这一点。 - Xatenev
那行不通,因为你没有发送密码。 - Dave Carruthers
哼..用户没有足够的权限。我想知道是否有其他选择。 - unixmiah
system("echo password | sudo -S wget --page-requisites ".$url); - Dave Carruthers
我已经解决了这个问题,不需要使用sudo,因为这会带来很多安全问题,所以我只是添加了网站文件夹的权限,使其可以下载wget。 - Gongas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接