标签: capifony

是否有可能编译Symfony2资产:转储和部署而不是在服务器上运行它?

我的生产服务器上有一个问题,assetic:dump即在Capifony部署上超时(但并非总是如此).

assetic:dump在当地跑步很好.另外,部署到不同的staging(功能更弱)服务器也没问题.

为了解决这个问题(以及加速部署),我想知道是否可以assetic:dump在部署之前运行并且只是将这些已编译的资产与其余部署一起发送?

php deployment symfony assetic capifony

9
推荐指数
1
解决办法
2462
查看次数

通过Capistrano通过Jenkins部署 - SSH身份验证失败

我有一个运行Capistrano部署的Jenkins构建作为后构建操作.

从控制台运行Capkinsrano任务作为Jenkins用户工作非常正常,没有密码提示(我之前在构建和登台服务器上都设置了SSH密钥).但是,当通过Jenkins运行相同的脚本时,我突然收到密码提示,然后构建失败(没有TTY存在).

[workspace] $ /bin/sh -xe /tmp/hudson7321493219694918714.sh
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : cap _2.13.4_ deploy
[workspace] $ /bin/sh -xe /tmp/hudson1545664641721322948.sh
+ cap _2.13.4_ deploy
  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    triggering before callbacks for `deploy:update_code'
[32m--> Updating code base with checkout strategy[0m
    executing locally: "git ls-remote git@my.staging-server.com:my_project.git master"
    command finished in 1200ms
  * executing "git clone -q git@my.staging-server.com:my_project.git /var/www/staging/my_project/releases/20121029223619 && cd …
Run Code Online (Sandbox Code Playgroud)

ssh capistrano ssh-keys jenkins capifony

9
推荐指数
1
解决办法
6160
查看次数

Symfony资产:转储运行时异常

我正在使用Capifony部署我的Symfony应用程序.当Capifony执行assetic时:dump我得到一个运行时异常.

[RuntimeException]
无法写入文件{path}/releases/20130314071536/app /../ web/js /.

我尝试手动执行命令并获得相同的异常.
然后我使用--verbose参数尝试了该命令,并意识到所有文件的源路径都有一个点,其中没有文件名,只有扩展名.点击没有扩展名的文件名(在这种情况下为Makefile)并尝试写入文件"."时出现异常.(只有一个点).

在同一服务器上的另一个域上,我有完全相同的代码,但手动部署.在那里我没有得到这个错误.所以它不是PHP版本的问题.我还检查了Assetic和Assetic-Bundle版本,它们是相同的.

资产工作的原因可能是什么?

编辑:
我忘了提到它在我的开发机器上也能正常工作.

编辑2:
它开始失败的文件

编辑3:
我刚刚意识到它适用于开发环境......但是对于--env = prod它会产生问题

网络/包/资产/资产/图像/图标/ aws.png

我没有在任何模板中使用的文件

Stacktrace来自错误

Exception trace:
 () at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:249
 Symfony\Bundle\AsseticBundle\Command\DumpCommand->doDump() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:187
 Symfony\Bundle\AsseticBundle\Command\DumpCommand->dumpAsset() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:64
 Symfony\Bundle\AsseticBundle\Command\DumpCommand->execute() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:238
 Symfony\Component\Console\Command\Command->run() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:192
 Symfony\Component\Console\Application->doRun() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:78
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:105
 Symfony\Component\Console\Application->run() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/app/console:33
Run Code Online (Sandbox Code Playgroud)

config.yml

# Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%
    form:
        resources: [HomeBundle:Form:fields.html.twig]
# Assetic Configuration
assetic:
    write_to: "%kernel.root_dir%/../web"
    debug:          %kernel.debug%
    use_controller: false
    bundles:        ['YanicSecurityBundle','HomeBundle','UsersBundle','CmsBundle','AssetsBundle','FormBundle','TranslationBundle','EventBundle','ShopBundle','NewsletterBundle','IssueBundle','ProjectBundle']
    filters:
        cssrewrite: ~
Run Code Online (Sandbox Code Playgroud)

编辑4:
当搜索aws.png(第一个被破坏的结果)时,缓存文件中有2个结果:

/Applications/MAMP/htdocs/symfony-standard-2.1/app/cache/dev/appDevUrlGenerator.php:
  112          '_assetic_e4d7f8d' …
Run Code Online (Sandbox Code Playgroud)

php symfony assetic capifony symfony-2.1

8
推荐指数
1
解决办法
3245
查看次数

方法Assetic\AssetWriter :: getCombinations()在使用capifony进行symfony2部署时不存在异常

调用时我的部署失败:

cd /var/www/prod/releases/20130513164742 && php app/console assetic:dump --env=prod --no-debug
Run Code Online (Sandbox Code Playgroud)

我的设置工作正常,但今天我无法使用cap deploy我在prod环境中克隆repo并执行php app/console assetic:dump --env=prod --no-debug(在开发模式下)检查的命令来部署它,它工作正常!

任何的想法 ?

 ** [out :: prod] executing "sh -c 'cd /var/www/prod/releases/20130513164742 && php app/console assetic:dump --env=prod --no-debug'"
 ** [out :: prod] PHP Deprecated:  getEntityManager is deprecated since Symfony 2.1. Use getManager instead in /var/www/prod/shared/vendor/doctrine/doctrine-bundle/Doctrine/Bundle/DoctrineBundle/Registry.php on line 71
 ** [out :: prod] Dumping all prod assets.
 ** [out :: prod] Debug mode is off.
 ** [out :: prod] 
 ** [out :: prod] …
Run Code Online (Sandbox Code Playgroud)

deployment symfony assetic capifony

8
推荐指数
2
解决办法
2857
查看次数

Capistrano部署了如何使用use_sudo和admin_runner

我正在尝试配置Capistrano,以便它适用于我们的服务器设置.我们正在部署symfony项目,所以我也使用capifony.我仍然遇到一些权限问题.

在我们的服务器上,每个项目都以项目用户身份运行,因此每个项目都有自己的用户.所以我配置了use_sudo并将其设置为true,我将admin_runner配置为项目的用户.但它仍然没有用,所以我修改了capifony以开始使用try_sudo而不是常规运行.这使它的工作更好一些.但我对在这种情况下使用什么感到困惑.你有try_sudo,sudo和run.但哪个用例需要哪个?

  • 当你使用run我认为它永远是你的本地用户
  • try_sudo我认为将检查use_sudo标志是否为真如果是这样它将使用sudo命令,否则它将使用本地用户.如果您配置了admin_runner,它将sudo给配置为admin_runner的用户
  • sudo总会尝试sudo

现在我的问题是deploy:symlink方法这也只是一个常规的运行命令,所以它作为本地用户执行,当我尝试查看网站时,它会给出权限问题.

所以有人能告诉我,如果我对3个命令的描述是正确的吗?还有谁知道如何使用admin_runner和use_sudo,以便正确完成符号链接(以及capistrano完成的所有其他命令)?

亲切的问候,

大安

deployment capistrano capifony

6
推荐指数
1
解决办法
4506
查看次数

Capifony无法加热缓存

昨天我在服务器上进行了第40或第50次Symfony2系统的部署.到目前为止一切都很好.今天我收到了一个令人讨厌的错误.这是发生的事情:

 * executing `symfony:cache:warmup'
 * executing "cd /NFS2/oa_sf2/releases/20111214182506 && php app/console cache:warmup --env=prod"
    servers: ["151.1.111.19"]
    [151.1.111.19] executing command
 ** [out :: 151.1.111.19] Warming up the cache
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] [RuntimeException]
 ** [out :: 151.1.111.19] Error creating output file.
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] cache:warmup
 ** [out :: 151.1.111.19] 
 ** [out :: 151.1.111.19] 
    command finished
