1

私はsymfony2.1、github、およびcapfony(展開用)を使用しています

プロジェクトを開始すると、これらの組み合わせは非常にうまく機能します。

ただし、SonataUserBundle と FOSUserbundle をプロジェクトに追加したので、

キャップ展開

コマンドは次のようなエラーを返します

PHP 致命的なエラー: 26 行目の /var/www/html/muty/releases/20130410144941/app/AppKernel.php にクラス 'Sonata\AdminBundle\SonataAdminBundle' が見つかりません

しかし、ここに SonataAdminBundle があります。

[アプリケーション名]/vendor/sonata-project/admin-bundle/Sonata/AdminBundle および AppKernel.php 内

public function registerBundles()
{
    $bundles = array(
     .....
        new Sonata\AdminBundle\SonataAdminBundle(),
        new Sonata\CacheBundle\SonataCacheBundle(),
        new Sonata\BlockBundle\SonataBlockBundle(),
        new Sonata\jQueryBundle\SonatajQueryBundle(),
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
        new FOS\UserBundle\FOSUserBundle(),
    .....
    );
}

これらの構造はローカルではうまく機能しますが、展開することはできません

ベンダーではなくコンポーザーを使用しています。

私見、ベンダー フォルダが正しく展開されていないようですが、正しいですか? または他にチェックする場所はありますか?アイデアをください!

どうもありがとう

私の deploy.rb は

set :application, "myapplication"
set :domain,      "myapplication"
set :deploy_to,   "/var/www/html/myapplication"
set :app_path,    "app"

set :repository,  "git@github.com:myname/myapplication.git"
set :scm,         :git
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `subversion`, `mercurial`, `perforce`, or `none`

set :default_shell,         "TERM=dumb sudo -u app /bin/sh"
set :branch, "master"
set :scm_username, "myname"
set :scm_passphrase, "mypass"
set   :use_sudo,      false
set :user, 'app'
set :model_manager, "doctrine"
# Or: `propel`

role :web,        "49.212.***.***"                         # Your HTTP server, Apache/etc
role :app,        "49.212.***.***"                         # This may be the same as your     `Web` server
role :db,         "49.212.***.***", :primary => true       # This is where Symfony2     migrations will run

set  :keep_releases,  3
set :clear_controllers,     false #app_dev.php should be deployed
#set :shared_files,        ["app/config/parameters.yml"]
#set :shared_children,     [app_path + "/logs", web_path + "/uploads"]

set :use_composer, true
set :update_vendors, true
set :deploy_via,            :remote_cache

set :writable_dirs,       ["app/cache", "app/logs"]
set :permission_method,   :chown #
set :use_set_permissions, false

# Be more verbose by uncommenting the following line
logger.level = Logger::MAX_LEVEL
4

1 に答える 1

1

SonataAdminBundle問題は、 composer がアプリケーションと対話しようとする (ほとんどの場合、キャッシュをウォームアップする) までにインストールされず、エラーが発生することだと思います。

最初に試すことは、次のように に追加することvendorです。shared_children

set :shared_children, [app_path + "/logs", web_path + "/uploads", "vendor"]

次に、展開するたびにベンダーを更新することはお勧めできません (また、互換性のない依存関係が原因で実際​​に問題が発生する可能性があります)。

セット:update_vendors、false

これらの両方が失敗した場合は、(上記の設定で) 新しいフォルダーに最初からデプロイしてみて、エラーがスローされるかどうかを確認してください。

于 2013-04-12T05:55:15.037 に答える