如何在调试模式下部署带有capifony的symfony2应用程序?

时间:2015-01-07 00:27:32

标签: php symfony deployment capistrano capifony

我已经在我的网站上部署了我的应用程序,它终于工作得很好。 但是,我已经使用capifony的多级选项进行了第二次部署,这个选项称为开发而不是生产。

在我的development.rb文件中,我设置了:

  

设置:clear_controllers,false

这样就不会删除文件app_dev.php。实际上它是可用的,但默认情况下它不会启动,尽管有以下虚拟主机配置:

<VirtualHost *:80>
    ServerName test.sebastienvassaux.com
    DocumentRoot /var/www/mysite.com/development/current/web

    DocumentRoot /var/www/mysite.com/development/current/web
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/mysite.com/development/current/web>
        DirectoryIndex app_dev.php
        Options -Indexes
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

所以第一个问题:我如何为mysite.com加载app_dev.php而不是app.php?

然后,如果我手动输入地址mysite.com/app_dev.php,我会收到以下错误:

  

AppKernel.php第42行中的ClassNotFoundException:尝试加载   命名空间中的“SensioGeneratorBundle”类   “Sensio公司\包\ GeneratorBundle”。你忘记了“使用”声明吗?   另一个命名空间?

好吧,当我在开发模式下本地工作时,不会引发此错误,为什么会在此处引发?我该怎么做才能进一步了解这个问题?

非常感谢!

1 个答案:

答案 0 :(得分:2)

问题是作曲家有一个部分require-dev,它没有被收集或添加到自动加载器中。

您可以将capifony配置为在您的development.rb中预先包含require-dev:

set :composer_options,  "--dev --verbose --prefer-dist --optimize-autoloader --no-progress"

set :clear_controllers, false结合使用,您应该可以运行app_dev.php

希望它有所帮助