2013-02-16 79 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

相关问题