Oktatóanyag: PHP (Laravel) és Azure Database for MySQL – Rugalmas kiszolgálóalkalmazás létrehozása Azure-alkalmazás Szolgáltatáson

A következőkre vonatkozik: Azure Database for MySQL – rugalmas kiszolgáló

Azure-alkalmazás Szolgáltatás egy nagymértékben skálázható, önjavító web hosting szolgáltatást biztosít a Linux operációs rendszer használatával. Ez az oktatóanyag bemutatja, hogyan hozhat létre biztonságos PHP-alkalmazást Azure-alkalmazás Szolgáltatásban, amely egy Rugalmas Azure Database for MySQL-kiszolgálóhoz csatlakozik. Ha végzett, egy Laravel-alkalmazás fog futni a linuxos Azure-alkalmazás szolgáltatásban.

Screenshot of the Azure app example titled Task List showing new tasks added.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Biztonságos PHP- és MySQL-alkalmazás létrehozása az Azure-ban
  • Kapcsolati titkos kulcsok konfigurálása a MySQL-hez alkalmazásbeállítások használatával
  • Alkalmazáskód üzembe helyezése a GitHub Actions használatával
  • Az alkalmazás frissítése és ismételt üzembe helyezése
  • Adatbázis-migrálások biztonságos futtatása
  • Diagnosztikai naplók streamelése az Azure-ból
  • Az alkalmazás kezelése az Azure Portalon

Előfeltételek

Mintaalkalmazás

Az oktatóanyag követéséhez klónozza vagy töltse le a mintaalkalmazást az adattárból:

git clone https://github.com/Azure-Samples/laravel-tasks.git

Ha helyileg szeretné futtatni az alkalmazást, tegye a következőket:

  • Az .env alkalmazásban konfigurálja az adatbázis beállításait (például DB_DATABASE, DB_USERNAMEés DB_PASSWORD) a helyi Rugalmas Azure Database for MySQL-kiszolgálóadatbázis beállításaival. A minta futtatásához egy rugalmas Azure Database for MySQL-kiszolgálópéldányra van szükség.

  • Az adattár gyökeréből indítsa el a Laravelt a következő parancsokkal:

    composer install
    php artisan migrate
    php artisan key:generate
    php artisan serve
    

1 – Rugalmas App Service- és Azure Database for MySQL-kiszolgálói erőforrások létrehozása

Ebben a lépésben hozza létre az Azure-erőforrásokat. Az oktatóanyag lépései alapértelmezés szerint biztonságos, rugalmas App Service- és Azure Database for MySQL-kiszolgálókonfigurációt hoznak létre. A létrehozási folyamathoz a következőket kell megadnia:

  • A webalkalmazás neve . Ez a webalkalmazás https://<app-name>.azurewebsites.netDNS-nevének részeként használt név.
  • Az alkalmazás futtatókörnyezete . Itt választhatja ki az alkalmazáshoz használni kívánt PHP-verziót.
  • Az alkalmazás erőforráscsoportja . Az erőforráscsoportokkal (logikai tárolóban) csoportosíthatja az alkalmazáshoz szükséges Összes Azure-erőforrást.

Jelentkezzen be az Azure Portalra, és kövesse az alábbi lépéseket a Azure-alkalmazás szolgáltatás erőforrásainak létrehozásához.

Utasítások Képernyőkép
Az Azure Portalon:
  1. Írja be a "webalkalmazás-adatbázis" kifejezést az Azure Portal tetején található keresősávba.
  2. Válassza ki a Web App + Adatbázis címkével ellátott elemet a Marketplace címsora alatt.
A létrehozási varázslót közvetlenül is megnyithatja.
A screenshot showing how to use the search box in the top tool bar to find the Web App + Database creation wizard.
A Webalkalmazás létrehozása + Adatbázis lapon töltse ki az űrlapot az alábbiak szerint.
  1. Az erőforráscsoport → Válassza az Új létrehozása lehetőséget, és használja az msdocs-laravel-mysql-tutorial nevet.

  2. Régió → Az Önhöz közeli Bármely Azure-régió.

  3. Adja →msdocs-laravel-mysql-XYZ nevet, ahol az XYZ tetszőleges három véletlenszerű karakter. Ennek a névnek az Azure-on belül egyedinek kell lennie.

  4. Runtime stackPHP 8.0.

    A Rugalmas MySQL-kiszolgáló alapértelmezés szerint adatbázismotorként van kiválasztva. Az Azure Database for MySQL egy teljes körűen felügyelt MySQL-adatbázis szolgáltatásként az Azure-ban, amely kompatibilis a legújabb közösségi kiadásokkal.

  5. Jegyezze fel az Ön számára létrehozott adatbázisnevet (app-name-database>).< Erre később még szüksége lesz.

  6. Kattintson a Felülvizsgálat + létrehozás elemre.

Az ellenőrzés befejezése után kattintson a Létrehozás gombra.
A screenshot showing how to configure a new app and database in the Web App + Database wizard.
Az üzembe helyezés néhány percet vesz igénybe, és a következő erőforrásokat hozza létre:
  • Az erőforráscsoport az összes létrehozott erőforrás tárolóját →.
  • Az App Service-csomag → Az App Service számítási erőforrásait határozza meg. Létrejön egy Linux-csomag a P1v2-szinten .
  • Az App Service → Az alkalmazást jelöli, és az App Service-csomagban fut.
  • A virtuális hálózat → Integrálva van az App Service alkalmazással, és elkülöníti a háttérbeli hálózati forgalmat.
  • Azure Database for MySQL – Rugalmas kiszolgáló → csak a virtuális hálózatról érhető el. A rendszer létrehoz egy adatbázist és egy felhasználót a kiszolgálón.
  • saját DNS zóna → Engedélyezi a MySQL-adatbáziskiszolgáló DNS-feloldását a virtuális hálózaton.
Az üzembe helyezés befejezése után kattintson az Erőforrás megnyitása gombra. Közvetlenül az App Service-alkalmazásba kerül.
A screenshot showing the form to fill out to create a web app in Azure.

2 – Adatbázis-kapcsolat beállítása

A létrehozási varázsló alkalmazásbeállításokat hozott létre az adatbázishoz való csatlakozáshoz, de a kódhoz még nem használható formátumban. Ebben a lépésben az alkalmazásbeállításokat az alkalmazás igényeinek megfelelő formátumra szerkesztheti és frissítheti.

Utasítások Képernyőkép
Az App Service lap bal oldali menüjében válassza a Konfiguráció lehetőséget. A screenshot showing how to open the configuration page in App Service.
A Konfiguráció lap Alkalmazásbeállítások lapján az alábbi beállítások mindegyikéhez kattintson a Szerkesztés gombra, frissítse a Név mezőt új értékekkel, és kattintson az OK gombra.
Aktuális név Új név
AZURE_MYSQL_DBNAME DB_DATABA Standard kiadás
AZURE_MYSQL_HOST DB_HOST
AZURE_MYSQL_U Standard kiadás RNAME DB_U Standard kiadás RNAME
AZURE_MYSQL_PASSWORD DB_PASSWORD
A screenshot showing how to see the autogenerated connection string.
Hozzon létre egy új MYSQL_ATTR_SSL_CA adatbázis-beállítást:
  1. Kattintson az Új alkalmazásbeállítás gombra.

  2. A Név mezőbe írja be a MYSQL_ATTR_SSL_CA.

  3. Az Érték mezőben adja meg a /home/site/wwwroot/ssl/DigiCertGlobalRootCA.crt.pem értéket.

    Ez az alkalmazásbeállítás a MySQL-kiszolgáló eléréséhez szükséges TLS/SSL-tanúsítvány elérési útjára mutat. A mintaadattárban található a kényelem érdekében.

  4. Kattintson az OK gombra.

A screenshot showing how to create an app setting.
Az alábbi további alkalmazásbeállításokat ugyanezekkel a lépésekkel hozhatja létre, majd kattintson a Mentés gombra.
  • APP_DEBUG: Igaz értéket használjon. Ez egy Laravel hibakeresési változó.

  • APP_KEY: Értékként használja a base64:Dsz40HWwbCqnq0oxMsjq7fItmKIeBfCBGORfspaI1Kw= értéket. Ez egy Laravel titkosítási változó.

    Fontos

    Ezt APP_KEY az értéket itt használja a rendszer a kényelem érdekében. Éles forgatókönyvek esetén a parancsot kifejezetten az üzembe helyezéshez php artisan key:generate --show kell létrehozni a parancssorban.

A screenshot showing all the required app settings in the configuration page.

3 – Mintakód üzembe helyezése

Ebben a lépésben konfigurálja a GitHub üzembe helyezését a GitHub Actions használatával. Ez csak egy az App Service-ben történő üzembe helyezés számos módja közül, de nagyszerű módja annak is, hogy folyamatos integrációt nyújtsunk az üzembe helyezési folyamatba. Alapértelmezés szerint a GitHub-adattár minden git push eleme elindítja a buildelési és üzembe helyezési műveletet. A kódbázist a Visual Studio Code-tal közvetlenül a böngészőben fogja módosítani, majd lehetővé teszi a GitHub Actions automatikus üzembe helyezését.

Utasítások Képernyőkép
Új böngészőablakban:
  1. Jelentkezzen be a GitHub-fiókjába.

  2. Nyissa meg a https://github.com/Azure-Samples/laravel-tasks címet.

  3. Kattintson az Elágazás elemre.

  4. Kattintson az Elágazás létrehozása gombra.

A screenshot showing how to create a fork of the sample GitHub repository.
A GitHub lapon nyissa meg a Visual Studio Code-ot a böngészőben a . billentyű lenyomásával. A screenshot showing how to open the Visual Studio Code browser experience in GitHub.
A Visual Studio Code böngészőben nyissa meg a config/database.php böngészőben. A kapcsolaton mysql belül ellenőrizze, hogy a MySQL-kapcsolathoz korábban létrehozott alkalmazásbeállítások már használatban vannak (DB_HOST, DB_DATABASE, DB_USERNAME, , DB_PASSWORDMYSQL_ATTR_SSL_CA). A screenshot showing Visual Studio Code in the browser and an opened file.
Az App Service lap bal oldali menüjében válassza az Üzembe helyezési központ lehetőséget. A screenshot showing how to open the deployment center in App Service.
Az Üzembe helyezési központ lapon:
  1. A Forrás területen válassza a GitHubot. Alapértelmezés szerint a GitHub Actions van kiválasztva buildszolgáltatóként.

  2. Jelentkezzen be a GitHub-fiókjába, és kövesse az utasításokat az Azure engedélyezéséhez.

  3. A Szervezetben válassza ki a fiókját.

  4. Az Adattárban válassza a laravel-tasks elemet.

  5. Az Ág területen válassza a fő lehetőséget.

  6. A felső menüben kattintson a Mentés gombra.

Az App Service véglegesít egy munkafolyamat-fájlt a kijelölt GitHub-adattárban, a .github/workflows címtárban.
A screenshot showing how to configure CI/CD using GitHub Actions.
Az Üzembe helyezési központ lapon:
  1. Válassza a Naplókat. Az üzembehelyezési futtatás már elindult.

  2. Az üzembe helyezési futtatás naplóelemében válassza a Build/Deploy Logs lehetőséget.

    A rendszer a GitHub-adattárba viszi, és láthatja, hogy a GitHub-művelet fut. A munkafolyamat-fájl két különálló szakaszt határoz meg, a buildelést és az üzembe helyezést.

A screenshot showing how to open deployment logs in the deployment center.
A kód módosításához nyissa meg a Visual Studio Code-ot a böngészőben:
  1. Válassza ki a Forrásvezérlő bővítményt.

  2. A módosított fájl (például database.php) mellett válassza ki + a módosításokat.

  3. A szövegmezőbe írjon be például add certificateegy véglegesítési üzenetet.

  4. Jelölje be a véglegesítéshez és a GitHubra való leküldéshez jelölje be a pipát.

Ha visszatér az Üzembe helyezési központ lapra, egy új naplóbejegyzés jelenik meg, mert egy másik futtatás is elindult. Várjon, amíg a futtatás befejeződik. Körülbelül 15 percet vesz igénybe.

Tipp.

A GitHub-műveletet a GitHub-adattárban, a .github/munkafolyamatban található fájl határozza meg. A fájl testreszabásával felgyorsíthatja a folyamatot.

A screenshot showing how to commit your changes in the Visual Studio Code browser experience.

4 – Adatbázisséma létrehozása

A létrehozási varázsló az Azure Database for MySQL rugalmas kiszolgálópéldányát egy privát végpont mögé helyezi, így csak a virtuális hálózatról érhető el. Mivel az App Service-alkalmazás már integrálva van a virtuális hálózattal, az adatbázis migrálásának legegyszerűbb módja közvetlenül az App Service-tárolóból történik.

Utasítások Képernyőkép
Az App Service oldalán:
  1. A bal oldali menüben válassza az SSH-t.

  2. Válassza az Ugrás lehetőséget.

A böngészőben megnyílik egy SSH-munkamenet az App Service-tárolóval. Ha szeretné, közvetlenül a kívánt helyre navigálhat https://<app-name>.scm.azurewebsites.net/webssh/host .
A screenshot showing how to open the SSH shell for your app from the Azure portal.
Az SSH-terminálban:
  1. CD az alkalmazáskód gyökeréhez:

    cd /home/site/wwwroot
    
  2. Adatbázis-áttelepítések futtatása az alkalmazás gyökeréből.

    php artisan migrate --force
    

    Feljegyzés

    Csak a fájlok /home módosításai őrizhetők meg az alkalmazás újraindítása után. A külső /home módosítások nem maradnak meg.

A screenshot showing the commands to run in the SSH shell and their output.

5 – Webhely gyökerének módosítása

A Laravel-alkalmazás életciklusa a /public könyvtárban kezdődik. Az App Service alapértelmezett PHP 8.0-tárolója az Nginxet használja, amely az alkalmazás gyökérkönyvtárában kezdődik. A webhely gyökerének módosításához módosítania kell az Nginx konfigurációs fájlt a PHP 8.0 tárolóban (/etc/nginx/sites-available/default). Az Ön kényelme érdekében a mintaadattár egy alapértelmezett nevű egyéni konfigurációs fájlt tartalmaz. Ahogy korábban már említettük, nem szeretné lecserélni ezt a fájlt az SSH-felülettel, mert a módosítások elvesznek az alkalmazás újraindítása után.

Utasítások Képernyőkép
Az App Service oldalán:
  1. A bal oldali menüben válassza a Konfiguráció lehetőséget.

  2. Válassza az Általános beállítások lapot.

A screenshot showing how to open the general settings tab in the configuration page of App Service.
Az Általános beállítások lapon:
  1. Az Indítási parancs mezőbe írja be a következő parancsot: cp /home/site/wwwroot/default /etc/nginx/sites-available/default &> service nginx reload.

    Lecseréli az Nginx konfigurációs fájlt a PHP 8.0-tárolóban, és újraindítja az Nginxet. Ez a konfiguráció biztosítja, hogy ez a módosítás minden indításkor a tárolón történik.

  2. Válassza a Mentés lehetőséget.

A screenshot showing how to configure a startup command in App Service.

6 – Tallózás az alkalmazáshoz

Utasítások Képernyőkép
Az App Service oldalán:
  1. A bal oldali menüben válassza az Áttekintés lehetőséget.

  2. Válassza ki az alkalmazás URL-címét.

    Közvetlenül a következőre https://<app-name>.azurewebsites.netis navigálhat.

A screenshot showing how to launch an App Service from the Azure portal.
Adjon hozzá néhány feladatot a listához. Gratulálunk, egy adatvezérelt PHP-alkalmazást futtat Azure-alkalmazás Service-ben. A screenshot of the Laravel app running in App Service.

7 – Diagnosztikai naplók streamelése

Utasítások Képernyőkép
Az App Service oldalán:
  1. A bal oldali menüben válassza az App Service-naplók lehetőséget.

  2. Az Alkalmazásnaplózás területen válassza a Fájlrendszer lehetőséget.

A screenshot showing how to enable native logs in App Service in the Azure portal.
A bal oldali menüben kattintson a Naplóstream elemre. Láthatja az alkalmazás naplóit, beleértve a platformnaplókat és a tárolón belüli naplókat. A screenshot showing how to view the log stream in the Azure portal.

Az erőforrások eltávolítása

Ha végzett, törölheti az összes erőforrást az Azure-előfizetéséből az erőforráscsoport törlésével.

Utasítások Képernyőkép
Az Azure Portal tetején található keresősávon:
  1. Adja meg az erőforráscsoport nevét.

  2. Válassza ki az erőforráscsoportot.

A screenshot showing how to search for and navigate to a resource group in the Azure portal.
Az erőforráscsoport lapján kattintson az Erőforráscsoport törlése elemre. A screenshot showing the location of the Delete Resource Group button in the Azure portal.
  1. A törlés megerősítéséhez adja meg az erőforráscsoport nevét.

  2. Kattintson a Törlés gombra.

A screenshot of the confirmation dialog for deleting a resource group in the Azure portal.

Gyakori kérdések

Mennyibe kerül ez a beállítás?

A létrehozási erőforrások díjszabása a következő:

Hogyan csatlakozni egy rugalmas Azure Database for MySQL-kiszolgálóadatbázishoz, amely egy virtuális hálózat mögött védett?

Rugalmas Azure Database for MySQL-kiszolgálóadatbázishoz való csatlakozáshoz számos módszert használhat a rendelkezésére álló eszközök és környezetek alapján:

  • Parancssori eszköz hozzáférése:
    • mysql Az alapszintű hozzáféréshez használja az alkalmazás SSH-termináljának parancsát.
  • Asztali eszközök (például MySQL Workbench):
    • SSH-bújtatás használata az Azure CLI-vel:
      • Hozzon létre egy SSH-munkamenetet a webalkalmazásban az Azure CLI használatával.
      • Az SSH-munkamenet használatával bújtathatja a forgalmat a MySQL-be.
    • Helyek közötti VPN vagy Azure-beli virtuális gép használata:
      • A gépnek a virtuális hálózat részét kell képeznie.
      • Fontolja meg a következő használatát:
        • Az egyik alhálózathoz csatolt Azure-beli virtuális gép.
        • Egy helyszíni hálózat azon gépe, amely helyek közötti VPN-kapcsolattal rendelkezik az Azure-beli virtuális hálózathoz.
  • Azure Cloud Shell-integráció:

Hogyan működik a helyi alkalmazásfejlesztés a GitHub Actions használatával?

Vegyük példaként az App Service automatikusan létrehozott munkafolyamat-fájlját, és mindegyik git push elindít egy új buildet és üzembe helyezést. A GitHub-adattár helyi klónjából a kívánt frissítéseket leküldheti a GitHubra. Példa:

git add .
git commit -m "<some-message>"
git push origin main

Miért olyan lassú a GitHub Actions üzembe helyezése?

Az App Service automatikusan létrehozott munkafolyamat-fájlja a build-then-deploy, kétfeladatos futtatás definícióját határozza meg. Mivel minden feladat a saját tiszta környezetében fut, a munkafolyamat-fájl biztosítja, hogy a deploy feladat hozzáférhessen a build feladat fájljaihoz:

A kétfeladatos folyamat legtöbbször az összetevők feltöltésével és letöltésével foglalkozik. Ha szeretné, egyszerűsítheti a munkafolyamat-fájlt a két feladat egybe egyesítésével, ami szükségtelenné teszi a feltöltési és letöltési lépéseket.

Összegzés

Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:

  • Biztonságos alapértelmezett PHP- és Azure Database for MySQL-kiszolgálóalkalmazás létrehozása az Azure-ban
  • Kapcsolati titkos kulcsok konfigurálása rugalmas Azure Database for MySQL-kiszolgálóhoz alkalmazásbeállítások használatával
  • Alkalmazáskód üzembe helyezése a GitHub Actions használatával
  • Az alkalmazás frissítése és ismételt üzembe helyezése
  • Adatbázis-migrálások biztonságos futtatása
  • Diagnosztikai naplók streamelése az Azure-ból
  • Az alkalmazás kezelése az Azure Portalon

Következő lépések