Samouczek: tworzenie aplikacji PHP (Laravel) i Azure Database for MySQL — elastyczny serwer w usłudze aplikacja systemu Azure Service
usługa aplikacja systemu Azure Service oferuje wysoce skalowalną, samonastosową usługę hostingu internetowego przy użyciu systemu operacyjnego Linux. W tym samouczku pokazano, jak utworzyć bezpieczną aplikację PHP w usłudze aplikacja systemu Azure, która jest połączona z bazą danych MySQL (przy użyciu elastycznego serwera usługi Azure Database for MySQL). Po zakończeniu będziesz mieć aplikację Laravel działającą w usłudze aplikacja systemu Azure Service w systemie Linux.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie domyślnej aplikacji PHP i MySQL na platformie Azure
- Konfigurowanie wpisów tajnych połączenia z usługą MySQL przy użyciu ustawień aplikacji
- Wdrażanie kodu aplikacji przy użyciu funkcji GitHub Actions
- Aktualizowanie i ponowne wdrażanie aplikacji
- Bezpieczne uruchamianie migracji bazy danych
- Strumieniowe przesyłanie dzienników diagnostycznych z platformy Azure
- Zarządzanie aplikacją w witrynie Azure Portal
Wymagania wstępne
- Subskrypcja platformy Azure Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure. Obecnie za pomocą bezpłatnego konta platformy Azure możesz wypróbować usługę Azure Database for MySQL — serwer elastyczny bezpłatnie przez 12 miesięcy. Aby uzyskać więcej informacji, zobacz Używanie bezpłatnego konta platformy Azure do bezpłatnego wypróbowania usługi Azure Database for MySQL — serwer elastyczny bezpłatnie.
Aplikacja przykładowa
Aby wykonać czynności opisane w tym samouczku, sklonuj lub pobierz przykładową aplikację z repozytorium:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Jeśli chcesz uruchomić aplikację lokalnie, wykonaj następujące czynności:
W pliku env skonfiguruj ustawienia bazy danych (takie jak
DB_DATABASE
,DB_USERNAME
iDB_PASSWORD
) przy użyciu ustawień w lokalnej bazie danych serwera elastycznego usługi Azure Database for MySQL. Aby uruchomić ten przykład, potrzebujesz lokalnego wystąpienia serwera elastycznego usługi Azure Database for MySQL.W katalogu głównym repozytorium uruchom aplikację Laravel przy użyciu następujących poleceń:
composer install php artisan migrate php artisan key:generate php artisan serve
1 — Tworzenie zasobów serwera elastycznego usługi App Service i usługi Azure Database for MySQL
W tym kroku utworzysz zasoby platformy Azure. Kroki używane w tym samouczku umożliwiają utworzenie domyślnie bezpiecznej konfiguracji serwera elastycznego usługi App Service i usługi Azure Database for MySQL. W procesie tworzenia określisz następujące elementy:
- Nazwa aplikacji internetowej. Jest to nazwa używana jako część nazwy DNS aplikacji internetowej w postaci
https://<app-name>.azurewebsites.net
. - Środowisko uruchomieniowe aplikacji. W tym miejscu wybierasz wersję języka PHP, która ma być używana dla aplikacji.
- Grupa zasobów dla aplikacji. Grupa zasobów umożliwia grupowanie (w kontenerze logicznym) wszystkich zasobów platformy Azure potrzebnych dla aplikacji.
Zaloguj się do witryny Azure Portal i wykonaj następujące kroki, aby utworzyć zasoby usługi aplikacja systemu Azure.
Instrukcje | Zrzut ekranu |
---|---|
W witrynie Azure Portal:
|
![]() |
Na stronie Tworzenie aplikacji internetowej i bazy danych wypełnij formularz w następujący sposób.
|
![]() |
Wdrożenie trwa kilka minut i tworzy następujące zasoby:
|
![]() |
2 — Konfigurowanie łączności z bazą danych
Kreator tworzenia wygenerował ustawienia aplikacji służące do nawiązywania połączenia z bazą danych, ale nie w formacie, który jest jeszcze używany dla kodu. W tym kroku edytujesz i zaktualizujesz ustawienia aplikacji do formatu wymaganego przez aplikację.
Instrukcje | Zrzut ekranu | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Na stronie App Service w menu po lewej stronie wybierz pozycję Konfiguracja. | ![]() |
||||||||||
Na karcie Ustawienia aplikacji na stronie Konfiguracja dla każdego z następujących ustawień wybierz pozycję Edytuj, zaktualizuj pole Nazwa nowymi wartościami i wybierz przycisk OK.
|
![]() |
||||||||||
Utwórz nowe MYSQL_ATTR_SSL_CA ustawienie bazy danych:
|
![]() |
||||||||||
Utwórz następujące dodatkowe ustawienia aplikacji, wykonując te same kroki, a następnie wybierz pozycję Zapisz.
|
![]() |
3 — Wdrażanie przykładowego kodu
W tym kroku skonfigurujesz wdrożenie usługi GitHub przy użyciu funkcji GitHub Actions. Jest to tylko jeden z wielu sposobów wdrażania w usłudze App Service, ale także doskonały sposób ciągłej integracji w procesie wdrażania. Domyślnie każde git push
repozytorium GitHub uruchamia akcję kompilacji i wdrażania. Wprowadzisz pewne zmiany w bazie kodu za pomocą programu Visual Studio Code bezpośrednio w przeglądarce, a następnie zezwolisz na automatyczne wdrażanie funkcji GitHub Actions.
Instrukcje | Zrzut ekranu |
---|---|
W nowym oknie przeglądarki:
|
![]() |
Na stronie GitHub otwórz program Visual Studio Code w przeglądarce, naciskając . . |
![]() |
W programie Visual Studio Code w przeglądarce otwórz plik config/database.php w eksploratorze. W połączeniu mysql sprawdź, czy ustawienia aplikacji utworzone wcześniej dla połączenia MySQL są już używane (DB_HOST , DB_DATABASE , , DB_USERNAME DB_PASSWORD , ). MYSQL_ATTR_SSL_CA |
![]() |
Po powrocie do strony usługi App Service w menu po lewej stronie wybierz pozycję Centrum wdrażania. | ![]() |
Na stronie Centrum wdrażania:
.github/workflows katalogu. |
![]() |
Na stronie Centrum wdrażania:
|
![]() |
Aby wprowadzić zmiany w kodzie, przejdź do programu Visual Studio Code w przeglądarce:
Napiwek Akcja usługi GitHub jest definiowana przez plik w repozytorium GitHub w witrynie .github/workflow. Możesz przyspieszyć jego dostosowywanie, dostosowując plik. |
![]() |
4 — Generowanie schematu bazy danych
Kreator tworzenia umieszcza elastyczne wystąpienie serwera usługi Azure Database for MySQL za prywatnym punktem końcowym, więc jest dostępny tylko z sieci wirtualnej. Ponieważ aplikacja usługi App Service jest już zintegrowana z siecią wirtualną, najprostszym sposobem uruchamiania migracji baz danych z bazą danych jest bezpośrednio z poziomu kontenera usługi App Service.
Instrukcje | Zrzut ekranu |
---|---|
Na stronie App Service:
https://<app-name>.scm.azurewebsites.net/webssh/host strony . |
![]() |
W terminalu SSH:
|
![]() |
5 — Zmienianie katalogu głównego witryny
Zamiast tego cykl życia aplikacji Laravel rozpoczyna się w katalogu /public . Domyślny kontener PHP 8.0 dla usługi App Service używa serwera Nginx, który rozpoczyna się w katalogu głównym aplikacji. Aby zmienić katalog główny witryny, musisz zmienić plik konfiguracji serwera Nginx w kontenerze PHP 8.0 (/etc/nginx/sites-available/default). Dla wygody przykładowe repozytorium zawiera niestandardowy plik konfiguracji o nazwie default. Jak wspomniano wcześniej, nie chcesz zastępować tego pliku przy użyciu powłoki SSH, ponieważ zmiany zostaną utracone po ponownym uruchomieniu aplikacji.
6 — Przechodzenie do aplikacji
7 — Przesyłanie strumieniowe dzienników diagnostycznych
Czyszczenie zasobów
Po zakończeniu możesz usunąć wszystkie zasoby z subskrypcji platformy Azure, usuwając grupę zasobów.
Często zadawane pytania
- Ile kosztuje ta konfiguracja?
- Jak mogę nawiązać połączenie z elastyczną bazą danych serwera usługi Azure Database for MySQL zabezpieczoną za siecią wirtualną?
- W jaki sposób programowanie aplikacji lokalnych działa z funkcją GitHub Actions?
- Dlaczego wdrożenie funkcji GitHub Actions jest tak powolne?
Ile kosztuje ta konfiguracja?
Cennik zasobów tworzenia jest następujący:
- Plan usługi App Service jest tworzony w warstwie Premium V2 i można go skalować w górę lub w dół. Zobacz Cennik usługi App Service.
- Wystąpienie serwera elastycznego usługi Azure Database for MySQL jest tworzone w warstwie B1ms i można je skalować w górę lub w dół. W przypadku bezpłatnego konta platformy Azure warstwa B1ms jest bezpłatna przez 12 miesięcy, do miesięcznych limitów. Zobacz Cennik serwera elastycznego usługi Azure Database for MySQL.
- Sieć wirtualna nie powoduje naliczania opłat, chyba że skonfigurujesz dodatkowe funkcje, takie jak komunikacja równorzędna. Zobacz Cennik usługi Azure Virtual Network.
- Prywatna strefa DNS wiąże się z niewielką opłatą. Zobacz Cennik usługi Azure DNS.
Jak mogę nawiązać połączenie z elastyczną bazą danych serwera usługi Azure Database for MySQL zabezpieczoną za siecią wirtualną?
Aby nawiązać połączenie z elastyczną bazą danych serwera usługi Azure Database for MySQL, możesz użyć kilku metod opartych na narzędziach i środowiskach dostępnych do dyspozycji:
- Dostęp do narzędzia wiersza polecenia:
mysql
Użyj polecenia z poziomu terminalu SSH aplikacji, aby uzyskać dostęp podstawowy.
- Narzędzia klasyczne (na przykład MySQL Workbench):
- Korzystanie z tunelowania SSH za pomocą interfejsu wiersza polecenia platformy Azure:
- Korzystanie z sieci VPN typu lokacja-lokacja lub maszyny wirtualnej platformy Azure:
- Maszyna musi być częścią sieci wirtualnej.
- Rozważ użycie:
- Maszyna wirtualna platformy Azure połączona z jedną z podsieci.
- Maszyna w sieci lokalnej, która ma połączenie sieci VPN typu lokacja-lokacja z siecią wirtualną platformy Azure.
- Integracja usługi Azure Cloud Shell:
- Integrowanie usługi Azure Cloud Shell z siecią wirtualną w celu uzyskania bezpośredniego dostępu.
W jaki sposób programowanie aplikacji lokalnych działa z funkcją GitHub Actions?
Pobierz automatycznie wygenerowany plik przepływu pracy z usługi App Service, aby na przykład git push
uruchomić nową kompilację i uruchomienie wdrożenia. Z lokalnego klonu repozytorium GitHub należy wprowadzić żądane aktualizacje wypychane do usługi GitHub. Na przykład:
git add .
git commit -m "<some-message>"
git push origin main
Dlaczego wdrożenie funkcji GitHub Actions jest tak powolne?
Automatycznie wygenerowany plik przepływu pracy z usługi App Service definiuje polecenie build-then-deploy, dwuzadniowe uruchomienie. Ponieważ każde zadanie jest uruchamiane we własnym czystym środowisku, plik przepływu pracy zapewnia, że deploy
zadanie ma dostęp do plików z build
zadania:
- Na końcu
build
zadania przekaż pliki jako artefakty. - Na początku
deploy
zadania pobierz artefakty.
Większość czasu poświęcanego przez proces dwóch zadań jest poświęcana na przekazywanie i pobieranie artefaktów. Jeśli chcesz, możesz uprościć plik przepływu pracy, łącząc dwa zadania w jeden, co eliminuje konieczność przekazywania i pobierania kroków.
Podsumowanie
W tym samouczku zawarto informacje na temat wykonywania następujących czynności:
- Tworzenie domyślnej elastycznej aplikacji serwera PHP i usługi Azure Database for MySQL na platformie Azure
- Konfigurowanie wpisów tajnych połączenia z serwerem elastycznym usługi Azure Database for MySQL przy użyciu ustawień aplikacji
- Wdrażanie kodu aplikacji przy użyciu funkcji GitHub Actions
- Aktualizowanie i ponowne wdrażanie aplikacji
- Bezpieczne uruchamianie migracji bazy danych
- Strumieniowe przesyłanie dzienników diagnostycznych z platformy Azure
- Zarządzanie aplikacją w witrynie Azure Portal