Назад | Перейти на главную страницу

Пользователь www-data, похоже, не имеет доступа к использованию php-curl

Я пытаюсь заставить работать самый простой модуль для drupal, который полагается на 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

Сожалею. Это не было проблемой с разрешениями. Оказывается, у пользователя www-data был установлен старый http_proxy в его ~ / .profile и в / etc / apache2 / envvars, которого больше не существует.

Я закомментировал это, и теперь он работает :)