Доработка моего блога пошла быстрее и файлики стало неудобно заливать по штучно через ssh поэтому пришло время настроить автодеплой. В своих разработках я использую чаще всего git на Bitbucket.
Сделать автодеплой для связки Bitbucket+Wordpress не состовляет большого труда. Далее в статье я покажу как это достаточно просто можно организавать.
Для начала у вас должен быть создан репозиторий на битбаките. Выполняете пуш всех файлов вашего блога.
$ git clone git@bitbucket.org:<repository> $ echo 'www/wp-config.php' >> .gitignore $ echo '.env' >> .gitignore $ git add * $ git push
Теперь переходим на сервер на котором планируем осуществлять автодеплой. Нам потребуется создать публичный ключ ssh для пользователя от которого будет осуществляться автодеплой ( он же должен быть владельцем файлов сайта на сервере ). Для моего сайта таким пользователем является пользователь www-data, но у него нет shell поэтому генерацию ключей нужно будет осуществить при помощи команды sudo
$ sudo -u www-data ssh-keygen -t rsa
Нажимаем Enter на все вопросы и далее копируем наш публичный ключ для того чтобы вставить его в настройки репозитория на битбаките
$ cat <dir_home_user_www-data>/.ssh/id_rsa.pub
Копируем в буфер обмена то что отобразилось и идем на битбакет с этим
Переходим в раздел Ключи доступа в настройках репозитория нашего сайта
Нажимаем Add key
Называем наш ключ доступа и заполняем нашим публичным ключем, который скопировали ранее
Теперь нам нужно создать хук автодеплоя и собственно сам скрипт, который будет делать автодеплой. Для этого переходим в раздел Веб-хуки в настройках нашего репозитория на битбаките и создаем новый веб-хук
Жамкаем на добавление веб-хука
Заполняем название веб-хука
Обязательно указываем адрес к нашему скрипту автодеплоя
Выбираем триггером PUSH событие ( наш скрипт будет вызываться когда в Битбакет будет запушены изменения ) и не забываем проставить статус активности веб-хука
Вот и все, теперь переходим к созданию скрипта деплоя.
<?php $root_dir = realpath(exec('pwd').'/..'); $result = exec(sprintf('cd %s ; git fetch ; git pull', $root_dir));
После изменений внесенных в код необходимо закомитить и запушить наш скрипт в репозиторий.
Теперь мы можем выкачать репозиторий с сайтом на наш удаленный сервер.
Делаем клон рядом с нашей директорией на которую указывает настройки http сервера.
Чаще всего это /var/www
$ cd /var/www $ sudo -u www-data git clone git@bitbucket.org:wikide/killercoder.git killercoder_git
И переименовываем директории
$ mv killercoder killercoder_old ; mv killercoder_git killercoder
Теперь мы имеем рабочий сайт, который подключен к репозиторию
И при выполнение команды git push в ветку main будет происходить автоматический деплой на боевом сервере.
Конечно тут не решен вопрос миграций изменений, но это тоже можно будет реализовать достаточно просто. Для моих целей пока достаточно такого автодеплоя.
А если остались вопросы, то можете писать комментарии под статьей или писать мне сразу в теолеграм. Так же если вам нужна поддержка или разработка сайтов на WordPress, написание плагинов или любая помощь по вашему сайту на WordPress, то можете писать мне сразу в телеграм, а так же присоединяйтесь к каналу в телеграм чтобы следить за обновлениями на сайте.