Vytvoření rolí pracovního procesu a webu PHP

Přehled

Důležité

Služba Cloud Services (Classic) je teď pro nové zákazníky zastaralá a bude vyřazena 31. srpna 2024 pro všechny zákazníky. 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 předdefinovaný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 časově neomezené ú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 bude používat dva z nich: Azure PowerShell a emulátory Azure. Tyto dvě komponenty je možné nainstalovat prostřednictvím Instalace webové platformy 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 soubory definice služby projektu (.csdef) a konfigurace 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, jak je popsáno výše, 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í. To usnadňuje zajištění, aby aplikace ve vašem produkčním prostředí nezměnila chování.

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 tématu.

  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, budete muset nakonfigurovat webovou roli tak, aby při zřizování nainstalovala SQL Server Native Client 2012 . Uděláte to tak, že do složky v kořenovém adresáři vaší webové role přidáte instalační programbin 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. Bude to kořenový adresář webového serveru.

  6. Publikujte aplikaci, jak je popsáno v části Publikovat aplikaci níže.

Poznámka:

Skript download.ps1 (ve bin složce kořenového adresáře webové role) je možné odstranit poté, co použijete výše popsané kroky 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 tématu.

  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, budete muset nakonfigurovat svou roli pracovního procesu tak, aby při zřizování nainstalovala 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 níže.

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 to chcete lépe pochopit, přečtěte si téma Použití emulátoru úložiště Azure pro vývoj a testování.

Mějte na paměti, že pro použití emulátoru výpočetních prostředků musíte mít místně nainstalovaný PHP. Emulátor výpočetních prostředků použije místní instalaci PHP ke spuštění aplikace.

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

Zobrazí se výstup podobný tomuto:

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 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-AzurePublish Nastavení File. 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.