www-data 用户似乎没有使用 php-curl 的权限

www-data 用户似乎没有使用 php-curl 的权限

我正在尝试让 drupal 的 simpletest 模块运行,它依靠 php-curl 来获取其请求。

当我以 root 用户身份执行以下操作时,它运行正常:

root@server:~# php -a
Interactive mode enabled

<?php

$ch = curl_init("http://testsite.drupal.dev/user");
$fp = fopen("example.html", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

root@server:~# cat /root/example.html 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Blah Blah -->
</body>
</html>
root@server:~# 

但是当 www-data 用户执行此操作时,却失败了:

root@server:~# su - www-data
www-data@server:~$ php5 -a
Interactive mode enabled

<?php

$ch = curl_init("http://testsite.drupal.dev/user");
$fp = fopen("example.html", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

www-data@server:~$ cat example.html 
www-data@server:~$ 

有人见过这种情况吗?我不知道该如何修复。任何帮助我都感激不尽!:)

环境:Debian Etch / Apache2 / php5

答案1

抱歉。这不是权限问题。事实证明 www-data 用户在其 ~/.profile 和 /etc/apache2/envvars 中设置了一个旧的 http_proxy,但该设置已不存在。

我已将其注释掉,现在它可以工作了:)

相关内容