• Czas czytania ~3 min
  • 20.10.2023

Ostatnio eksperymentowałem nad tym, jak ulepszyć doświadczenie CPanel dla programistów Laravela i na szczęście mi się to udało Udane z moimi attemps. Ten artykuł jest jednym z moich wielu eksperymentów z cPanelem.

Napisałem już artykuł o tym, jak skonfiguruj automatyczne wdrażanie, ale tym razem dowiemy się, jak to zrobić za pomocą GitHub Actions.

Jak połączyć CPanel z GitHub Po pierwsze, musimy upewnić się, że nasz cPanel ma włączony SSH i jest połączony z naszym kontem GitHub

. Umożliwi nam to Sklonuj nasze prywatne repozytoria.

Czytać więcej: Jak połączyć Cpanel z GitHub, Gitlab i Bitbucket oraz wdrożyć prywatne repozytoria

Początkowe wdrożenie Laravela na CPanel Następnie musimy skonfigurować naszą aplikację Laravel

na Cpanel. Musimy również skonfigurować bazę danych aplikacji, smtp i inne referencje dla naszego środowiska produkcyjnego i zapewnić, że nasz CPanel służy społeczeństwu Laravela katalog.

Czytać więcej: Jak wdrożyć projekt Laravel na hostingu współdzielonym w systemie Linux w 5 minut

Konfiguracja skryptu Bash

  • Utwórz katalog .github/workflows w katalogu podstawowym aplikacji, jeśli ten katalog jeszcze nie istnieje.
  • Utwórz skrypt powłoki deploy.sh bash w katalogu .github/workflow.
  • Skopiuj następującą zawartość powłoki BASH do deploy.sh:

Zastąp / path/to/project ścieżką aplikacji Laravel w 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

Ten powyższy skrypt zawiera wszystkie niezbędne polecenia, które są uruchamiane za każdym razem, gdy wdrażany jest nowy kod. Zawsze możemy dostosować ten skrypt jest oparty na naszych potrzebach projektowych.

Konfigurowanie przepływu pracy akcji usługi GitHub

  • Utwórz katalog . github/workflows w repozytorium aplikacji w usłudze GitHub, jeśli ten katalog jeszcze nie istnieje.
  • Utwórz plik o nazwie deploy.yml w katalogu .github/workflows.
  • Skopiuj następującą zawartość YAML do pliku deploy.yml:

Zastąp cpanel_username ciąg nazwą użytkownika CPanel i project_dir z wdrożonym katalogiem aplikacji na 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

Sekcja Konfiguracja SSH naszego przepływu pracy łączy nasze wystąpienie GitHub Action z naszym cPanel.

Sekcja Deploy naszego przepływu pracy wykonuje nasz skrypt powłoki bash wdrożenia na serwerze CPanel za pośrednictwem protokołu SSH.

Tworzenie wpisów tajnych akcji usługi GitHub

  • Klucze prywatne i publiczne można znaleźć w katalogu ~/.ssh serwera CPanel.
  • W GitHub.com przejdź do strony ustawień repozytorium aplikacji.
  • W sekcji "Zabezpieczenia" na pasku bocznym wybierz Wpisy tajne i zmienne, a następnie kliknij Czynności.
  • Kliknij pozycję Nowy klucz tajny repozytorium i utwórz odpowiednio wpisy tajne SSH_PRIVATE_KEY, SSH_PUBLIC_KEY i SERVER_IP.

GitHub Secrets

Dzięki tej konfiguracji nasz projekt Laravel zostanie wdrożony na CPanel za każdym razem, gdy nasze akcje GitHub zostaną uruchomione pomyślnie.

GitHub Action

Bonus

Jeśli masz również zasoby frontendowe, które należy skompilować i wdrożyć na cPanel, możesz to zrobić również za pomocą GitHub Actions.

Czytać więcej: Sprzedaż wiązana zasobów dla aplikacji Laravel w CPanel przy użyciu akcji GitHub

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297