Symfony 在服务器上找不到类,在本地

Symfony 在服务器上找不到类,在本地,symfony,capifony,Symfony,Capifony,我正在使用symfony2.1、github和capfony(用于部署) 当我开始这个项目时,这些组合非常有效 然而,由于我在项目中添加了SonataUserBundle和FOSUserbundle cap部署 命令返回错误 比如 PHP致命错误:在第26行的/var/www/html/muty/releases/20130410144941/app/AppKernel.PHP中找不到类“Sonata\AdminBundle\SonataAdminBundle” 但我这里有索纳塔 [应用程序名称

我正在使用symfony2.1、github和capfony(用于部署)

当我开始这个项目时,这些组合非常有效

然而,由于我在项目中添加了SonataUserBundle和FOSUserbundle

cap部署

命令返回错误 比如

PHP致命错误:在第26行的/var/www/html/muty/releases/20130410144941/app/AppKernel.PHP中找不到类“Sonata\AdminBundle\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(),
    .....
    );
}
这些结构在本地运行良好,但无法部署

我使用composer而不是vendor

伊姆霍, 似乎供应商文件夹未正确部署,对吗? 还是有其他地方可以查? 请给我一些想法

非常感谢

我的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

我认为问题在于,当composer尝试与您的应用程序交互(很可能是预热缓存)时,
SonatAdminBundle
没有安装,这会触发错误

首先尝试将
供应商
添加到
共享子项
,如下所示:

集合:共享子项,[app\u path+“/logs”,web\u path+“/uploads”,“vendor”]

其次,每次部署时更新供应商可能不是一个好主意(实际上可能会因为不兼容的依赖关系而导致问题):

设置:更新供应商,错误


如果这两个都失败了,请尝试从头部署到一个新文件夹(使用上面的设置),并查看它是否会引发任何错误。

我认为问题在于,当composer尝试与您的应用程序交互(很可能是预热缓存)时,
SonatAdminBundle
尚未安装,这会触发错误

首先尝试将
供应商
添加到
共享子项
,如下所示:

集合:共享子项,[app\u path+“/logs”,web\u path+“/uploads”,“vendor”]

其次,每次部署时更新供应商可能不是一个好主意(实际上可能会因为不兼容的依赖关系而导致问题):

设置:更新供应商,错误


如果这两个都失败了,尝试从头部署到一个新文件夹(使用上面的设置),看看它是否会抛出任何错误。

您可以检查
供应商/composer/autoload_namespace.php
并查看数组中是否有
Sonata\\AdminBundle
?有
Sonata\\AdminBundle'=>$vendorDir'/sonata项目/admin bundle/'
在autoload_namespace.phppaste您的deploy.rb文件中我粘贴了我的deploy.rb。谢谢。@whitebear,我也有类似的问题。每当我执行
编写器更新
Sonata\\AdminBundle…
不在autoload\u namespaces.php中时,就会出现错误。。。这表明了什么?你能检查一下你的
vendor/composer/autoload_namespaces.php
,看看数组中是否有
Sonata\\AdminBundle
?有
'Sonata\\AdminBundle'=>$vendorDir'/sonata项目/admin bundle/'
在autoload_namespace.phppaste您的deploy.rb文件中我粘贴了我的deploy.rb。谢谢。@whitebear,我也有类似的问题。每当我执行
编写器更新
Sonata\\AdminBundle…
不在autoload\u namespaces.php中时,就会出现错误。。。这说明了什么?它解决了我的问题!我不知道为什么我的供应商目录没有更新(可能是你说的缓存相关的…)。非常感谢!!!终于可以部署了!它解决了我的问题!我不知道为什么我的供应商目录没有更新(可能是你说的缓存相关的…)。非常感谢!!!终于可以部署了!