Sdílet prostřednictvím


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 WebRole2atd. První vytvořená role pracovního procesu bude WorkerRole1, druhá bude WorkerRole2atd.

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:

  1. Vytvořte projekt služby Azure a přidejte webovou roli PHP, jak je popsáno výše v tomto článku.

  2. php Ve složce, která je v kořenovém adresáři vaší webové role, vytvořte složku bin a pak do php této složky přidejte modul runtime PHP (všechny binární soubory, konfigurační soubory, podsložky atd.).

  3. (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
    
  4. 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řete setup_web.cmd soubor (v bin 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"
    
  5. Přidejte soubory aplikace do kořenového adresáře vaší webové role, který se stane kořenovým adresářem webového serveru.

  6. 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:

  1. Vytvořte projekt služby Azure a přidejte roli pracovního procesu PHP, jak je popsáno výše v tomto článku.

  2. 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

  3. (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
    
  4. 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řete setup_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
    
  5. Přidejte soubory aplikace do kořenového adresáře role pracovního procesu.

  6. 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.