Sdílet prostřednictvím


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.

Snímek obrazovky s příkladem aplikace Azure s názvem Seznam úkolů zobrazující přidané nové úkoly

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

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_DATABASEDB_USERNAMEDB_PASSWORDa) 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:
  1. Do vyhledávacího panelu v horní části webu Azure Portal zadejte "databáze webové aplikace".
  2. Vyberte položku s popiskem Web App + Database pod nadpisem Marketplace .
Můžete také přejít přímo do průvodce vytvořením.
Snímek obrazovky znázorňující použití vyhledávacího pole v horním panelu nástrojů k vyhledání průvodce vytvořením webové aplikace a databáze
Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.
  1. Skupina prostředků → Vyberte vytvořit novou a použijte název msdocs-laravel-mysql-tutorial.

  2. Oblast → Libovolná oblast Azure blízko vás.

  3. Názevmsdocs-laravel-mysql-XYZ , kde XYZ je libovolný tři náhodné znaky. Tento název musí být v rámci služby Azure jedinečný.

  4. Zásobník modulu runtime → PHP 8.0.

    Flexibilní server MySQL je ve výchozím nastavení vybraný jako databázový stroj. Azure Database for MySQL je plně spravovaná databáze MySQL jako služba v Azure, která je kompatibilní s nejnovějšími komunitními edicemi.

  5. Poznamenejte si název databáze, který je pro vás vygenerovaný (app-name-database>).< Budete ho totiž potřebovat později.

  6. Vyberte Zkontrolovat a vytvořit.

Po dokončení ověření vyberte Vytvořit.
Snímek obrazovky znázorňující, jak nakonfigurovat novou aplikaci a databázi v průvodci webovou aplikací a databází
Dokončení nasazení trvá několik minut a vytvoří následující prostředky:
  • Skupina prostředků → Kontejner pro všechny vytvořené prostředky.
  • Plán služby App Service → Definuje výpočetní prostředky služby App Service. Vytvoří se plán Linuxu na úrovni P1v2 .
  • → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
  • Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
  • Flexibilní server Azure Database for MySQL → přístupný jenom z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
  • Privátní DNS zónu → Umožňuje překlad DNS databázového serveru MySQL ve virtuální síti.
Po dokončení nasazení vyberte tlačítko Přejít k prostředku . Přejdete přímo do aplikace App Service.
Snímek obrazovky znázorňující formulář, který chcete vyplnit a vytvořit webovou aplikaci v Azure

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. Snímek obrazovky znázorňující, jak otevřít konfigurační stránku ve službě App Service
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.
Aktuální název Nový název
AZURE_MYSQL_DBNAME DB_DATABASE
AZURE_MYSQL_HOST DB_HOST
AZURE_MYSQL_USERNAME DB_USERNAME
AZURE_MYSQL_PASSWORD DB_PASSWORD
Snímek obrazovky znázorňující, jak zobrazit automaticky vygenerovaný připojovací řetězec
Vytvořte nové MYSQL_ATTR_SSL_CA nastavení databáze:
  1. Vyberte Nové nastavení aplikace.

  2. Do pole Název zadejte MYSQL_ATTR_SSL_CA.

  3. Do pole Hodnota zadejte /home/site/wwwroot/ssl/DigiCertGlobalRootCA.crt.pem.

    Toto nastavení aplikace odkazuje na cestu certifikátu TLS/SSL, který potřebujete pro přístup k serveru MySQL. Je součástí ukázkového úložiště, které vám usnadní práci.

  4. Vyberte OK.

Snímek obrazovky znázorňující, jak vytvořit nastavení aplikace
Podle stejných kroků vytvořte následující další nastavení aplikace a pak vyberte Uložit.
  • APP_DEBUG: Jako hodnotu použijte true. Jedná se o proměnnou ladění Laravel.

  • APP_KEY: Jako hodnotu použijte base64:Dsz40HWwbCqnq0oxMsjq7fItmKIeBfCBGORfspaI1Kw= . Toto je šifrovací proměnná Laravel.

    Důležité

    Tato APP_KEY hodnota se zde používá pro usnadnění. V produkčních scénářích by se měla generovat speciálně pro vaše nasazení pomocí php artisan key:generate --show příkazového řádku.

Snímek obrazovky zobrazující všechna požadovaná nastavení aplikace na stránce konfigurace

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:
  1. Přihlaste se k účtu GitHub.

  2. Přejděte na https://github.com/Azure-Samples/laravel-tasks.

  3. Vyberte Fork.

  4. Vyberte Vytvořit fork.

Snímek obrazovky znázorňující, jak vytvořit fork ukázkového úložiště GitHub
Na stránce GitHubu otevřete Visual Studio Code v prohlížeči stisknutím klávesy . . Snímek obrazovky znázorňující, jak otevřít prostředí prohlížeče editoru Visual Studio Code na GitHubu
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). Snímek obrazovky znázorňující Visual Studio Code v prohlížeči a otevřený soubor
Zpět na stránce služby App Service v nabídce vlevo vyberte Deployment Center. Snímek obrazovky znázorňující, jak otevřít centrum nasazení ve službě App Service
Na stránce Deployment Center:
  1. Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .

  2. Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.

  3. V organizaci vyberte svůj účet.

  4. V úložišti vyberte laravel-tasks.

  5. Ve větvi vyberte hlavní.

  6. V horní nabídce vyberte Uložit.