*** [deploy:update_code] …
Run Code Online (Sandbox Code Playgroud)

deployment capistrano symfony capifony

5
推荐指数
1
解决办法
1457
查看次数

在进行滚动部署时,如何确保 Cloudfront 具有正确的资产版本?

我们目前正在使用 Capifony 和ec2-capify插件将我们的代码滚动部署到 ELB 后面的一组实例。我们还使用 CloudFront 来管理静态资产,我们使用查询字符串(例如?v1 或?v2)对其进行版本控制。

我们偶然发现了一个有关更新资产版本的罕见问题。如果当前版本是 v1,并且我们每次对一台服务器进行 v2 的滚动部署,那么 v2 盒子上的请求可能会发生以下情况:

  1. CloudFront 被请求使用 v2,但未命中。
  2. CloudFront 前往 ELB 并请求资产。
  3. ELB 选择一台服务器,并且会发生以下两种情况之一:Cloudfront 命中新部署的服务器之一(服务 v2),或者命中旧服务器(v1)。
  4. 无论哪种方式,Cloudfront 都会将内容存储为 v2。如果它到达 v1 服务器,内容将无法正确提供。

我们当前的解决方案是我们必须使用新的资产版本进行另一次部署。

有没有办法强制 Cloudfront 通过 ELB 仅访问我们更新的 (v2) 服务器之一,并忽略 v1 的服务器?

