capistrano3 — Развертывание файлов PHP с Capistrano 3 в public_html вместо папки релизов

Я новичок в Capistrano 3.
Я хочу развернуть свое php-приложение в папке public_html (я использую cPanel)

Я установил свой deploy_to что-то вроде этого:
set :deploy_to, '/home/username/public_html'
И когда я бегу:
cap production deploy
Он успешно загружен на мой сервер, но развернут на releases а также current папка вместо корневого каталога, который public_html

У меня вопрос, как заставить Capistrano загружать в мою корневую папку public_html?

1

Решение

Вы захотите развернуть что-то вроде / home / username / code

Затем вы можете создать символическую ссылку из / home / username / public_html в / home / username / code

Команда будет выглядеть так:

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

Другие решения

Вы можете выполнить обработку, сначала развернув файлы за пределами public_html, а затем вставив символическую ссылку на текущий выпуск в fodler public_html, как показано ниже:

1) В вашем конфиг / deploy.rb или же конфигурации / развернуть / ****. Р.Б. файлы устанавливают deploy_to быть другой папкой вне public_html лайк

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

2) В вашем конфиг / 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
1