Проблема PHP safe_mode с использованием curl

Я хочу использовать cURL на моем сервере, но это дает мне следующую ошибку

Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot
be activated when in safe_mode or an open_basedir is set in
/www/htdocs/w009663c/download/webapp/browser/pproxy.php on line 180

Warning: Cannot modify header information - headers already sent 
by (output started at /www/htdocs/w009663c/download/webapp/browser/
pproxy.php:180) 
in /www/htdocs/w009663c/download/webapp/browser/pproxy.php on line 242
{"status":{"http_code":301},"contents":""}

Я попросил администратора сервера переключиться на safe_mode, но он говорит, что он уже выключен.

Что еще может вызвать эту проблему?

4 ответа

Решение

CURLOPT_FOLLOWLOCATION не может быть активирован, когда в safe_mode или open_basedir установлен

Я бы предположил, что open_basedir установлен тогда, и, поскольку он кажется общим сервером, я бы предположил, что они не собираются его отключать.

Положил

<?php 
phpinfo();

в файл и посмотрите на вывод, чтобы увидеть параметры конфигурации.

Может быть, обходной путь

Посмотрите на этот комментарий руководства curl-setopt:

http://php.net/manual/ro/function.curl-setopt.php

Может быть, этот обходной путь работает для вас

Может быть, вторая часть сообщения об ошибке: or an open_basedir is set

Дайте угадаю, вы используете Plesk в качестве панели управления? Это Plesk, который обычно ставит open_basedir установка...

Вы проверяли как open_basedir, так и safe_mode с помощью ini_get()? На самом деле они могут быть не отключены или у вас может быть установлен open_basedir.

Если вы используете plesk, эта ссылка может помочь: http://www.linuxweblog.com/plesk-vhost.conf

На страницах справочника для curl перечислены несколько способов решения этой проблемы: http://www.php.net/manual/en/function.curl-setopt.php

Другой обходной путь - использовать PEAR Http_Request или Zend_Http.

Другие вопросы по тегам