PEAR Cache_Lite метод save

Фруталити

Новичок
Здравствуйте.

Пытаюсь использовать данный модуль на новом сайте, столкнулся с ошибкой. Сразу же стал дебажить (создал чистый поддомен, где нет ничего, кроме Cache_Lite и моего скрипта-теста).

PHP:
<?php
  header('Content-type: text/html; charset=utf-8');
  require_once 'cachelite/Output.php'; // используется не самая последняя версия модуля, но 100%-работающая на другом моем сайте
  
  $cache = new Cache_Lite(array('cacheDir' => '/cachedir/'));
  var_dump($cache); // выводит объект в браузер, все в норме
  if ($a = $cache->get('asdasd')) echo "Кэш есть";
  else echo "Кэша нет"; // выводится в браузер, что доказывает, что метод get работает
  //else $cache->save('asdasd'); // а вот этот метод не работает
?>
Суть проблемы: при вызове метода save() происходит ошибка.
[Mon Jul 15 12:32:06 2013] [error] [client 109.233.233.229] PHP Warning: include_once(): open_basedir restriction in effect. File(/usr/share/php/PEAR.php) is not within the allowed path(s): (/var/www/mytestdomain/data:.) in /var/www/mytestdomain/data/www/test.mytestdomain.com/cachelite/Cache/Lite.php on line 548
[Mon Jul 15 12:32:06 2013] [error] [client 109.233.233.229] PHP Warning: include_once(/usr/share/php/PEAR.php): failed to open stream: Operation not permitted in /var/www/mytestdomain/data/www/test.mytestdomain.com/cachelite/Cache/Lite.php on line 548
[Mon Jul 15 12:32:06 2013] [error] [client 109.233.233.229] PHP Warning: include_once(): Failed opening 'PEAR.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/mytestdomain/data/www/test.mytestdomain.com/cachelite/Cache/Lite.php on line 548
[Mon Jul 15 12:32:06 2013] [error] [client 109.233.233.229] PHP Fatal error: Class 'PEAR' not found in /var/www/mytestdomain/data/www/test.mytestdomain.com/cachelite/Cache/Lite.php on line 549
Как видно из логов, скрипт пытается открыть файл PEAR.php, расположенный в недрах сервера (.:/usr/share/php:/usr/share/pear).

Файл там имеется.

Более того, на этом же VPS у меня хостится сайт (назовем его cacheliteworks.com), где я использую тот же самый дистрибутив Cache_Lite и там все работает. Никаких ошибок.

Если установить на сервер свежую версию: pear install Cache_Lite, то перестает работать сайт cacheliteworks.com. При этом, на test.mytestdomain.com модуль все равно не начинает работать.

Уже сломал весь мозг. Как так получается? На многих сайтах использовал Cache_Lite, а тут такое.
 

С.

Продвинутый новичок
Как на счет просто читать сообщения в логе сверху вниз и исправлять указанные ошибки? Что-то непонятно в тексте ошибки?
 

Фруталити

Новичок
Как на счет просто читать сообщения в логе сверху вниз и исправлять указанные ошибки? Что-то непонятно в тексте ошибки?
Да. Непонятно, почему указанная ошибка (первая сверху) вообще появляется? Я не просил использовать модуль /usr/share/php/PEAR.php. Такая ошибка не возникает на другом сайте. Сервер тот же, конфиги те же, другой только пользователь. Все настройки пользователей идентичны (использую ISPManager).
 

С.

Продвинутый новичок
Там же прямым текстом написано, почему она возникает. Помочь с переводом?
 

Фруталити

Новичок
Нет, лучше помогите понять, что делать. я знаю, что в каталоге /var/www/mytestdomain/data:. не находится /usr/share/php/PEAR.php.

Почему Cache_Lite его там ищет вообще? Файл есть в /var/www/mytestdomain/data/www/test.mytestdomain.com/cachelite/Cache/PEAR.php
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Почему Cache_Lite его там ищет вообще?
Потому что
[Mon Jul 15 12:32:06 2013] [error] [client 109.233.233.229] PHP Warning: include_once(): Failed opening 'PEAR.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/mytestdomain/data/www/test.mytestdomain.com/cachelite/Cache/Lite.php on line 548
Файл ищется в include_path, а include_path не настроен.
 

Фруталити

Новичок
1. Почему на другом домене Cache_Lite работает? include_path там возвращает ту же строку, что и здесь.
2. Я чего-то не знаю об include? Почему скрипт не ищет сначала в локальном каталоге нужный файл?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
1. Почему на другом домене Cache_Lite работает? include_path там возвращает ту же строку, что и здесь.
2. Я чего-то не знаю об include? Почему скрипт не ищет сначала в локальном каталоге нужный файл?
1. Cache_Lite,насколько я понимаю, подгружает PEAR.php только в том случае, если ему надо вернуть ошибку. На другом домене, сталбыть, ему ошибку возвращать не надо.
2. Да, ты чего-то не знаешь об include. В документации PEAR про include_path тоже есть.
 
Сверху