Zend Framework Ошибка: сбой открытия требуется «Zend / Application.php»

Я получаю следующую ошибку при попытке запустить проект, созданный Zend Framework. Он ищет Zend / Application.php и доступен в каталоге, который находится в моем include_path. У меня есть права на чтение в каталоге.

PHP Неустранимая ошибка: require_once () [function.require]: Не удалось открыть «Zend / Application.php» (include_path = '/ var / www / vhosts / moderncloud.net / om / library:.: / Var / www / vhosts /moderncloud.net/om / library: ') в /var/www/vhosts/moderncloud.net/om/public/index.php в строке 24

<?php // Define path to application directory //defined('APPLICATION_PATH') // || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application')); defined('APPLICATION_PATH') || define('APPLICATION_PATH', dirname(__FILE__) . '/../application'); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( ('/var/www/vhosts/moderncloud.net/om/library'), get_include_path(), ))); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run(); 

РЕШЕНИЕ:

Я нашел его сегодня. Его проблема с опцией «php_admin_value open_basedir» в моей конфигурации httpd. Я не установил его, и он начал работать. В качестве альтернативы, я предполагаю, что я могу добавить каталог библиотеки Zend в параметр open_basedir в моей конфигурации веб-сервера, а не устанавливать его в none.

Можете ли вы попробовать заменить:

 set_include_path (implode (PATH_SEPARATOR, массив (
     ( '/var/www/vhosts/moderncloud.net/om/library'),
     get_include_path (),
 )));

с

 $ siteRootDir = dirname ($ _ SERVER ['DOCUMENT_ROOT']);

 set_include_path (
     $ siteRootDir.  '/ library'.  PATH_SEPARATOR 
     ,  $ siteRootDir.  '/заявление' .  PATH_SEPARATOR 
     ,  get_include_path ()
 );

Надеюсь, это сработает для вас

Если возможно, удалите существующую инфраструктуру zend framework и установите ZF с помощью PEAR. В дальнейшем будет проще обновить:

  pear channel-discover zend.googlecode.com/svn pear install zend/zend 

Он также будет использовать include_path PEAR, поэтому он должен решить вашу проблему.

Если вы не можете использовать грушу, попробуйте использовать относительный путь с вашим путем include:

  // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); 

Эта проблема возникла из-за:

  1. Внутри общей папки в файле index.php.

или

  1. Внутренняя папка библиотеки: – Просто зарегистрируйтесь в папке библиотеки, есть папка Zend, присутствующая в папке библиотеки, или нет. Если не существует папки zend, тогда загрузите из рамки zend и сохраните ее в папке библиотеки.

=> В index.php скопируйте следующий код и замените его.

 <?php // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); /** Zend_Application */ //require_once 'Zend/Application.php'; require_once 'library/Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap() ->run();