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