2013-02-16 80 views
2

我在Mac上使用XAMPP在本地設置了Silex-project。一切正常。現在我將這些文件上傳到我的Amazon ec2服務器並試圖運行它。我總是得到PHP錯誤消息:使用php/silex找到「Class not found」

"Fatal error: Class 'Silex\Application' not found in /opt/bitnami/apps/..." 

我正在使用Composer來處理依賴關係。我的文件的第一行是這樣的:

<?php 
require_once __DIR__.'/../vendor/autoload.php'; 

$app = new Silex\Application(); 
$app['debug'] = true; 

任何人都有線索如何解決這個問題?哪裏會出現問題?

非常感謝!歡呼聲

+0

這意味着自動加載器出現問題,您是否嘗試刪除供應商目錄並通過作曲家重新安裝? – Maerlyn 2013-02-16 18:58:02

+0

你是否使用了一些通過git部署的方式?你是否將供應商目錄提交到版本控制中? – igorw 2013-02-16 19:33:45

+0

@Maerlyn:到目前爲止,我沒有刪除自動加載文件並重新生成它。還沒有整個目錄。我試試看。 – user1879408 2013-02-17 07:51:35

回答

7

可疑的是,您正在使用某種基於git的部署過程。

目前沒有標記穩定版本的silex(編輯:截至目前,有)。因此,作曲家將從源代碼安裝它,導致將silex github存儲庫克隆到vendor/silex/silex中。由於該文件夾本身就是一個git倉庫,所以這些文件不能添加到你的主倉庫中。這意味着在你的服務器上vendor/silex/silex目錄根本就不存在。

如果你真的想,你可以申請與--prefer-dist標誌,這將迫使從ZIP壓縮文件安裝硅石運行composer install,允許添加到您的git回購目錄的修補程序。

但我想說,你不應該讓你的供應商進入版本控制。這個問題也包括由作曲家FAQ此項:

我建議增加vendor.gitignore運行composer install爲您的CI和部署過程的一部分。

+0

完美!我會嘗試,聽起來像解決方案!非常感謝你! – user1879408 2013-02-17 21:29:59

+0

Rock'n'Roll ...現在一切正常!謝謝! – user1879408 2013-02-21 06:31:45

+0

很好的答案,謝謝! – kendepelchin 2013-05-22 20:19:25

相關問題