【问题标题】:Deploy PHP Files with Capistrano 3 to public_html instead of releases folder使用 Capistrano 3 将 PHP 文件部署到 public_html 而不是发布文件夹
【发布时间】:2015-03-13 04:47:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: php capistrano3


    【解决方案1】:

    你会想要部署到类似 /home/username/code 的地方

    然后你可以创建一个从 /home/username/public_html 到 /home/username/code 的符号链接

    命令看起来像:

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

    【讨论】:

      【解决方案2】:

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

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

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

      2) 在您的 config/deploy.rbconfig/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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-22
        • 2011-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-25
        • 2016-06-02
        相关资源
        最近更新 更多