Ubuntu + Netbeans - 由于包含路径导致Zend框架致命错误

时间:2013-08-12 17:03:01

标签: php apache zend-framework

我在全新安装Zend框架时遇到了'include'路径问题。我正在运行Ubuntu并使用Netbeans。我通过终端安装了Zend,并将相应的文件复制到我的新项目中。

我正在尝试访问localhost / demoZend / public

时收到此信息
Warning: require_once(Zend/Application.php): failed to open stream: No such file or directory in /home/mastered/public_html/demoZend/public/index.php on line 18

Fatal error: require_once(): Failed opening required 'Zend/Application.php' (include_path='/home/mastered/public_html/demoZend/library:.:/opt/lampp/lib/php') in /home/mastered/public_html/demoZend/public/index.php on line 18

我已将带有框架的'Zend'文件夹复制到我的project / library文件夹中,因此文件夹结构为/ demoZend / library / Zend /

我还从教程的建议中更改了我的php.ini中的'include'路径。然而,这是我困惑的地方。

路径显示:

include_path = ".:/usr/share/php:/usr/share/php/libzend-framework-php/"

在我的apache2 / php.ini 以及我的/etc/php5/cli/php.ini文件中。

我的项目中的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';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run(); 

我没有改变它,因为文件路径似乎没问题。 我还应该指出我将我的网络文档存储在我的'〜/ public_html'目录中,我已经检查了我的'demoZend / library'文件夹的权限,并且他们有所有限制 off

1 个答案:

答案 0 :(得分:0)

听起来你正在关注Zend Framework 1的教程,但是你已经下载了Zend Framework 2.ZF2中没有Zend/Application.php,所以这就是PHP找不到文件的原因。

您可以返回ZF下载页面并获取最新版本的ZF1(目前为1.12.3),或者查找ZF2教程并学习ZF2。如果您刚刚开始使用ZF,我会选择后者。