安装和configuration服务器范围内的Zend Framework 2 并testing驱动ZendSkeletonApplication

我试图一次为我的所有子域安装ZF2(Ubuntu 12.04)。

ZF2刚刚推出了它的第一个稳定版本,所以我想把它安装在我的开发服务器上,最后让我的手变脏。

我下载了ZF2,并将文件解压到/ var / ZF2 / (现在包含Zend / [所有组件])。

然后,我编辑/etc/php5/apache2/php.ini并添加到ZF2文件的path:

include_path = ".:/var/ZF2" 

然后我下载了ZendSkeletonApplication并将其解压到/ var / www / skeleton

我知道这是build议composer.phar安装ZF2应用程序,但是:

  • 我不想做一个ZF2的本地安装…我想做一个服务器范围的安装能够在我的开发服务器上的所有域/子域上使用我的Zend组件。

  • 在使用任何自动安装过程之前,我真的很想首先通过手动来理解这个过程。

很显然,当我启动ZendSkeletonApplication时,出现了一些问题,当遇到下面的URL时,我得到了以下内容:

http://www.myDevServer.com/skeleton/public/

 Fatal error: Uncaught exception 'RuntimeException' with message 'Unable to load ZF2. Run `php composer.phar install` or define a ZF2_PATH environment variable.' in /var/www/skeleton/init_autoloader.php:48 Stack trace: #0 /var/www/skeleton/public/index.php(9): include() #1 {main} thrown in /var/www/skeleton/init_autoloader.php on line 48 

我已经浏览了文档,教程等,但是对于这种configuration没有直接的答案。

在官方文档中,在(非常短的)安装章节中,我看到了在PHP中添加包含path的参考。 但是没有例子…

http://zf2.readthedocs.org/en/latest/ref/installation.html

一旦你有一个Zend框架的副本,你的应用程序需要能够访问在库文件夹中find的框架类。 虽然有几种方法可以实现这一点,但是您的PHP include_path需要包含Zend Framework库的path。

但是,当我进入“入门”章节时,这一切都是composer.phar,而不是别的…

http://zf2.readthedocs.org/en/latest/user-guide/skeleton-application.html

我不是系统pipe理员,只是一个Zend爱好者。 我很肯定这个PEBKAC问题可能对那些已经进入ZF2之前的beta版的人来说是显而易见的。 感谢您帮助我。


编辑:

问题解决了,感谢Daniel M.

只需在httpd.conf中设置ZF2_PATH即可。

 SetEnv ZF2_PATH /var/ZF2 

我也删除了php.ini中的include_path引用,一切正常。 所以我不知道为什么Zendbuild议将它包含在官方文档中。

检查应用程序的基本目录中的init_autoloader.php

 // Support for ZF2_PATH environment variable or git submodule if (($zf2Path = getenv('ZF2_PATH') ?: (is_dir('vendor/ZF2/library') ? 'vendor/ZF2/library' : false)) !== false) { if (isset($loader)) { $loader->add('Zend', $zf2Path . '/Zend'); } else { include $zf2Path . '/Zend/Loader/AutoloaderFactory.php'; Zend\Loader\AutoloaderFactory::factory(array( 'Zend\Loader\StandardAutoloader' => array( 'autoregister_zf' => true ) )); } } 

最简单的方法是设置ZF2_PATH env var。 如果你正在运行一个Apache Web服务器,所有你需要做的是mod_env 。 您可以创build一个设置variables的.htaccess文件。

如果它仍然不能运行,你可以很容易地debugginginit_autoloader.php文件。

你也可以使用pyrus.phar来安装。 阅读http://packages.zendframework.com/上的信息进行全系统安装。