问题标签 [capifony]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
920 浏览

symfony - 使用 Capifony 和 Syfmony2 安装供应商和资产

我正在尝试使用 capifony 将 Symfony2 项目部署到服务器,但出现此错误:

这是我的输出:

  • 2013-06-25 16:51:49 执行symfony:composer:get' <ul> <li>executing "if [ -e /home/user/releases/20130625145137/composer.phar ]; then echo 'true'; fi" servers: ["xx.xxx.xx.xx"] [xx.xxx.xx.xx] executing command command finished in 488ms --> Updating Composer</li> <li>executing "sh -c 'cd /home/user/releases/20130625145137 && php composer.phar self-update'" servers: ["xx.xxx.xx.xx"] [xx.xxx.xx.xx] executing command command finished in 377ms --> Updating Composer dependencies</li> <li>executing "sh -c 'cd /home/user/releases/20130625145137 && php composer.phar update --no-scripts --no-dev --verbose --prefer-dist --optimize-autoloader --no-progress'" servers: ["xx.xxx.xx.xx"] [xx.xxx.xx.xx] executing command command finished in 390ms</li> <li>2013-06-25 16:51:50 executingsymfony:bootstrap:build' --> 构建引导文件
  • 执行“if [ -e /home/user/releases/20130625145137/bin/build_bootstrap ]; 然后回显'true'; fi”服务器:[“xx.xxx.xx.xx”] [xx.xxx.xx.xx]执行命令命令在 336 毫秒内完成
  • 执行“sh -c 'cd /home/user/releases/20130625145137 && test -f vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php && php vendor/sensio/distribution-bundle/ Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php 应用程序 || echo 'vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php 未找到,已跳过''" 服务器:[" xx.xxx.xx.xx"] [xx.xxx.xx.xx] 执行命令 ** [out :: xx.xxx.xx.xx] vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/ bin/build_bootstrap.php 命令在 392 毫秒内完成
  • 2013-06-25 16:51:51 执行symfony:composer:dump_autoload' --> Dumping an optimized autoloader</li> <li>executing "sh -c 'cd /home/user/releases/20130625145137 && php composer.phar dump-autoload --optimize'" servers: ["xx.xxx.xx.xx"] [xx.xxx.xx.xx] executing command command finished in 417ms</li> <li>2013-06-25 16:51:52 executingsymfony:assets:install'--> 安装 bundle 的资产
  • 执行 "sh -c 'cd /home/user/releases/20130625145137 && php app/console assets:install web --env=prod --no-debug'" 服务器:["xx.xxx.xx.xx"] [ xx.xxx.xx.xx] 执行命令 ** [out :: xx.xxx.xx.xx] ** [out :: xx.xxx.xx.xx] 警告:require(/home/user/releases/20130625145137 /app/../vendor/autoload.php):无法打开流:第 14 行的 /home/user/releases/20130625145137/app/autoload.php 中没有这样的文件或目录 ** [out :: xx.xxx .xx.xx] ** [out :: xx.xxx.xx.xx] 致命错误:require():打开失败需要'/home/user/releases/20130625145137/app/../vendor/autoload.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') 在 /home/user/releases/20130625145137/app/autoload.php 第 14 行命令在 417 毫秒内完成 * [deploy:update_code ] 滚回来
  • 执行 "rm -rf /home/user/releases/20130625145137; true" 服务器:["xx.xxx.xx.xx"] [xx.xxx.xx.xx] 执行命令

0 投票
2 回答
1119 浏览

symfony - Capifony (Capistrano) 在尝试部署 Symfony2 应用程序时要求提供 github 凭据

我正在尝试使用 capifony (capistrano) symfony2 应用程序将我的网站投入生产

一切都很顺利,但有时它会询问私人回购的 Github 凭据。

这是我的错误

[out :: web-dev.domain.com] 无法获取 https://api.github.com/repos/sensio/SensioDistributionBundle/zipball/4a2c803dc8db79952ad5e71783c16178427bbc02,请输入您的 GitHub 凭据以访问私有 repos ** [out :: web -dev.domain.com] 凭据将被交换为存储在 /home/webdev/.composer/config.json 中的 OAuth 令牌,您的密码将不会被存储 ** [out :: web-dev.domain.com]要撤销对该令牌的访问,您可以访问https://github.com/settings/applications [out :: web-dev.domain.com] 用户名:

当我输入我的用户名并按回车键时,什么都没有发生,只是进入新行。这个问题有什么解决办法吗?

这解决了我的问题:

0 投票
2 回答
91 浏览

ruby - 需要应用程序将我的软件部署到客户端(symfony2)

我正在寻找一些能够将我的 symfony2 应用程序部署到客户的软件,我尝试了 capifony,但部署到具有不同设置的不同主机似乎很麻烦。

我希望我提供了足够的信息,我花了很多时间寻找一个体面的解决方案,但我无法找到一个。

0 投票
1 回答
1186 浏览

symfony - cap deploy:cleanup 因 use_sudo=true 而失败

我的 capifony 部署效果很好,但是 capifony cleanup 命令失败。

我在 ssh 上使用私钥,并使用 sudo 来获得对部署目录的写权限。

使用扩展日志记录的结​​果cap deploy:cleanup是这样的:

在这种情况下,修改权限以使部署用户具有对该目录的完全写入权限不是一个选项。

有没有人看到/解决过这个问题?(这是在 RHEL6 服务器上)

0 投票
2 回答
944 浏览

symfony - Symfony 2,Capistrano 报告成功部署,但发布文件夹为空

