警告:require_once(Zend / Application.php):无法打开流:/ var / w中没有这样的文件或目录

时间:2013-10-15 11:15:37

标签: zend-framework

我的索引文件是这个

<?php
ini_set( "short_open_tag", 1 );
ini_set( "display_errors", 1 );
// 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'
);

// Let 'er rip
$application->bootstrap()->run();

当我运行

警告:require_once(Zend / Application.php):无法打开流:第18行/var/www/Giftercity_backup/index.php中没有此类文件或目录致命错误:require_once():打开所需的'Zend失败第18行的/var/www/Giftercity_backup/index.php中的/Application.php'(include_path =':。:/ usr / share / php:/ usr / share / pear')

3 个答案:

答案 0 :(得分:6)

对于Ubuntu 如果您安装ZendFramework包。即sudo apt-get install zend-framework
它会将zend库文件放在/usr/share/php/libzend-framework-php/Zend/ folder中 你必须复制并粘贴Zend/ folder into /user/share/php/
在终端中运行以下命令。

cd /usr/share/php
sudo cp -R libzend-framework-php/Zend/ Zend

答案 1 :(得分:1)

将索引文件放在“public”目录中。

或者,如果您想要或不能包含父目录中的文件,则需要更改此行:

set_include_path(implode(PATH_SEPARATOR, array(
  realpath(APPLICATION_PATH . '/../library'),
  get_include_path(),
)));

set_include_path(implode(PATH_SEPARATOR, array(
  realpath(APPLICATION_PATH . '/library'), // Here we have change
  get_include_path(),
)));

当然我假设您已经将Zend文件放入库/ Zend

您还需要记住将带有“全部拒绝”的.htaccess文件放到您不希望用户访问的应用程序,库和任何其他目录中。

顺便说一下。 这种包含库的方法很老,不推荐使用。

答案 2 :(得分:0)

如果您的index.php文件位于/var/www/Giftercity_backup/index.php(根据错误输出),则根据您的代码,library位置应位于/var/www/library和{{1在application听起来不对。

/var/www/application应位于index.php/var/www/Giftercity_backup/public等公共文件夹中,您的VirtualHost DocumentRoot应指向该文件夹。

此外,您的/var/www/Giftercity_backup/htdocs未注册set_include_path(include_path =':。:/ usr / share / php:/ usr / share / pear')。