或者我是否缺少可以解决问题的替代解决方案?

amazon-ec2 amazon-cloudfront capifony

5
推荐指数
1
解决办法
787
查看次数

Capifony数据库函数失败并出现`require':无法加载此类文件 - FileUtils(LoadError)

cap database:move:to_remote例如,当我调用任何Capifony数据库函数时,我收到以下ruby错误:

jeremykendall@isr-thinkpad-420s:~/dev/sites/app$ cap develop database:move:to_remote
    triggering load callbacks
* executing `develop'
    triggering start callbacks for `database:move:to_remote'
* executing `multistage:ensure'
* executing `database:move:to_remote'
* executing `database:dump:local'
/home/jeremykendall/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- FileUtils (LoadError)
        from /home/jeremykendall/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capifony-2.1.5/lib/symfony2.rb:101:in `block (3 levels) in load'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `instance_eval'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `invoke_task_directly'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:89:in `execute_task'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capifony-2.1.5/lib/symfony2.rb:159:in `block (3 levels) in load'
        from /home/jeremykendall/.rvm/gems/ruby-1.9.3-p125@interperf/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `instance_eval'
        from …
Run Code Online (Sandbox Code Playgroud)

ruby rvm symfony capifony

4
推荐指数
1
解决办法
4113
查看次数

Symfony2 app.php有效,但不适用于app_dev.php

我已将我的Symfony2项目部署到我的开发服务器,并希望运行开发环境.

如果我使用/app.php,一切运行正常,但如果我尝试app_dev.php,我会收到404错误:

在此服务器上找不到请求的URL /app_dev.php.

下面是我的.htaccess文件的副本:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.php - [L]
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ app.php [QSA,L]
    RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

它在我的本地机器上工作正常,而不是在我的开发服务器上,任何想法为什么?

我的/ cache和/ logs目录都具有777权限,并由www-data拥有:

drwxrwxrwx+ 4 www-data www-data 4096 Mar 15 11:46 cache
drwxrwxrwx+ 2 www-data www-data 4096 Mar 15 11:05 logs
Run Code Online (Sandbox Code Playgroud)

这些目录中的dev和prod完全相同.

deployment permissions caching symfony capifony

4
推荐指数
1
解决办法
8758
查看次数

找不到Symfony2 Capifony app_dev.php

我已经将我的Symfony2网站部署到外部开发服务器,但它没有从我的github存储库中提取app_dev.php文件.app.php已被拉,我可以从那里访问该网站,但如果我去/app_dev.php我得到404找不到,因为该文件在服务器上不存在.该文件肯定在我的github存储库中,但不在我的.gitignore文件中.

capistrano http-status-code-404 symfony capifony

4
推荐指数
1
解决办法
1465
查看次数