App Service potvrdí soubor pracovního postupu do vybraného úložiště GitHub v .github/workflows adresáři.
Snímek obrazovky znázorňující, jak nakonfigurovat CI/CD pomocí GitHub Actions
Na stránce Deployment Center:
  1. Vyberte Protokoly. Spuštění nasazení je již spuštěno.

  2. V položce protokolu pro spuštění nasazení vyberte Sestavit/Nasadit protokoly.

    Přejdete do svého úložiště GitHub a zjistíte, že je spuštěná akce GitHubu. Soubor pracovního postupu definuje dvě samostatné fáze, sestavení a nasazení.

Snímek obrazovky znázorňující, jak otevřít protokoly nasazení v centru nasazení
Pokud chcete v kódu provést jakékoli změny, přejděte v prohlížeči do editoru Visual Studio Code:
  1. Vyberte rozšíření správy zdrojového kódu .

  2. Vedle změněného souboru, například database.php, vyberte + , aby se vaše změny zfázily.

  3. Do textového pole zadejte zprávu potvrzení, například add certificate.

  4. Zaškrtnutím zaškrtnutí potvrďte a nasdílíte změny do GitHubu.

Pokud se vrátíte na stránku Deployment Center, zobrazí se nová položka protokolu, protože se spustí jiné spuštění. Počkejte na dokončení spuštění. Trvá to asi 15 minut.

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.

Snímek obrazovky znázorňující, jak potvrdit změny v prostředí prohlížeče editoru Visual Studio Code

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:
  1. V nabídce vlevo vyberte SSH.

  2. Vyberte Přejít.

V prohlížeči se otevře relace SSH s kontejnerem služby App Service. Pokud chcete, můžete přejít přímo na https://<app-name>.scm.azurewebsites.net/webssh/host místo toho.
Snímek obrazovky znázorňující, jak otevřít prostředí SSH pro vaši aplikaci z webu Azure Portal
V terminálu SSH:
  1. CD do kořenového adresáře kódu aplikace:

    cd /home/site/wwwroot
    
  2. Spusťte migrace databází z kořenového adresáře aplikace.

    php artisan migrate --force
    

    Poznámka:

    Kromě restartování aplikace se můžou zachovat jenom změny v /home souborech. Změny mimo /home provoz se neuchovávají.

Snímek obrazovky znázorňující příkazy ke spuštění v prostředí SSH a jejich výstupu

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

Pokyny Snímek obrazovky
Na stránce služby App Service:
  1. V nabídce vlevo vyberte Konfigurace.

  2. Vyberte kartu Obecné nastavení.

Snímek obrazovky znázorňující, jak otevřít kartu obecné nastavení na stránce konfigurace služby App Service
Na kartě Obecné nastavení:
  1. Do pole Spouštěcí příkaz zadejte následující příkaz: cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload.

    Nahradí konfigurační soubor Nginx v kontejneru PHP 8.0 a restartuje Nginx. Tato konfigurace zajistí, že se tato změna provede v kontejneru při každém spuštění.

  2. Zvolte Uložit.

Snímek obrazovky znázorňující, jak nakonfigurovat spouštěcí příkaz ve službě App Service

6. Přejděte do aplikace.

Pokyny Snímek obrazovky
Na stránce služby App Service:
  1. V nabídce vlevo vyberte Přehled.

  2. Vyberte adresu URL aplikace.

    Můžete také přejít přímo na https://<app-name>.azurewebsites.net.

Snímek obrazovky znázorňující, jak spustit službu App Service z webu Azure Portal
Přidejte do seznamu několik úkolů. Blahopřejeme, ve službě Aplikace Azure Service spouštíte aplikaci PHP řízenou daty. Snímek obrazovky s aplikací Laravel spuštěnou ve službě App Service

7. Streamování diagnostických protokolů

Pokyny Snímek obrazovky
Na stránce služby App Service:
  1. V nabídce vlevo vyberte protokoly služby App Service.

  2. V části Protokolování aplikace vyberte Systém souborů.

Snímek obrazovky znázorňující povolení nativních protokolů ve službě App Service na webu Azure Portal
V nabídce vlevo vyberte Stream protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru. Snímek obrazovky znázorňující, jak zobrazit stream protokolu na webu Azure Portal

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

Pokyny Snímek obrazovky
Na panelu hledání v horní části webu Azure Portal:
  1. Zadejte název skupiny prostředků.

  2. Vyberte tuto skupinu prostředků.

Snímek obrazovky znázorňující, jak hledat a přejít na skupinu prostředků na webu Azure Portal
Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků. Snímek obrazovky znázorňující umístění tlačítka Odstranit skupinu prostředků na webu Azure Portal
  1. Potvrďte odstranění zadáním názvu skupiny prostředků.

  2. Vyberte Odstranit.

Snímek obrazovky s potvrzovací dialog pro odstranění skupiny prostředků na webu Azure Portal

Nejčastější dotazy

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.
  • Integrace Azure Cloud Shellu:

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:

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