如何在没有sudo的共享主机上使用Capistrano部署WordPress

时间:2012-09-14 08:05:06

标签: wordpress capistrano sudo

为了追求更专业的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成功连接到临时和生产创建版本< / em>和共享目录等。

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

它类似于这个问题Capistrano is hanging when prompting for SUDO password to an Ubuntu box,但解决方案并没有解决我的所有问题。

我设置default_run_options[:pty] = true我需要接缝,但仍然会收到sudo提示。

我正在使用无密码的ssh,因此Capistrano能够在不提示输入密码的情况下连接并执行所需的一切,而且我还使用SSH配置文件来进行handel代理转发,因此服务器也可以连接到我的git存储库。我已经证实这是有效的。

我发现其他人有类似的问题 - Capistrano using sudo even with "set :use_sudo, false" - 等等,但没有一个解决方案有效。

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

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

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

干杯

3 个答案:

答案 0 :(得分:2)

如果没有sudo,则无法运行设置。这是唯一需要sudo的部分,因为它会创建一个目录public_html/staging.exposecreative.org,在你的情况下...

不应该要求该步骤,您可以自己创建该目录(假设您有权限)..

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

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

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

答案 1 :(得分:1)

我在how to deploy WordPress with Capistrano on a shared host(Bluehost)上写了一篇文章。我使用Roots / Bedrock堆栈,它只花了我大约20分钟才能起床和运行。

答案 2 :(得分:0)

我使用Shipit JS而不是Capistrano创建了一个WordPress开发堆栈,因为我对Ruby不满意。也许这可以帮助。如果需要,请随意使用它和/或发布一些问题。问候。

WP-Jungle / Bonzai