Zend Framework错误:无法打开所需的'Zend / Application.php'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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第24行的/var/www/vhosts/moderncloud.net/om/public/index.php中的/moderncloud.net/om / library:')
<?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();
解:
我今天自己找到了。在我的httpd配置中选项“php_admin_value open_basedir”存在问题。我把它设置为无,它开始工作。或者,我想我可以将Zend库目录附加到我的Web服务器配置中的open_basedir选项,而不是将其设置为none。
你能尝试更换:
set_include_path(implode(PATH_SEPARATOR, array( ('/var/www/vhosts/moderncloud.net/om/library'), get_include_path(), )));
同
$siteRootDir = dirname($_SERVER['DOCUMENT_ROOT']); set_include_path( $siteRootDir . '/library' . PATH_SEPARATOR . $siteRootDir . '/application' . PATH_SEPARATOR . get_include_path() );
希望这对你有用
如果可能,删除现有的zend框架安装并使用PEAR安装ZF。稍后更新会更容易:
pear channel-discover zend.googlecode.com/svn
pear install zend/zend
它还将使用PEAR的include_path,因此它应该可以解决您的问题。
如果您不能使用pear,请尝试使用包含路径的相对路径:
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
由于以下原因产生此问题:
- 在index.php文件中的Public文件夹。
要么
- 在库文件夹中: - 只需检入库文件夹,库文件夹中是否存在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();
以上是关于Zend Framework错误:无法打开所需的'Zend / Application.php'的主要内容,如果未能解决你的问题,请参考以下文章
Xampp / Composer / Zend Framework 2 安装问题
PHP Pear Mail 返回致命错误:无法打开所需的“Mail.php”