Apache-2.2

在伺服器範圍內安裝和配置 Zend Framework 2在拜託你___在b在n噸在Ubuntu並試駕 ZendSkeletonApplication

  • March 6, 2013

我正在嘗試一次為我的所有子域安裝 ZF2(Ubuntu 12.04)。

ZF2 剛剛發布了它的第一個穩定版本,所以我想把它安裝在我的開發伺服器上,最後親自動手。

我下載了 ZF2 並將文件解壓縮到**/var/ZF2/**(現在包含 Zend/

$$ all components $$). 然後我編輯了**/etc/php5/apache2/php.ini**並添加了 ZF2 文件的路徑:

include_path = ".:/var/ZF2"

然後我下載了 ZendSkeletonApplication 並將其解壓縮到**/var/www/skeleton**中。

我知道建議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

我瀏覽了文件、教程等,但對這種配置沒有直接的答案。

在官方文件中,在(非常短的)安裝章節中,我看到了在 PHP 中添加包含路徑的參考。但是沒有例子…

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

一旦您獲得了 Zend Framework 的副本,您的應用程序需要能夠訪問在庫文件夾中找到的框架類。儘管有幾種方法可以實現這一點,但您的 PHP include_path 需要包含 Zend Framework 庫的路徑。

但是,當我進入“入門”一章時,全是composer.phar,沒有別的了……

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

我不是系統管理員,只是 Zend 愛好者。我很確定這個 PEBKAC 問題對於那些已經進入 ZF2 以前的測試版的人來說可能很明顯。謝謝你幫助我。


編輯:

問題已解決,感謝 Daniel M.

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

SetEnv ZF2_PATH /var/ZF2

我還刪除了 php.ini 中的 include_path 引用,一切正常。所以我不知道為什麼 Zend 建議將它包含在他們的官方文件中。

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環境變數。如果您正在執行 apache Web 伺服器,那麼您需要做的就是mod_env。您可以創建一個.htaccess設置變數的文件。

如果它仍然無法執行,您可以init_autoloader.php很容易地調試文件。

引用自:https://serverfault.com/questions/427388