使用Capistrano 3将PHP文件部署到public_html而不是release文件夹

时间:2015-03-13 04:47:40

标签: php capistrano3

我是Capistrano 3的新人 我想将我的php应用程序部署到public_html文件夹(我正在使用cPanel)

我设置deploy_to这样的东西:
set :deploy_to, '/home/username/public_html'
当我跑步时:
cap production deploy 它已成功上传到我的服务器,但它已部署到releasescurrent文件夹而不是根目录public_html

我的问题是,如何将Capistrano上传到我的public_html根文件夹?

2 个答案:

答案 0 :(得分:1)

您需要部署到/ home / username / code

之类的内容

然后你可以创建一个从/ home / username / public_html到/ home / username / code

的符号链接

命令看起来像:

ln -s /home/username/code /home/username/public_html

答案 1 :(得分:1)

您可以先在public_html之外部署文件进行处理,然后将当前版本符号链接到public_html fodler,如下所示:

1)在 config / deploy.rb config / deploy / ****。rb 文件中,将 deploy_to 设置为 public_html 之外的另一个文件夹,如

set :deploy_to , '/home/username/deploy'

2)在 config / deploy.rb config / deploy / ****。rb 文件中,添加一个带有public_html路径的变量

set :public_html_path, '/home/username/public_html'

3)在创建当前版本符号链接后,将自定义任务 release_public_html 添加到符号链接public_html文件夹

after "deploy:symlink:release", "deploy:symlink:release_public_html"

namespace :deploy do
  namespace :symlink do
    desc "Symlink release to current"
    task :release_public_html do
      on release_roles :all do
    public_html_path = "#{fetch(:public_html_path)}"
        execute :rm, "-rf", public_html_path
        execute :ln, "-s", current_path, public_html_path
      end
    end
  end
end