2

我在 Mac 上使用 XAMPP 设置了一个本地 Silex 项目。一切正常。现在我将文件上传到我的 Amazon ec2 服务器并尝试运行它。我总是收到 php 错误消息:

"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;

任何人都知道如何解决这个问题?哪里可能有问题?

非常感谢!干杯

4

1 回答 1

7

正如怀疑的那样,您正在使用某种基于 git 的部署过程。

目前没有标记的 silex 稳定版本(编辑:截至目前,有)。因此,composer 将从源代码安装它,从而将 silex github 存储库克隆到vendor/silex/silex. 由于该文件夹本身就是一个 git 存储库,因此无法将这些文件添加到您的主存储库中。这意味着在您的服务器上该vendor/silex/silex目录根本不存在。

如果你真的想要,你可以应用运行标志的修复程序composer install--prefer-dist这将强制从 zip 存档安装 silex,从而允许将目录添加到你的 git 存储库中。

但我会说你不应该让你的供应商参与版本控制。作曲家常见问题解答中的此条目也涵盖了这一点:

我建议添加vendor到您并作为 CI 和部署过程的一部分.gitignore运行。composer install

于 2013-02-17T14:06:21.677 回答