2012-11-12 305 views
5

我想安裝Symfony 2.1.3(最新版)。我正在運行作曲家並安裝一切正常。該錯誤,我得到的是:Symfony2作曲家安裝

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 
handling the post-install-cmd event terminated with an exception 

[RuntimeException]               
An error occurred when executing the "'cache:clear --no-warmup'" command. 

它被WWW文件夾下安裝。我運行nginx並遵循作曲家的方法。我在互聯網上讀到,應該手動運行apache而不是服務,但是我使用的是nginx。 apache是​​否還有什麼關係?我正在使用debian squeeze。

編輯:根據AdrienBrault的建議,錯誤是因爲時區未在php.ini中設置。只有 - 我可以看到警告。多謝你們。

+0

會發生什麼,如果你做的「PHP應用程序/控制檯高速緩存:明確--verbose」的工作? – AdrienBrault

+0

[ErrorException] 警告:date_default_timezone_get():依賴系統的時區設置不安全。您*必須*使用date.timezone設置或 date_default_timezone_set()函數。如果你使用了我的任何一個,並且仍然收到此警告,那麼很可能是拼寫錯誤的時區標識符。我們選擇'America/New_York'作爲'EST/-5.0/no DST' 而不是/var/www/Symfony/vendor/monolog/monolog/src/Monolog/Logger.php line 112 – Marin

+0

有趣的是我沒有控制該文件,因爲在安裝過程中,供應商被創建是不是?謝謝 – Marin

回答

7

Apache不相關 - PHP通過命令行調用。

最有可能是緩存文件夾中的權限:您是否檢查運行作曲家更新的用戶是否可以真正寫入緩存文件夾?

嘗試手動運行rm -Rf app/cache/dev(對於生產環境使用prod替換dev)並查看是否有任何權限錯誤。

如果在CLI中運行時沒有在php中配置default.timezone設置,也會出現此錯誤。爲了驗證只需運行

php --info | grep timezone

,並檢查設置date.timezone配置是否正確。

在安全性方面,將777設置爲該文件夾不是最佳解決方案 - 如果您啓用了ACL,則可以使用它來正確設置緩存和日誌文件夾的權限。更多詳情,請參閱Symfony2 official installation page

+0

沒有錯誤,它刪除它。 – Marin

+2

你可以嘗試運行作曲家安裝'curl -s https://getcomposer.org/installer | php'?檢查它是否會返回關於date.timezone的錯誤 - 如果是的話,這很可能是你的錯誤的原因 – Roberto

+0

我昨天試過它羅伯託,這是罪魁禍首! – Marin

0

如果您已經有供應商文件夾,我會將其刪除並通過「composer.phar install」再次安裝symfony 2.1.3。問題可能來自作曲家的過時版本

+0

也許[更新作曲家](http://getcomposer.org/download/)呢? – Gtx

+3

這不是問題。你得到的錯誤是從'Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: clearCache'這是一個在作曲家安裝完成後運行的腳本,這是'app/cache'目錄中的一個錯誤。如果你使用過時的作曲家版本,你應該使用'php composer.phar self-update'來獲得最新版本。 –

1

我曾經有過同樣的問題,經過幾個小時的面對磚牆的砰砰作響,我意識到......我的項目中有一個.gitmodule,並且在初始簽出這些子模塊時不會被初始化,因此您的作曲家無法進行更新,導致上述錯誤。

確保您運行以下

git submodule update --init src/Acme/Sadness/Bundle 
當然

取代的src/Acme的/悲情/捆綁與您的項目命名空間。

希望這可以幫助別人不會經歷我剛剛做的同樣的痛苦。

0

我有同樣的問題,我以這種方式解決。

控制檯 上執行這一點,你應該看到像這樣

$ locate php.ini 
/etc/php5/apache2/php.ini 
/etc/php5/cli/php.ini 
/etc/php5/fpm/php.ini 

第一線可能是你的php.ini當你做一個phpinfo()函數出現;

問題是,當你執行作曲家更新這個不檢查相同的PHP。INI

在我的情況

第二線

我所有的網站正常工作,但始終我編輯的第二個文件後出現的問題不是現在 ,把你的第一個

設置相同的時區運行

$ sudo service apache2 reload 

現在

$ composer update 

我希望這對你的工作就像是我

問候 埃米利亞諾