Skapa PHP webb- och arbetsroller
Översikt
Viktigt!
Cloud Services (klassisk) är nu inaktuellt för alla kunder från och med den 1 september 2024. Alla befintliga distributioner som körs stoppas och stängs av av Microsoft och data försvinner permanent från och med oktober 2024. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).
Den här guiden visar hur du skapar PHP-webb- eller arbetsroller i en Windows-utvecklingsmiljö, väljer en specifik version av PHP från de "inbyggda" versioner som är tillgängliga, ändrar PHP-konfigurationen, aktiverar tillägg och slutligen distribuerar till Azure. Den beskriver också hur du konfigurerar en webb- eller arbetsroll för att använda en PHP-körning (med anpassad konfiguration och tillägg) som du anger.
Azure tillhandahåller tre beräkningsmodeller för program som körs: Azure App Service, Azure Virtual Machines och Azure Cloud Services. Alla tre modellerna stöder PHP. Cloud Services, som innehåller webb- och arbetsroller, tillhandahåller paaS (platform as a service). I en molntjänst tillhandahåller en webbroll en dedikerad IIS-webbserver (Internet Information Services) som värd för klientwebbprogram. En arbetsroll kan köra asynkrona, långvariga eller eviga uppgifter oberoende av användarinteraktion eller indata.
Mer information om de här alternativen finns i Beräkningsvärdalternativ som tillhandahålls av Azure.
Ladda ner Azure SDK för PHP
Azure SDK för PHP består av flera komponenter. Den här artikeln använder två av dem: Azure PowerShell och Azure-emulatorerna. Dessa två komponenter kan installeras via Installationsprogrammet för Microsoft Web Platform. Mer information finns i Installera och konfigurera Azure PowerShell.
Skapa ett Cloud Services-projekt
Det första steget i att skapa en PHP-webb- eller arbetsroll är att skapa ett Azure Service-projekt. Ett Azure Service-projekt fungerar som en logisk container för webb- och arbetsroller och innehåller projektets tjänstdefinitionsfiler (.csdef) och tjänstkonfiguration (.cscfg ).
Om du vill skapa ett nytt Azure Service-projekt kör du Azure PowerShell som administratör och kör följande kommando:
PS C:\>New-AzureServiceProject myProject
Det här kommandot skapar en ny katalog (myProject
) som du kan lägga till webb- och arbetsroller i.
Lägga till PHP-webb- eller arbetsroller
Om du vill lägga till en PHP-webbroll i ett projekt kör du följande kommando inifrån projektets rotkatalog:
PS C:\myProject> Add-AzurePHPWebRole roleName
Använd det här kommandot för en arbetsroll:
PS C:\myProject> Add-AzurePHPWorkerRole roleName
Kommentar
Parametern roleName
är valfri. Om det utelämnas genereras rollnamnet automatiskt. Den första webbrollen som skapas blir WebRole1
, den andra blir WebRole2
, och så vidare. Den första arbetsrollen som skapas blir WorkerRole1
, den andra blir WorkerRole2
och så vidare.
Använda din egen PHP-körning
I vissa fall, i stället för att välja en inbyggd PHP-körning och konfigurera den enligt tidigare beskrivning, kanske du vill tillhandahålla din egen PHP-körning. Du kan till exempel använda samma PHP-körning i en webb- eller arbetsroll som du använder i utvecklingsmiljön. Den här processen gör det enklare att se till att programbeteendet förblir detsamma i produktionsmiljön.
Konfigurera en webbroll så att den använder din egen PHP-körning
Följ dessa steg för att konfigurera en webbroll att använda en PHP-körning som du anger:
Skapa ett Azure Service-projekt och lägg till en PHP-webbroll enligt beskrivningen tidigare i den här artikeln.
Skapa en
php
mapp ibin
mappen som finns i webbrollens rotkatalog och lägg sedan till PHP-körningen (alla binärfiler, konfigurationsfiler, undermappar osv.) iphp
mappen.(VALFRITT) Om PHP-körningen använder Microsoft Drivers för PHP för SQL Server måste du konfigurera webbrollen för att installera SQL Server Native Client 2012 när den etableras. Det gör du genom att lägga till installationsprogrammet
bin
sqlncli.msi x64 i mappen i webbrollens rotkatalog. Startskriptet som beskrivs i nästa steg kör installationsprogrammet tyst när rollen etableras. Om PHP-körningen inte använder Microsoft-drivrutiner för PHP för SQL Server kan du ta bort följande rad från skriptet som visas i nästa steg:msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Definiera en startuppgift som konfigurerar IIS (Internet Information Services) för att använda PHP-körningen för att hantera begäranden för
.php
sidor. Det gör du genom att öppnasetup_web.cmd
filen (i filen i webbrollensbin
rotkatalog) i en textredigerare och ersätta dess innehåll med följande skript:@ECHO ON cd "%~dp0" if "%EMULATED%"=="true" exit /b 0 msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES SET PHP_FULL_PATH=%~dp0php\php-cgi.exe SET NEW_PATH=%PATH%;%RoleRoot%\base\x86 %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%',maxInstances='12',idleTimeout='60000',activityTimeout='3600',requestTimeout='60000',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PATH',value='%NEW_PATH%']" /commit:apphost %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost %WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"
Lägg till dina programfiler i webbrollens rotkatalog, som blir webbserverns rotkatalog.
Publicera ditt program enligt beskrivningen i avsnittet Publicera ditt program.
Kommentar
Skriptet download.ps1
(i mappen i bin
webbrollens rotkatalog) kan tas bort när du har följt föregående steg för att använda din egen PHP-körning.
Konfigurera en arbetsroll för att använda din egen PHP-körning
Så här konfigurerar du en arbetsroll för att använda en PHP-körning som du anger:
Skapa ett Azure Service-projekt och lägg till en PHP-arbetsroll enligt beskrivningen tidigare i den här artikeln.
Skapa en
php
mapp i arbetsrollens rotkatalog och lägg sedan till PHP-körningen (alla binärfiler, konfigurationsfiler, undermappar osv.) iphp
mappen.(VALFRITT) Om PHP-körningen använder Microsoft-drivrutiner för PHP för SQL Server måste du konfigurera arbetsrollen för att installera SQL Server Native Client 2012 när den etableras. Det gör du genom att lägga till installationsprogrammet sqlncli.msi x64 i arbetsrollens rotkatalog. Startskriptet som beskrivs i nästa steg kör installationsprogrammet tyst när rollen etableras. Om PHP-körningen inte använder Microsoft-drivrutiner för PHP för SQL Server kan du ta bort följande rad från skriptet som visas i nästa steg:
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Definiera en startuppgift som lägger till den
php.exe
körbara filen i arbetsrollens PATH-miljövariabel när rollen etableras. Det gör du genom att öppnasetup_worker.cmd
filen (i arbetsrollens rotkatalog) i en textredigerare och ersätta dess innehåll med följande skript:@echo on cd "%~dp0" echo Granting permissions for Network Service to the web root directory... icacls ..\ /grant "Network Service":(OI)(CI)W if %ERRORLEVEL% neq 0 goto error echo OK if "%EMULATED%"=="true" exit /b 0 msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES setx Path "%PATH%;%~dp0php" /M if %ERRORLEVEL% neq 0 goto error echo SUCCESS exit /b 0 :error echo FAILED exit /b -1
Lägg till dina programfiler i arbetsrollens rotkatalog.
Publicera ditt program enligt beskrivningen i avsnittet Publicera ditt program.
Kör ditt program i beräknings- och lagringsemulatorerna
Azure-emulatorerna tillhandahåller en lokal miljö där du kan testa ditt Azure-program innan du distribuerar det till molnet. Det finns vissa skillnader mellan emulatorerna och Azure-miljön. Mer information om dessa skillnader finns i Använda Azure Storage-emulatorn för utveckling och testning.
Du måste ha PHP installerat lokalt för att använda beräkningsemulatorn. Beräkningsemulatorn använder din lokala PHP-installation för att köra ditt program.
Kör följande kommando från projektets rotkatalog för att köra projektet i emulatorerna:
PS C:\MyProject> Start-AzureEmulator
Följande exempelutdata liknar det du bör se:
Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started
Du kan se att programmet körs i emulatorn genom att öppna en webbläsare och bläddra till den lokala adress som visas i utdata (http://127.0.0.1:81
i exemplet som visades tidigare).
Om du vill stoppa emulatorerna kör du det här kommandot:
PS C:\MyProject> Stop-AzureEmulator
Publicera programmet
Om du vill publicera ditt program måste du först importera publiceringsinställningarna med hjälp av cmdleten Import-AzurePublishSettingsFile . Sedan kan du publicera ditt program med hjälp av cmdleten Publish-AzureServiceProject . Information om hur du loggar in finns i Installera och konfigurera Azure PowerShell.
Nästa steg
Mer information finns i PHP Developer Center.