Kurz: Sestavení php (Laravel) a aplikace flexibilního serveru Azure Database for MySQL ve službě Aplikace Azure Service
Aplikace Azure Služba poskytuje vysoce škálovatelnou službu hostování webů s automatickými opravami pomocí operačního systému Linux. V tomto kurzu se dozvíte, jak vytvořit zabezpečenou aplikaci PHP ve službě Aplikace Azure, která je připojená k databázi MySQL (pomocí flexibilního serveru Azure Database for MySQL). Až budete hotovi, budete mít aplikaci Laravel spuštěnou ve službě Aplikace Azure Service v Linuxu.
V tomto kurzu se naučíte:
- Vytvoření aplikace PHP a MySQL ve výchozím nastavení zabezpečení v Azure
- Konfigurace tajných kódů připojení k MySQL pomocí nastavení aplikace
- Nasazení kódu aplikace pomocí GitHub Actions
- Aktualizace a opětovné nasazení aplikace
- Bezpečné spouštění migrací databází
- Streamovat diagnostické protokoly z Azure
- Spravovat aplikaci na webu Azure Portal
Požadavky
- Předplatné Azure Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatný účet Azure. V současné době můžete s bezplatným účtem Azure vyzkoušet flexibilní server Azure Database for MySQL zdarma po dobu 12 měsíců. Další informace najdete v tématu Použití bezplatného účtu Azure k vyzkoušení flexibilního serveru Azure Database for MySQL zdarma.
Ukázková aplikace
Pokud chcete postupovat podle tohoto kurzu, naklonujte nebo stáhněte ukázkovou aplikaci z úložiště:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Pokud chcete aplikaci spustit místně, postupujte takto:
V souboru .env nakonfigurujte nastavení databáze (například
DB_DATABASE
DB_USERNAME
DB_PASSWORD
a) pomocí nastavení v místní databázi flexibilního serveru Azure Database for MySQL. Ke spuštění této ukázky potřebujete místní instanci flexibilního serveru Azure Database for MySQL.V kořenovém adresáři úložiště spusťte Laravel následujícími příkazy:
composer install php artisan migrate php artisan key:generate php artisan serve
1. Vytvoření prostředků flexibilního serveru App Service a Azure Database for MySQL
V tomto kroku vytvoříte prostředky Azure. Kroky použité v tomto kurzu vytvoří konfiguraci flexibilního serveru App Service a Azure Database for MySQL, která je ve výchozím nastavení zabezpečená. Pro proces vytváření zadáte:
- Název webové aplikace. Jedná se o název, který se používá jako součást názvu DNS pro webovou aplikaci ve formě
https://<app-name>.azurewebsites.net
. - Modul runtime aplikace. Tady vyberete verzi PHP, kterou chcete použít pro vaši aplikaci.
- Skupina prostředků pro aplikaci. Skupina prostředků umožňuje seskupovat (v logickém kontejneru) všechny prostředky Azure potřebné pro aplikaci.
Přihlaste se k webu Azure Portal a podle těchto kroků vytvořte prostředky služby Aplikace Azure Service.
Pokyny | Snímek obrazovky |
---|---|
Na webu Azure Portal:
|
|
Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.
|
|
Dokončení nasazení trvá několik minut a vytvoří následující prostředky:
|
2. Nastavení připojení k databázi
Průvodce vytvořením vygeneroval nastavení aplikace, které můžete použít pro připojení k databázi, ale ne ve formátu, který se dá použít pro váš kód. V tomto kroku upravíte a aktualizujete nastavení aplikace na formát, který vaše aplikace potřebuje.
Pokyny | Snímek obrazovky | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Na stránce služby App Service v nabídce vlevo vyberte Konfigurace. | |||||||||||
Na kartě Nastavení aplikace na stránce Konfigurace vyberte pro každé z následujících nastavení možnost Upravit, aktualizujte pole Název novými hodnotami a vyberte OK.
|
|||||||||||
Vytvořte nové MYSQL_ATTR_SSL_CA nastavení databáze:
|
|||||||||||
Podle stejných kroků vytvořte následující další nastavení aplikace a pak vyberte Uložit.
|
3. Nasazení ukázkového kódu
V tomto kroku nakonfigurujete nasazení GitHubu pomocí GitHub Actions. Je to jen jeden z mnoha způsobů nasazení do služby App Service, ale také skvělý způsob, jak mít kontinuální integraci v procesu nasazení. Ve výchozím nastavení spustí každá git push
z vašich úložišť GitHub akci sestavení a nasazení. Pomocí editoru Visual Studio Code provedete určité změny přímo v prohlížeči a pak necháte GitHub Actions nasadit automaticky za vás.
Pokyny | Snímek obrazovky |
---|---|
V novém okně prohlížeče:
|
|
Na stránce GitHubu otevřete Visual Studio Code v prohlížeči stisknutím klávesy . . |
|
V editoru Visual Studio Code v prohlížeči otevřete v průzkumníku konfiguraci/database.php . mysql V připojení se dozvíte, že nastavení aplikace, která jste vytvořili dříve pro připojení MySQL, se už používají (DB_HOST , DB_DATABASE , DB_USERNAME , DB_PASSWORD , MYSQL_ATTR_SSL_CA ). |
|
Zpět na stránce služby App Service v nabídce vlevo vyberte Deployment Center. | |
Na stránce Deployment Center:
.github/workflows adresáři. |
|
Na stránce Deployment Center:
|
|
Pokud chcete v kódu provést jakékoli změny, přejděte v prohlížeči do editoru Visual Studio Code:
Tip Akce GitHubu je definovaná souborem v úložišti GitHub v .githubu/pracovním postupu. Můžete ho zrychlit přizpůsobením souboru. |
4. Generování schématu databáze
Průvodce vytvořením umístí instanci flexibilního serveru Azure Database for MySQL za privátní koncový bod, takže je přístupná jenom z virtuální sítě. Vzhledem k tomu, že aplikace App Service je už integrovaná s virtuální sítí, nejjednodušší způsob, jak spouštět migrace databází s vaší databází, je přímo z kontejneru služby App Service.
Pokyny | Snímek obrazovky |
---|---|
Na stránce služby App Service:
https://<app-name>.scm.azurewebsites.net/webssh/host místo toho. |
|
V terminálu SSH:
|
5. Změna kořenového adresáře webu
Životní cyklus aplikace Laravel začíná v adresáři /public . Výchozí kontejner PHP 8.0 pro App Service používá Nginx, který začíná v kořenovém adresáři aplikace. Pokud chcete změnit kořen webu, musíte změnit konfigurační soubor Nginx v kontejneru PHP 8.0 (/etc/nginx/sites-available/default). Pro usnadnění vašeho pohodlí obsahuje ukázkové úložiště vlastní konfigurační soubor s názvem výchozí. Jak už jsme uvedli dříve, nechcete tento soubor nahradit pomocí prostředí SSH, protože změny se po restartování aplikace ztratí.
6. Přejděte do aplikace.
7. Streamování diagnostických protokolů
Vyčištění prostředků
Po dokončení můžete odstranit všechny prostředky z předplatného Azure odstraněním skupiny prostředků.
Nejčastější dotazy
- Kolik stojí toto nastavení?
- Návody připojení k flexibilní serverové databázi Azure Database for MySQL, která je zabezpečená za virtuální sítí?
- Jak místní vývoj aplikací funguje s GitHub Actions?
- Proč je nasazení GitHub Actions tak pomalé?
Kolik stojí toto nastavení?
Ceny pro prostředky vytvoření jsou následující:
- Plán služby App Service se vytvoří na úrovni Premium V2 a dá se vertikálně navýšit nebo snížit. Podívejte se na ceny služby App Service.
- Instance flexibilního serveru Azure Database for MySQL se vytváří na úrovni B1ms a dá se vertikálně navýšit nebo snížit. S bezplatným účtem Azure je úroveň B1ms bezplatná po dobu 12 měsíců až do měsíčních limitů. Podívejte se na ceny flexibilního serveru Azure Database for MySQL.
- Za virtuální síť se neúčtují poplatky, pokud nenakonfigurujete další funkce, jako je partnerský vztah. Podívejte se na ceny služby Azure Virtual Network.
- Za privátní zónu DNS se účtují malé poplatky. Podívejte se na ceny Azure DNS.
Návody připojení k flexibilní serverové databázi Azure Database for MySQL, která je zabezpečená za virtuální sítí?
Pokud se chcete připojit k flexibilní serverové databázi Azure Database for MySQL, můžete použít několik metod založených na nástrojích a prostředích, které máte k dispozici:
- Přístup k nástrojům příkazového řádku:
mysql
Pro základní přístup použijte příkaz z terminálu SSH aplikace.
- Desktopové nástroje (například MySQL Workbench):
- Použití tunelového propojení SSH s Azure CLI:
- Vytvořte relaci SSH pro webovou aplikaci pomocí Azure CLI.
- Pomocí relace SSH tunelujte provoz do MySQL.
- Použití sítě VPN typu site-to-site nebo virtuálního počítače Azure:
- Váš počítač musí být součástí virtuální sítě.
- Zvažte použití:
- Virtuální počítač Azure propojený s jednou z podsítí.
- Počítač v místní síti, který má připojení VPN typu site-to-site k virtuální síti Azure.
- Použití tunelového propojení SSH s Azure CLI:
- Integrace Azure Cloud Shellu:
- Integrujte Azure Cloud Shell s virtuální sítí pro přímý přístup.
Jak místní vývoj aplikací funguje s GitHub Actions?
Jako příklad vezměte automaticky vygenerovaný soubor pracovního postupu ze služby App Service a každý git push
spustí nové sestavení a nasazení. Z místního klonu úložiště GitHub provedete požadované aktualizace nasdílení změn do GitHubu. Příklad:
git add .
git commit -m "<some-message>"
git push origin main
Proč je nasazení GitHub Actions tak pomalé?
Automaticky vygenerovaný soubor pracovního postupu ze služby App Service definuje spuštění sestavení a následného nasazení se dvěma úlohami. Vzhledem k tomu, že každá úloha běží ve vlastním čistém prostředí, soubor pracovního postupu zajistí, že deploy
má úloha přístup k souborům build
z úlohy:
- Na konci
build
úlohy nahrajte soubory jako artefakty. - Na začátku
deploy
úlohy stáhněte artefakty.
Většinu času potřebných procesem dvou úloh stráví nahráváním a stahováním artefaktů. Pokud chcete, můžete soubor pracovního postupu zjednodušit tím, že zkombinujete dvě úlohy do jedné, což eliminuje potřebu kroků pro nahrávání a stahování.
Shrnutí
V tomto kurzu jste se naučili, jak:
- Vytvoření flexibilní serverové aplikace PHP a Azure Database for MySQL ve výchozím nastavení zabezpečení v Azure
- Konfigurace tajných kódů připojení k flexibilnímu serveru Azure Database for MySQL pomocí nastavení aplikace
- Nasazení kódu aplikace pomocí GitHub Actions
- Aktualizace a opětovné nasazení aplikace
- Bezpečné spouštění migrací databází
- Streamovat diagnostické protokoly z Azure
- Spravovat aplikaci na webu Azure Portal