Open_basedir и cURL в php 5

CURLOPT_FOLLOWLOCATION в curl порой не работает из-за того что директива open_basedir в php.ini (и в httpd.conf на firstvds.ru) имеет значение, указывающее на директорию.

Чтобы заставить curl работать, надо сделать так, чтобы значение директивы равнялось none.

Первым делом убедитесь в том, что в php.ini safe_mode = Off

Если безопасный режим выключен, необходимо отключить open_basedir.

На примере firstvds.ru:

Заходим от имени root на сервер по SSH.

Для этого можно использовать PuTTy

1 отключаем её в php.ini

chmod 774 /usr/local/etc/php.ini (чтобы можно было редактировать)

vim /usr/local/etc/php.ini (открываем в редакторе)

/ open_basedir (ищем по тексту)

;open_basedir =

меняем на

open_basedir = none

зажимаем shift и жмём 2 раза Z – тем самым сохраняем файл и закрываем редактор

2 отключаем в httpd.conf

vim /usr/local/etc/apache22/httpd.conf

в виме открываем строку для ввода команд, путём нажатия Shift+6 (в англ. раскладке)

Там вводим:

%s/dir «/home/MY_SERVER/data:.»/dir none/g

вместо MY_SERVER указываем свою директорию, которая есть в конфиге

либо вручную:

строка php_admin_value open_basedir “….”

заменяем кавычки и их содержимое на none

php_admin_value open_basedir none

зажимаем shift и жмём 2 раза Z – тем самым сохраняем файл и закрываем редактор

3 перезагружаем сервер в ISP Manager

Рейтинг
( Пока оценок нет )
Загрузка ...