Проблема 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.