我在本地计算机上安装了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中提供库路径? 任何帮助都会有用。
答案 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
)
));
}
}