我似乎在将 Symfony 2 应用程序的 Capifony 部署到按预期工作的远程服务器上时遇到问题。运行后

capifony 的输出表明部署成功,但是当我查看远程服务器上的应用程序文件夹时,没有“当前”符号链接,并且发布文件夹为空。

以下是一些有用的初步信息:

  • 远程和本地部署服务器正在运行 CentOS 6.4
  • 本地部署服务器 Ruby 版本为 1.8.7
  • Capistrano 版本是 2.15.5
  • 应用程序 Symfony 2.2 版
  • 我正在使用部署到登台环境的多级插件

这是我的 deploy.rb 文件的内容:

应用程序/配置/部署.rb

这是我的 staging.rb 文件的内容:

应用程序/config/staging.rb

这是我从部署过程中得到的输出:

上限部署的输出

有没有人对可能发生的事情以及为什么我会得到这个奇怪的结果有任何想法(成功,但没有真正的成功)。我的配置是否有问题可能导致这种情况?任何帮助将非常感激。

0 投票
1 回答
560 浏览

symfony - Symfony2 + Capifony 回滚错误

我将 Capifony 配置为部署到我的远程服务器,当我部署项目时,在 capifony 执行回滚操作后出现一些错误。但是在 capifony 执行symfony:composer:dump_autoload操作之后,它会转储 chache 并使用新的发布路径自动加载文件。运行 symfony 应用程序后,出现错误:

PHP Warning: include(): Failed opening '/var/www/vhosts/user/app/releases/20130805162052/src/Rocket/ApplicationBundle/RocketApplicationBundle.php' for inclusion (include_path='/........') in /var/www/vhosts/user/app/shared/vendor/composer/ClassLoader.php on line 185

symfony:composer:dump_autoload所以问题是:如果部署出现任何错误,我该如何执行

像这样的东西:

after "deploy:rolling_back_action", "symfony:composer:dump_autoload"

谁能帮我?

编辑

我尝试在当前部署会话中重新声明命名空间:deploy:update_code并更改on_rollback操作,如果我遇到任何错误,这个钩子是有效的。但是symfony:composer:dump_autoload在 on_rollback 事件releas_path中执行的操作不是当前的,我不能重新声明...这是我的代码,当我尝试重新声明命名空间时:

到目前为止,我已经找到了解决此问题的临时解决方案 - 每次部署后执行cap symfony:composer:dump_autoload更新路径并转储新的自动加载信息,但我不喜欢......

我可以通过 re declare namespace 或其他解决方案来了解真相吗?

0 投票
1 回答
326 浏览

symfony - capifony 认为我正在使用 Symfony 1

我正在尝试部署一个新站点,但我不明白为什么会出现一些奇怪的错误。

我的第一个错误是:

我不明白为什么 capifony 向我询问 database.yml 这是 Symfony 1 的文件(我认为)

所以我输入:set:use_orm, false(正如 symfony1 项目的文档所说)它可以工作,但现在我有一个新错误:

自从我没有使用 capifony 以来已经很长时间了,但我从来没有遇到过这种错误。我重复使用相同的文件,但我肯定会错过一些东西。提前致谢 :)

我的部署文件是这样的:

0 投票
1 回答
49 浏览

capistrano - 部署后执行某些操作

我正在使用 capifony(它是 symfony 的 capistrano)来部署。

部署后我必须做一些工作,例如更改某些目录的访问权限。

现在我通过手动操作来做到这一点。

我可以将它包含在我的 capifony deploy.rb 中吗?

0 投票
0 回答
894 浏览

capistrano - 将 capistrano 与负载平衡器一起使用

我们在 Rackspace 上有一个站点,有 2 台服务器和一个负载均衡器,使用 Capistrano(实际上是 Capifony)部署。我想:

  1. 在负载均衡器上禁用服务器 1
  2. 将服务器 1 升级到新代码
  3. 暂停,让我通过登录到它的 IP 地址来测试服务器 1
  4. 重新启用服务器 1;在负载均衡器上禁用服务器 2(用户现在将获得新版本的站点)
  5. 将服务器 2 升级到新代码
  6. 暂停,让我测试服务器 2
  7. 在负载平衡器上重新启用服务器 2。

该数据库托管在其他地方,不受此升级的影响。

Capistrano 似乎非常擅长一次部署到多台服务器(尽管我希望看到这个问题的答案),但不清楚如何执行上述操作。在非常常见的情况下,这似乎是一种安全的升级方式。

我想如果我添加规则来做负载均衡器,我也许可以使用这个答案来使部署连续运行,而不是一次全部运行。

一个不错的选择是 capistrano 可以完成所有部署,但不更改两台服务器上的当前符号链接。然后我可以手动进行负载平衡并自己更新符号链接。

这个问题类似,但给出的答案不适用于 PHP,因为不需要重新启动服务器 - 新代码将在您上传后立即开始执行。

0 投票
1 回答
83 浏览

git - symfony 2 的 capifony 部署问题

我必须在服务器上使用两个阶段来实例化我的应用程序。

instance1 - 主 - 暂存

instance2 - 主 - 暂存

要部署到实例 1,我将 master1 分支和 master2 用于实例 2。

在我更改服务器上的 root 密码之前,一切都运行良好。我可以从 master1 分支部署,但不能从 master2 部署。奇怪的是,从我的本地电脑到服务器以及从服务器到 git,我使用 ssh 密钥进行身份验证。我真的不明白为什么更改密码会带来这个问题。

这是我得到的错误