1

为了追求更专业的 WordPress 开发和部署环境,我正在尝试使用 Capistrano 从我的本地开发环境部署到登台和生产服务器,但我无法让它正常工作。

我在 Site5 共享主机上,并且正在部署到具有两个不同域的一台服务器 - staging.example.com 和 example.com。

我以https://github.com/markjaquith/WP-Stack为基础并添加了

set :user, "myserveruser"到我的 config.rb 文件,因为没有那个连接就无法工作。

运行cap deploy:check告诉我“您似乎已安装所有必要的依赖项”,我可以运行cap deploy:setup它成功连接到登台和生产创建版本共享目录等。

当我运行时问题就来了cap deploy。在提示我输入 sudo 密码之前,一切都可以正常工作。这不是一个正常的登录提示,但不允许我输入密码。因为我在共享主机上,所以无论如何我都没有 sudo 访问权限。

它类似于Capistrano 在提示输入 SUDO 密码到 Ubuntu 机器时挂起的问题,但解决方案并没有解决我的所有问题。

我已经设置default_run_options[:pty] = true了我需要的接缝,但仍然得到 sudo 提示。

我正在使用无密码 ssh,因此 Capistrano 能够连接并执行所需的所有操作,而无需提示输入密码,并且我还使用 SSH 配置文件来处理代理转发,因此服务器也可以连接到我的 git 存储库。我已经确认这是有效的。

我发现其他人也有类似的问题 - Capistrano 使用 sudo 甚至使用“set :use_sudo, false” - 等等,但没有一个解决方案有效。

我正在使用default_run_options[:pty] = true并尝试使用set :use_sudo, falsedefault_run_options[:shell] = false但我仍然遇到同样的问题。

您可以在此处查看我的终端输出 - http://pastebin.com/5xZmCnyA

我真的要疯了!任何帮助将不胜感激!!!

干杯

4

3 回答 3

2

没有sudo. 这是唯一需要 sudo 的部分,因为它会创建一个目录public_html/staging.exposecreative.org,在你的情况下......

该步骤不应该是必需的,您可以自己创建该目录(假设您有权限)..

但是,您将面临的问题是共享主机将希望您index.php直接进入public_html,为此,您需要对任何目录public_html的写入权限,而共享主机不允许(几乎可以肯定)

该行default_run_options[:pty] = true与 Capistrano 是否假装是一个交互式外壳有关。许多命令(包括 sudo)使用它来确定它们是否应该打扰要求用户输入,或者它们是否是自动化过程的一部分(在这种情况下,没有办法要求输入)

我的建议(作为 Capistrano 维护者) - 不要在共享主机上尝试这个,它几乎肯定不会工作。(对不起,他们的限制,不是我们的)

于 2012-09-17T17:36:17.940 回答
1

我写了一篇关于如何在共享主机(Bluehost) 上使用 Capistrano 部署 WordPress 的详细文章。我使用 Roots/Bedrock 堆栈,我只花了大约 20 分钟就可以启动和运行。

于 2014-07-30T21:02:19.793 回答
0

我使用 Shipit JS 而不是 Capistrano 制作了一个 WordPress 开发堆栈,因为我对 Ruby 不满意。也许这会有所帮助。随意使用它和/或在需要时发布一些问题。问候。

WP-丛林/盆栽

于 2018-01-24T22:47:22.947 回答