Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Den här självstudien visar hur du skapar en säker PHP-app i Azure App Service som är ansluten till en MySQL-databas (med Azure Database for MySQL – flexibel server). Du distribuerar också en Azure Cache for Redis för att aktivera cachelagringskoden i ditt program. Azure App Service är en mycket skalbar webbvärdtjänst med självkorrigering som enkelt kan distribuera appar i Windows eller Linux. När du är klar har du en Laravel-app som körs på Azure App Service på Linux.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Om du vill följa med i den här självstudien klonar eller laddar du ned Laravel-exempelprogrammet från lagringsplatsen:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Om du vill köra programmet lokalt gör du följande:
I .env konfigurerar du databasinställningarna (till exempel DB_DATABASE
, DB_USERNAME
och DB_PASSWORD
) med inställningarna i din lokala MySQL-databas. Du behöver en lokal MySQL-server för att köra det här exemplet.
Starta Laravel från lagringsplatsens rot med följande kommandon:
composer install
php artisan migrate
php artisan key:generate
php artisan serve
I det här steget skapar du Azure-resurserna. Stegen som används i den här självstudien skapar en App Service- och Azure Database for MySQL-konfiguration som är säker som standard. För skapandeprocessen anger du:
https://<app-name>.azurewebsites.net
.Logga in på Azure Portal och följ dessa steg för att skapa dina Azure App Service-resurser.
Steg 1: I Azure Portal:
Steg 2: På sidan Skapa webbapp + databas fyller du i formuläret på följande sätt.
Steg 3: Distributionen tar några minuter att slutföra. När distributionen är klar väljer du knappen Gå till resurs . Du tas direkt till App Service-appen, men följande resurser skapas:
Steg 1: På sidan App Service går du till den vänstra menyn och väljer Konfiguration.
Steg 2:
Steg 3: På fliken Programinställningar på sidan Konfiguration skapar du en CACHE_DRIVER
inställning:
CACHE_DRIVER
används redan i Laravel-programkoden. Den här inställningen instruerar Laravel att använda Redis som cacheminne.Steg 4: Skapa följande appinställningar med samma steg i steg 3:
Viktigt
Värdet APP_KEY
används här för enkelhetens skull. För produktionsscenarier bör den genereras specifikt för distributionen med hjälp av php artisan key:generate --show
kommandoraden.
I det här steget konfigurerar du GitHub-distribution med GitHub Actions. Det är bara ett av många sätt att distribuera till App Service, men också ett bra sätt att ha kontinuerlig integrering i distributionsprocessen. Som standard startar varje git push
till din GitHub-lagringsplats bygg- och distributionsåtgärden. Du kommer att göra några ändringar i din kodbas med Visual Studio Code direkt i webbläsaren och sedan låta GitHub Actions distribueras automatiskt åt dig.
Steg 1: I ett nytt webbläsarfönster:
Steg 2: På GitHub-sidan öppnar du Visual Studio Code i webbläsaren genom att trycka på .
nyckeln.
Steg 3: Öppna konfiguration/database.php i utforskaren i Visual Studio Code i webbläsaren. Leta upp avsnittet mysql
och gör följande ändringar:
DB_HOST
med AZURE_MYSQL_HOST
DB_DATABASE
med AZURE_MYSQL_DBNAME
DB_USERNAME
med AZURE_MYSQL_USERNAME
DB_PASSWORD
med AZURE_MYSQL_PASSWORD
DB_PORT
med AZURE_MYSQL_PORT
Kom ihåg att de här AZURE_MYSQL_
inställningarna skapades åt dig av guiden skapa.
Steg 4: I config/database.php bläddra till Avsnittet Redis cache
och göra följande ändringar:
REDIS_HOST
med AZURE_REDIS_HOST
REDIS_PASSWORD
med AZURE_REDIS_PASSWORD
REDIS_PORT
med AZURE_REDIS_PORT
REDIS_CACHE_DB
med AZURE_REDIS_DATABASE
'scheme' => 'tls',
. Den här konfigurationen instruerar Laravel att använda kryptering för att ansluta till Redis.
Kom ihåg att de här AZURE_REDIS_
inställningarna skapades åt dig av guiden skapa.Steg 5:
Configure DB & Redis variables
.Steg 6: På sidan App Service går du till den vänstra menyn och väljer Distributionscenter.
Steg 7: På sidan Distributionscenter:
.github/workflows
katalogen.Steg 8: På sidan Distributionscenter:
Steg 9: Du tas till din GitHub-lagringsplats och ser att GitHub-åtgärden körs. Arbetsflödesfilen definierar två separata steg, skapa och distribuera. Vänta tills GitHub-körningen visar statusen Slutförd. Det tar ungefär 15 minuter.
Guiden skapa placerar MySQL-databasservern bakom en privat slutpunkt, så den är endast tillgänglig från det virtuella nätverket. Eftersom App Service-appen redan är integrerad med det virtuella nätverket är det enklaste sättet att köra databasmigreringar med databasen direkt från App Service-containern.
Steg 1: På sidan App Service går du till den vänstra menyn och väljer SSH.
Steg 2: I SSH-terminalen:
cd /home/site/wwwroot
. Här är alla dina distribuerade filer.php artisan migrate --force
. Om det lyckas ansluter App Service till MySQL-databasen.
Endast ändringar i filer i /home
kan bevaras utöver omstarter av appar. Ändringar utanför /home
sparas inte.
Laravel-programmets livscykel börjar i katalogen /public i stället. Php-standardcontainern för App Service använder Nginx, som startar i programmets rotkatalog. Om du vill ändra platsroten måste du ändra Nginx-konfigurationsfilen i PHP-containern (/etc/nginx/sites-available/default). För din bekvämlighet innehåller exempellagringsplatsen en anpassad konfigurationsfil som kallas standard. Som tidigare nämnts vill du inte ersätta den här filen med hjälp av SSH-gränssnittet, eftersom ändringen ligger utanför och kommer att gå förlorad efter en omstart av /home
appen.
Steg 1 :
Steg 2: På fliken Allmänna inställningar:
Steg 1: På App Service-sidan:
https://<app-name>.azurewebsites.net
.Steg 2: Lägg till några uppgifter i listan. Grattis, du kör en säker datadriven PHP-app i Azure App Service.
Tips
Exempelprogrammet implementerar cache-aside-mönstret . När du läser in sidan igen när du har gjort dataändringar visas svarstiden på webbsidan mycket snabbare eftersom den läser in data från cachen i stället för databasen.
Azure App Service samlar in alla meddelanden som loggas till konsolen för att hjälpa dig att diagnostisera problem med ditt program. Exempelappen matar ut konsolloggmeddelanden i var och en av sina slutpunkter för att demonstrera den här funktionen. Som standard matas Laravels loggningsfunktion (till exempel Log::info()
) ut till en lokal fil. Appinställningen LOG_CHANNEL
från tidigare gör loggposter tillgängliga från App Service-loggströmmen.
Steg 1: På App Service-sidan:
Steg 2: Välj Loggström på den vänstra menyn. Du ser loggarna för din app, inklusive plattformsloggar och loggar inifrån containern.
När du är klar kan du ta bort alla resurser från din Azure-prenumeration genom att ta bort resursgruppen.
Steg 1: I sökfältet överst i Azure Portal:
Steg 2: På resursgruppssidan väljer du Ta bort resursgrupp.
Steg 3:
Prissättningen för skapa resurser är följande:
mysql
från appens SSH-terminal.Ta den autogenererade arbetsflödesfilen från App Service som exempel. Var git push
och en startar en ny version och distributionskörning. Från en lokal klon av GitHub-lagringsplatsen får du önskade uppdateringar att skicka den till GitHub. Till exempel:
git add .
git commit -m "<some-message>"
git push origin main
Den autogenererade arbetsflödesfilen från App Service definierar build-then-deploy, two-job run. Eftersom varje jobb körs i en egen ren miljö ser arbetsflödesfilen till att deploy
jobbet har åtkomst till filerna från build
jobbet:
build
jobbet laddar du upp filer som artefakter.deploy
jobbet laddar du ned artefakterna.Merparten av den tid det tar för tvåjobbsprocessen är att ladda upp och ladda ned artefakter. Om du vill kan du förenkla arbetsflödesfilen genom att kombinera de två jobben till ett, vilket eliminerar behovet av uppladdnings- och nedladdningsstegen.
Gå vidare till nästa självstudie för att lära dig hur du skyddar din app med en anpassad domän och ett certifikat.
Eller kolla in andra resurser:
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Skapa och distribuera program till Azure med hjälp av GitHub Actions - Training
Skapa två arbetsflöden för distribution med GitHub Actions och Microsoft Azure. Lär dig mer om att utlösa ett CD-arbetsflöde och lagra autentiseringsuppgifter.
Certifiering
Microsoft Certified: Azure Developer Associate - Certifications
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.