Заставляем совместно работать open_basedir + realpath_cache

от автора

Заметив некоторое замедление работы PHP на постоянных проверках lstat всех путей открываемых файлов и директорий, решил поднастроить производительность, увеличив realpath_cache_size. Был немного удивлён, когда получил из

var_dump(realpath_cache_size(),realpath_cache_get()); 

int(0); array(0) {}

Ещё больше удивило, что этот баг до сих пор не решён в последних версиях PHP 5.6.

Некоторым гуглением было найдено решение: расширение, совмещающее в себе open_basedir и работающее через кеш путей php. Turbo_realpath.

В Pecl его нет, поэтому скачиваем архив с офсайта (для версий 5.4+, ниже смотрите на офсайте).

Установка в консоли:

unzip realpath_turbo_1.2.zip cd realpath_turbo phpize ./configure make make install 

В php.ini или как, например, у меня в debian-like, для отдельного расширения своя конфигурация:

extension=turbo_realpath.so 

заменяем настройки open_basedir

# clear all open_basedir restrictions open_basedir="" # replace it with  realpath_cache_basedir = /var/www/html/drupal 

Расширение может ещё некоторые security улучшения:

; set this to 1 in order to disable dangerous PHP functions (link,symlink), or set to 0 in order to ignore potential security issues <video></video>; установка в 1 чтобы отключить опасные PHP функции (link,symlink), или в 0 чтобы проигнорировать потенциально опасные вещи realpath_cache_security = 1 ; if you want, you can enable safe_mode, in order to do so, you have to switch off ; standard open_basedir setting... ; если хотите, можете включить safe_mode, в свою очередь, вы должны отключить стандартный open_basedir open_basedir = off ; and then switch on custom realpath_cache_open_basedir setting, ; (remember, safe mode is not required by realpath_turbo extension,  ; you can safely ignore these settings if you want) ; и тогда включить кастомный realpath_cache_open_basedir ; (помните, safe mode не требуется для расширения realpath_turbo, вы можете спокойно игнорировать эту опцию, если хотите) real_path_cache_safe_mode = on 

ссылка на оригинал статьи http://habrahabr.ru/post/270435/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *