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はソースからインストールし、silexgithubリポジトリがに複製されvendor/silex/silexます。そのフォルダーはそれ自体がgitリポジトリであるため、これらのファイルをメインリポジトリに追加することはできません。これは、サーバー上にvendor/silex/silexディレクトリが存在しないことを意味します。

本当に必要な場合composer installは、フラグを指定して実行するという修正を適用できます--prefer-dist。これにより、zipアーカイブからsilexが強制的にインストールされ、ディレクトリをgitリポジトリに追加できるようになります。

しかし、ベンダーをバージョン管理に委ねるべきではないと思います。これは、composerFAQのこのエントリでもカバーされています。

CIおよびデプロイメントプロセスの一部として追加vendorして.gitignore実行することをお勧めします。composer install

于 2013-02-17T14:06:21.677 に答える