Symfony 在服务器上找不到类,在本地
我正在使用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中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” 但我这里有索纳塔 [应用程序名称
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中时,就会出现错误。。。这说明了什么?它解决了我的问题!我不知道为什么我的供应商目录没有更新(可能是你说的缓存相关的…)。非常感谢!!!终于可以部署了!它解决了我的问题!我不知道为什么我的供应商目录没有更新(可能是你说的缓存相关的…)。非常感谢!!!终于可以部署了!