Отправить заявку

open_basedir в PHP при eAccelerator - исправление ошибки

Одним из эффективным способом увеличить скорость выполнения php-приложений является установка пакета eAccelerator. Принцип работы eAccelerator заключается в предварительной компиляции php-кода в так называемый «промежуточный байт-код». Перед установкой eAccelerator установите приложения для разработчиков и php5-dev, где расположены библиотеки для плагинов на основе php.

При настройке очередного сервера необходимо было изолировать сайты друг от друга директивой open_basedir, но после установки eAccelerator`а на сайтах стала появляться ошибка:

Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/user/data:.) in Unknown on line 0 Fatal error: Can't load /var/www/user/data/www/artkiev.com/, open_basedir restriction. in Unknown on line 0 

Решение проблемы open_basedir в PHP при eAccelerator:

1) Качаем последнюю версию eAccelerator`a
2) Распаковываем архив, находим файл eaccelerator.c и в строке 867 находим строчку вида:

if (php_check_open_basedir(realname TSRMLS_CC)) { 

и заменяем ее на

if (php_check_open_basedir(p->realfilename TSRMLS_CC)) { 

после этого заново компилируем и устанавливаем и в завершение перезапускам apache и проверяем работоспособность.

Другие публикации