如何在我们的应用程序中提供zend库路径? (在zend框架2.3中)

时间:2014-07-23 06:35:45

标签: apache zend-framework zend-framework2

我在本地计算机上安装了zend skeleton应用程序。我正在研究ubuntu。 我已经手动安装它而不使用composer。 我在httpd.conf中给出了ZF2_PATH(zend库路径)。如下所示:

<VirtualHost *:80>


ServerAdmin webmaster@localhost
DocumentRoot /var/www/
SetEnv ZF2_PATH /var/www/lib/ZendFramework-2.3.1/library
SetEnv APPLICATION_ENV "development"

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

工作正常。

我需要将此代码放在服务器上。我没有root权限来配置httpd.conf

那么如何在application.config.php中提供库路径? 任何帮助都会有用。

2 个答案:

答案 0 :(得分:1)

如果启用了.htaccess,则可以使用它来设置常量。它也应该有效:

SetEnv ZF2_PATH /var/www/lib/ZendFramework-2.3.1/library

或者当您想要相对于公共Web根目录加载库时:

SetEnv ZF2_PATH ./../lib/ZendFramework-2.3.1/library

答案 1 :(得分:0)

如果在服务器上的Apache中启用了mod_env,则只需在.htaccess文件中添加SetEnv指令。 如果未启用mod_env,则可以编辑init_autoloader.php以将其指向正确的文件夹。请参阅下面的init_autoloader.php的相关部分:

$zf2Path = false;

if (is_dir('vendor/ZF2/library')) {
    $zf2Path = 'vendor/ZF2/library';
} elseif (getenv('ZF2_PATH')) {      // Support for ZF2_PATH environment variable or git submodule
    $zf2Path = getenv('ZF2_PATH');
} elseif (get_cfg_var('zf2_path')) { // Support for zf2_path directive value
    $zf2Path = get_cfg_var('zf2_path');
}

if ($zf2Path) {
    if (isset($loader)) {
        $loader->add('Zend', $zf2Path);
        $loader->add('ZendXml', $zf2Path);
    } else {
        include $zf2Path . '/Zend/Loader/AutoloaderFactory.php';
        Zend\Loader\AutoloaderFactory::factory(array(
            'Zend\Loader\StandardAutoloader' => array(
                'autoregister_zf' => true
            )
        ));
    }
}