Я получаю следующую ошибку при попытке запустить проект, созданный 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(), )));
Эта проблема возникла из-за:
или
=> В 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();