LSDEEX

August 21, 2009

open_basedir и cURL в php 5

Filed under: linux, php, хостинги — admin @ 5:44 pm

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

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress