Megosztás a következőn keresztül:


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.

Képernyőkép az Azure-alkalmazás Feladatlista című példájáról, amely az új hozzáadott feladatokat mutatja be.

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.
Képernyőkép arról, hogyan keresheti meg a WebAlkalmazás + Adatbázis létrehozása varázslót a felső eszköztár keresőmezőjében.
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.
Képernyőkép egy új alkalmazás és adatbázis konfigurálásáról a WebAlkalmazás + Adatbázis varázslóban.
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.
Képernyőkép a kitöltendő űrlapról webalkalmazás azure-beli létrehozásához.

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. Képernyőkép a konfigurációs lap App Service-ben való megnyitásáról.
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_DATABASE
AZURE_MYSQL_HOST DB_HOST
AZURE_MYSQL_USERNAME DB_USERNAME
AZURE_MYSQL_PASSWORD DB_PASSWORD
Képernyőkép az automatikusan létrehozott kapcsolati sztring megtekintéséről.
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.

Képernyőkép alkalmazásbeállítás létrehozásáról.
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.

Képernyőkép a konfigurációs oldalon található összes szükséges alkalmazásbeállításról.

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.

Képernyőkép a GitHub-mintaadattár elágazásáról.
A GitHub lapon nyissa meg a Visual Studio Code-ot a böngészőben a . billentyű lenyomásával. Képernyőkép arról, hogyan nyithatja meg a Visual Studio Code böngésző felületét a GitHubon.
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). Képernyőkép a Visual Studio Code-ról a böngészőben és egy megnyitott fájlról.
Az App Service lap bal oldali menüjében válassza az Üzembe helyezési központ lehetőséget. Képernyőkép az üzembehelyezési központ App Service-ben való megnyitásáról.
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.
Képernyőkép a CI/CD GitHub Actions használatával történő konfigurálásáról.
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.

Képernyőkép arról, hogyan nyithatja meg az üzembehelyezési naplókat az üzembehelyezési központban.
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.

Képernyőkép arról, hogyan véglegesítse a módosításokat a Visual Studio Code böngészőben.

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 .
Képernyőkép az alkalmazás SSH-felületének az Azure Portalról való megnyitásáról.
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.

Képernyőkép az SSH-rendszerhéjban futtatandó parancsokról és azok kimenetéről.

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.

Képernyőkép az Általános beállítások lap megnyitásáról az App Service konfigurációs lapján.
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.

Képernyőkép az indítási parancsok App Service-ben való konfigurálásáról.

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.

Képernyőkép az App Service Azure Portalról való elindításáról.
Adjon hozzá néhány feladatot a listához. Gratulálunk, egy adatvezérelt PHP-alkalmazást futtat Azure-alkalmazás Service-ben. Képernyőkép az App Service-ben futó Laravel-alkalmazásról.

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.

Képernyőkép a natív naplók engedélyezéséről az App Service-ben az Azure Portalon.
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. Képernyőkép arról, hogyan tekintheti meg a naplóstreamet az Azure Portalon.

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.

Képernyőkép arról, hogyan kereshet és navigálhat egy erőforráscsoportra az Azure Portalon.
Az erőforráscsoport lapján kattintson az Erőforráscsoport törlése elemre. Képernyőkép az Erőforráscsoport törlése gomb helyéről az Azure Portalon.
  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.

Képernyőkép egy erőforráscsoport Azure Portalon való törlésének megerősítő párbeszédpaneléről.

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