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.
Dzięki tej konfiguracji nasz projekt Laravel zostanie wdrożony na CPanel za każdym razem, gdy nasze akcje GitHub zostaną uruchomione pomyślnie.
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