Vytvoření rolí pracovního procesu a webu PHP
Přehled
Důležité
Od 1. září 2024 je služba Cloud Services (Classic) pro všechny zákazníky zastaralá. Microsoft zastaví a vypne všechna stávající spuštěná nasazení a data se od října 2024 trvale ztratí. Nová nasazení by měla používat nový model nasazení založený na Azure Resource Manageru na Azure Cloud Services (rozšířená podpora).
V této příručce se dozvíte, jak vytvořit webové nebo pracovní role PHP ve vývojovém prostředí Windows, zvolit konkrétní verzi PHP z dostupných integrovaných verzí, změnit konfiguraci PHP, povolit rozšíření a nakonec nasadit do Azure. Popisuje také, jak nakonfigurovat webovou roli nebo roli pracovního procesu tak, aby používal modul runtime PHP (s vlastní konfigurací a rozšířeními), které zadáte.
Azure poskytuje tři výpočetní modely pro spouštění aplikací: Aplikace Azure Service, Azure Virtual Machines a Azure Cloud Services. Všechny tři modely podporují PHP. Cloudové služby, které zahrnují webové role a role pracovních procesů, poskytují platformu jako službu (PaaS). Webová role v rámci cloudové služby poskytuje vyhrazený webový server Internetová informační služba (IIS) pro hostování front-endových webových aplikací. Role pracovního procesu může spouštět asynchronní, dlouhotrvající nebo trvalé úlohy nezávislé na interakci nebo vstupu uživatele.
Další informace o těchto možnostech najdete v tématu Možnosti hostování výpočetních prostředků, které poskytuje Azure.
Stažení sady Azure SDK pro PHP
Sada Azure SDK pro PHP se skládá z několika komponent. Tento článek používá dva z nich: Azure PowerShell a emulátory Azure. Tyto dvě komponenty je možné nainstalovat prostřednictvím instalačního programu Webová platforma Microsoft. Další informace najdete v tématu Instalace a konfigurace Azure PowerShellu.
Vytvoření projektu Cloud Services
Prvním krokem při vytváření webové role PHP nebo role pracovního procesu je vytvoření projektu služby Azure. Projekt služby Azure slouží jako logický kontejner pro webové role a role pracovního procesu a obsahuje definice služby projektu (.csdef) a konfigurační soubory služby (.cscfg ).
Pokud chcete vytvořit nový projekt služby Azure, spusťte Azure PowerShell jako správce a spusťte následující příkaz:
PS C:\>New-AzureServiceProject myProject
Tento příkaz vytvoří nový adresář (myProject
), do kterého můžete přidat webové role a role pracovního procesu.
Přidání webových nebo pracovních rolí PHP
Pokud chcete do projektu přidat webovou roli PHP, spusťte v kořenovém adresáři projektu následující příkaz:
PS C:\myProject> Add-AzurePHPWebRole roleName
Pro roli pracovního procesu použijte tento příkaz:
PS C:\myProject> Add-AzurePHPWorkerRole roleName
Poznámka:
Parametr roleName
je volitelný. Pokud tento název vynecháte, automaticky se vygeneruje název role. První vytvořená webová role bude WebRole1
, druhá bude WebRole2
atd. První vytvořená role pracovního procesu bude WorkerRole1
, druhá bude WorkerRole2
atd.
Použití vlastního modulu runtime PHP
V některých případech místo výběru integrovaného modulu runtime PHP a jeho konfigurace podle předchozího popisu můžete chtít poskytnout vlastní modul runtime PHP. Můžete například použít stejný modul runtime PHP ve webové nebo pracovní roli, kterou používáte ve vývojovém prostředí. Tento proces usnadňuje zajištění toho, aby chování aplikace v produkčním prostředí zůstalo stejné.
Konfigurace webové role pro použití vlastního modulu runtime PHP
Pokud chcete nakonfigurovat webovou roli tak, aby používala modul runtime PHP, který zadáte, postupujte takto:
Vytvořte projekt služby Azure a přidejte webovou roli PHP, jak je popsáno výše v tomto článku.
php
Ve složce, která je v kořenovém adresáři vaší webové role, vytvořte složkubin
a pak dophp
této složky přidejte modul runtime PHP (všechny binární soubory, konfigurační soubory, podsložky atd.).(VOLITELNÉ) Pokud modul runtime PHP používá ovladače Microsoftu pro PHP pro SQL Server, musíte nakonfigurovat webovou roli pro instalaci SQL Server Native Client 2012 , když zřídí. Uděláte to tak, že do složky v kořenovém adresáři vaší webové role přidáte instalační program
bin
sqlncli.msi x64. Spouštěcí skript popsaný v dalším kroku bezobslužně spustí instalační program při zřízení role. Pokud modul runtime PHP nepoužívá ovladače Microsoftu pro PHP pro SQL Server, můžete z skriptu uvedeného v dalším kroku odebrat následující řádek:msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Definujte spouštěcí úlohu, která konfiguruje Internetová informační služba (IIS) tak, aby ke zpracování požadavků na
.php
stránky používal modul runtime PHP. Uděláte to tak, že otevřetesetup_web.cmd
soubor (vbin
souboru kořenového adresáře vaší webové role) v textovém editoru a nahradíte jeho obsah následujícím skriptem:@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"
Přidejte soubory aplikace do kořenového adresáře vaší webové role, který se stane kořenovým adresářem webového serveru.
Publikujte aplikaci, jak je popsáno v části Publikovat aplikaci.
Poznámka:
Skript download.ps1
(ve bin
složce kořenového adresáře webové role) je možné odstranit po provedení předchozích kroků pro použití vlastního modulu runtime PHP.
Konfigurace role pracovního procesu pro použití vlastního modulu runtime PHP
Pokud chcete nakonfigurovat roli pracovního procesu tak, aby používala modul runtime PHP, který zadáte, postupujte takto:
Vytvořte projekt služby Azure a přidejte roli pracovního procesu PHP, jak je popsáno výše v tomto článku.
Vytvořte složku v kořenovém
php
adresáři role pracovního procesu a pak do složky přidejte modul runtime PHP (všechny binární soubory, konfigurační soubory, podsložky atd.).php
(VOLITELNÉ) Pokud modul runtime PHP používá ovladače Microsoftu pro PHP pro SQL Server, musíte nakonfigurovat svou roli pracovního procesu tak, aby při zřídí instalaci SQL Server Native Client 2012 . Uděláte to tak, že do kořenového adresáře role pracovního procesu přidáte instalační program sqlncli.msi x64. Spouštěcí skript popsaný v dalším kroku bezobslužně spustí instalační program při zřízení role. Pokud modul runtime PHP nepoužívá ovladače Microsoftu pro PHP pro SQL Server, můžete z skriptu uvedeného v dalším kroku odebrat následující řádek:
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Definujte spouštěcí úlohu, která přidá spustitelný
php.exe
soubor do proměnné prostředí PATH role pracovního procesu při zřízení role. Uděláte to tak, že otevřetesetup_worker.cmd
soubor (v kořenovém adresáři role pracovního procesu) v textovém editoru a nahradíte jeho obsah následujícím skriptem:@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
Přidejte soubory aplikace do kořenového adresáře role pracovního procesu.
Publikujte aplikaci, jak je popsáno v části Publikovat aplikaci.
Spuštění aplikace v emulátorech výpočetních prostředků a úložiště
Emulátory Azure poskytují místní prostředí, ve kterém můžete otestovat aplikaci Azure před nasazením do cloudu. Mezi emulátory a prostředím Azure existují určité rozdíly. Pokud chcete tyto rozdíly lépe pochopit, přečtěte si téma Použití emulátoru úložiště Azure pro vývoj a testování.
Abyste mohli používat emulátor výpočetních prostředků, musíte mít místně nainstalovaný PHP. Emulátor výpočetních prostředků používá k spuštění aplikace místní instalaci PHP.
Pokud chcete projekt spustit v emulátorech, spusťte z kořenového adresáře projektu následující příkaz:
PS C:\MyProject> Start-AzureEmulator
Následující ukázkový výstup je podobný tomu, co byste měli vidět:
Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started
Aplikaci spuštěnou v emulátoru můžete zobrazit tak, že otevřete webový prohlížeč a přejdete na místní adresu zobrazenou ve výstupu (http://127.0.0.1:81
v ukázkovém výstupu uvedeném výše).
Pokud chcete emulátory zastavit, spusťte tento příkaz:
PS C:\MyProject> Stop-AzureEmulator
Publikování aplikace
Pokud chcete publikovat aplikaci, musíte nejprve importovat nastavení publikování pomocí rutiny Import-AzurePublishSettingsFile . Pak můžete aplikaci publikovat pomocí rutiny Publish-AzureServiceProject . Informace o přihlášení najdete v tématu Instalace a konfigurace Azure PowerShellu.
Další kroky
Další informace najdete v Centru pro vývojáře PHP.