• Время чтения ~1 мин
  • 20.10.2023

В последнее время я экспериментирую над тем, как улучшить опыт CPanel для разработчиков Laravel, и, к счастью, мне это удалось Удачно с моими притязаниями. Эта статья — один из моих многочисленных экспериментов с cPanel.

Я уже писал статью о том, как настроить автоматическое развертывание, но в этот раз мы узнаем, как это сделать с помощью GitHub Actions.

Как подключить CPanel к GitHub Во-первых, нам нужно убедиться, что в нашей cPanel включен SSH и подключен к нашей учетной записи GitHub

. Это позволит нам клонировать наши частные репозитории.

Читать Подробнее: Как подключить Cpanel к GitHub, Gitlab и Bitbucket и развернуть частные репозитории

Первоначальное развертывание Laravel на CPanel Далее нам нужно настроить наше приложение Laravel

на Cpanel. Мы также должны настроить базу данных приложения, smtp и другие учетные данные для нашей производственной среды и гарантировать, что наш CPanel обслуживает публику Laravel каталог.

Читать Подробнее: Как развернуть проект Laravel на виртуальном хостинге Linux за 5 минут

Настройка сценария развертывания Bash

  • Создайте каталог .github/workflows в базовом каталоге приложения, если этот каталог еще не существует.
  • Создайте сценарий bash deploy.sh в каталоге .github/workflow.
  • Скопируйте в deploy.sh следующее содержимое BASH:

Замените / path/to/project на путь, по которому ваше приложение Laravel на CPanel.

#!/bin/sh
# Change to the project directory. 
cd ~/path/to/project
# Pull the latest changes from the git repository
git pull origin main
# Install/update composer dependencies
composer install --no-interaction
# Run database migrations
php artisan migrate --force
# Clear caches
php artisan cache:clear
# Clear and cache routes
php artisan route:cache
# Clear and cache config
php artisan config:cache
# Clear and cache views
php artisan view:cache

Приведенный выше сценарий содержит все необходимые команды, которые запускаются каждый раз при развертывании нового кода. Мы всегда можем настроить Этот скрипт основан на потребностях нашего проекта.

Настройка рабочего процесса GitHub Action

  • Создайте каталог . github/workflows в репозитории приложений на GitHub, если этот каталог еще не существует.
  • Создайте файл с именем deploy.yml в каталоге .github/workflows.
  • Скопируйте следующее содержимое YAML в файл deploy.yml:

Замените cpanel_username на имя пользователя CPanel и project_dir на каталог развернутого приложения на CPanel.

name: Deploy
on:
  push:
  pull_request:
jobs:
  tests:
    runs-on: ubuntu-latest
    name: Build & Deploy Assets
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Setup SSH
        run: |
          mkdir -p ~/.ssh/
          echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
          echo "${{ secrets.SSH_PUBLIC_KEY }}" > ~/.ssh/id_rsa.pub
          chmod 600 ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa.pub
          ssh-keyscan -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
      - name: Deploy
        run: |
          ssh syncflux@${{ secrets.SERVER_IP }} 'bash -s' < ${{ github.workspace }}/.github/workflows/deploy.sh

Раздел Настройка SSH нашего рабочего процесса подключает наш экземпляр GitHub Action к нашей cPanel.

Раздел Deploy нашего рабочего процесса выполняет наш сценарий bash развертывания на сервере CPanel через SSH.

Создание секретов GitHub Action

  • Приватный и публичный ключи можно найти в каталоге ~/.ssh сервера CPanel.
  • В GitHub.com перейдите на страницу параметров репозитория приложений.
  • В разделе «Безопасность» на боковой панели выберите «Секреты и переменные», а затем нажмите «Действия».
  • Щелкните Создать секрет репозитория и создайте SSH_PRIVATE_KEY, SSH_PUBLIC_KEY и SERVER_IP секреты соответственно.

GitHub Secrets

С этой настройкой наш проект Laravel будет развернут на CPanel всякий раз, когда наши действия на GitHub будут успешно выполнены.

GitHub Action

Бонус Если

у вас также есть ресурсы фронтенда, которые необходимо скомпилировать и развернуть в cPanel, вы также можете сделать это с помощью GitHub Actions.

Читать Подробнее: Объединение ресурсов для приложений Laravel на CPanel с помощью GitHub Action

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297