Webes és feldolgozói PHP-szerepkörök létrehozása

Áttekintés

Fontos

A Cloud Services (klasszikus) mostantól elavult az új ügyfelek számára, és 2024. augusztus 31-én megszűnik minden ügyfél számára. Az új üzemelő példányoknak az Azure Cloud Services új Azure Resource Manager-alapú üzemi modelljét (kiterjesztett támogatás) kell használniuk.

Ez az útmutató bemutatja, hogyan hozhat létre PHP webes vagy feldolgozói szerepköröket Windows fejlesztői környezetben, hogyan választhatja ki a PHP egy adott verzióját az elérhető "beépített" verziókból, módosíthatja a PHP-konfigurációt, engedélyezheti a bővítményeket, és végül üzembe helyezheti az Azure-ban. Azt is ismerteti, hogyan konfigurálhat web- vagy feldolgozói szerepkört az Ön által megadott PHP-futtatókörnyezet használatára (egyéni konfigurációval és bővítményekkel).

Az Azure három számítási modellt biztosít az alkalmazások futtatásához: Azure-alkalmazás Service, Azure Virtual Machines és Azure Cloud Services. Mindhárom modell támogatja a PHP-t. A webes és feldolgozói szerepköröket tartalmazó Cloud Services szolgáltatásként (PaaS) nyújt platformot. A felhőszolgáltatáson belül egy webes szerepkör dedikált Internet Information Services-webkiszolgálót (IIS) biztosít az előtérbeli webalkalmazások üzemeltetéséhez. A feldolgozói szerepkörök a felhasználói beavatkozástól vagy bemenetétől függetlenül aszinkron, hosszú ideig futó vagy állandó feladatokat futtathatnak.

További információ ezekről a lehetőségekről: Az Azure által biztosított számítási üzemeltetési lehetőségek.

A PHP-hoz készült Azure SDK letöltése

A PHP-hez készült Azure SDK több összetevőből áll. Ez a cikk kettőt fog használni: az Azure PowerShellt és az Azure emulátorokat. Ez a két összetevő a Microsoft Web Platform Installer használatával telepíthető. További információt az Azure PowerShell telepítésével és konfigurálásával foglalkozó témakörben talál.

Cloud Services-projekt létrehozása

A PHP-web- vagy feldolgozói szerepkör létrehozásának első lépése egy Azure Service-projekt létrehozása. Az Azure Service-projekt a webes és feldolgozói szerepkörök logikai tárolójaként szolgál, és tartalmazza a projekt szolgáltatásdefiníciós (.csdef) és szolgáltatáskonfigurációs (.cscfg) fájljait.

Új Azure Service-projekt létrehozásához futtassa az Azure PowerShellt rendszergazdaként, és hajtsa végre a következő parancsot:

PS C:\>New-AzureServiceProject myProject

Ez a parancs létrehoz egy új könyvtárat (myProject), amelyhez webes és feldolgozói szerepköröket adhat hozzá.

PHP webes vagy feldolgozói szerepkörök hozzáadása

HA PHP webes szerepkört szeretne hozzáadni egy projekthez, futtassa a következő parancsot a projekt gyökérkönyvtárából:

PS C:\myProject> Add-AzurePHPWebRole roleName

Feldolgozói szerepkör esetén használja ezt a parancsot:

PS C:\myProject> Add-AzurePHPWorkerRole roleName

Feljegyzés

A roleName paraméter megadása nem kötelező. Ha nincs megadva, a rendszer automatikusan létrehozza a szerepkör nevét. Az első létrehozott WebRole1webes szerepkör a második lesz WebRole2, és így tovább. Az első létrehozott WorkerRole1feldolgozói szerepkör a második lesz WorkerRole2, és így tovább.

Saját PHP-futtatókörnyezet használata

Bizonyos esetekben ahelyett, hogy kiválasztanál egy beépített PHP-futtatókörnyezetet, és a fent leírt módon konfigurálod, érdemes lehet saját PHP-futtatókörnyezetet biztosítani. Használhatja például ugyanazt a PHP-futtatókörnyezetet egy webes vagy feldolgozói szerepkörben, amelyet a fejlesztési környezetben használ. Ez megkönnyíti annak biztosítását, hogy az alkalmazás ne változtassa meg a viselkedést az éles környezetben.

Webes szerepkör konfigurálása saját PHP-futtatókörnyezet használatára

Ha webszerepkört szeretne konfigurálni a megadott PHP-futtatókörnyezet használatára, kövesse az alábbi lépéseket:

  1. Hozzon létre egy Azure Service-projektet, és adjon hozzá egy PHP-webszerepkört a jelen témakörben korábban ismertetett módon.

  2. Hozzon létre egy php mappát a bin webszerepkör gyökérkönyvtárában található mappában, majd adja hozzá a PHP-futtatókörnyezetet (minden bináris fájlt, konfigurációs fájlt, almappát stb.) a php mappához.

  3. (NEM KÖTELEZŐ) Ha a PHP-futtatókörnyezet a Microsoft DRIVERS for PHP for SQL Servert használja, a kiépítéskor konfigurálnia kell a webes szerepkört az SQL Server natív ügyfél 2012 telepítéséhez. Ehhez vegye fel a sqlncli.msi x64 telepítőt a bin webes szerepkör gyökérkönyvtárában lévő mappába. A következő lépésben leírt indítási szkript csendben futtatja a telepítőt a szerepkör kiépítésekor. Ha a PHP-futtatókörnyezet nem használja az SQL Serverhez készült MICROSOFT-illesztőprogramokat, a következő lépésben látható szkriptből eltávolíthatja a következő sort:

    msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
    
  4. Definiáljon egy indítási feladatot, amely konfigurálja az Internet Information Servicest (IIS) a PHP-futtatókörnyezet használatára a lapok kéréseinek .php kezeléséhez. Ehhez nyissa meg a setup_web.cmd fájlt (a bin webes szerepkör gyökérkönyvtárának fájljában) egy szövegszerkesztőben, és cserélje le annak tartalmát a következő szkriptre:

    @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. Adja hozzá az alkalmazásfájlokat a webes szerepkör gyökérkönyvtárához. Ez lesz a webkiszolgáló gyökérkönyvtára.

  6. Az alkalmazás közzététele az alábbi Közzététel szakaszban leírtak szerint.

Feljegyzés

A download.ps1 szkript (a bin webes szerepkör gyökérkönyvtárának mappájában) törölhető, miután követte a fenti lépéseket a saját PHP-futtatókörnyezetének használatához.

Feldolgozói szerepkör konfigurálása saját PHP-futtatókörnyezet használatára

Ha egy feldolgozói szerepkört az Ön által megadott PHP-futtatókörnyezet használatára szeretne konfigurálni, kövesse az alábbi lépéseket:

  1. Hozzon létre egy Azure Service-projektet, és adjon hozzá egy PHP-feldolgozói szerepkört a jelen témakörben korábban ismertetett módon.

  2. Hozzon létre egy php mappát a feldolgozói szerepkör gyökérkönyvtárában, majd adja hozzá a PHP-futtatókörnyezetet (minden bináris fájlt, konfigurációs fájlt, almappát stb.) a php mappához.

  3. (NEM KÖTELEZŐ) Ha a PHP-futtatókörnyezet a Microsoft Drivers for PHP for SQL Servert használja, a kiépítéskor konfigurálnia kell a feldolgozói szerepkört az SQL Server Native Client 2012 telepítéséhez. Ehhez adja hozzá az sqlncli.msi x64-telepítőt a feldolgozói szerepkör gyökérkönyvtárához. A következő lépésben leírt indítási szkript csendben futtatja a telepítőt a szerepkör kiépítésekor. Ha a PHP-futtatókörnyezet nem használja az SQL Serverhez készült MICROSOFT-illesztőprogramokat, a következő lépésben látható szkriptből eltávolíthatja a következő sort:

    msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
    
  4. Adjon meg egy indítási feladatot, amely hozzáadja a php.exe végrehajthatót a feldolgozói szerepkör PATH környezeti változójához a szerepkör kiépítésekor. Ehhez nyissa meg a setup_worker.cmd fájlt (a feldolgozói szerepkör gyökérkönyvtárában) egy szövegszerkesztőben, és cserélje le a tartalmát a következő szkriptre:

    @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. Adja hozzá az alkalmazásfájlokat a feldolgozói szerepkör gyökérkönyvtárához.

  6. Az alkalmazás közzététele az alábbi Közzététel szakaszban leírtak szerint.

Az alkalmazás futtatása a számítási és tárolási emulátorokban

Az Azure emulátorai egy helyi környezetet biztosítanak, amelyben tesztelheti az Azure-alkalmazást, mielőtt üzembe helyezené a felhőben. Az emulátorok és az Azure-környezet között van néhány különbség. Ennek jobb megértéséhez lásd : Az Azure Storage Emulator használata fejlesztéshez és teszteléshez.

Vegye figyelembe, hogy a számítási emulátor használatához helyileg kell telepítenie a PHP-t. A számítási emulátor a helyi PHP-telepítést fogja használni az alkalmazás futtatásához.

A projekt emulátorokban való futtatásához hajtsa végre a következő parancsot a projekt gyökérkönyvtárából:

PS C:\MyProject> Start-AzureEmulator

A következőhöz hasonló kimenet jelenik meg:

Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started

Az alkalmazás az emulátorban fut, ha megnyit egy webböngészőt, és a kimenetbenhttp://127.0.0.1:81 (a fenti példakimenetben) látható helyi címre tallózik.

Az emulátorok leállításához hajtsa végre a következő parancsot:

PS C:\MyProject> Stop-AzureEmulator

Az alkalmazás közzététele

Az alkalmazás közzétételéhez először importálnia kell a közzétételi beállításokat az Import-AzurePublish Gépház File parancsmaggal. Ezután közzéteheti az alkalmazást a Publish-AzureServiceProject parancsmaggal. A bejelentkezésről további információt az Azure PowerShell telepítése és konfigurálása című témakörben talál.

Következő lépések

További információkért tekintse meg a PHP Fejlesztői központot.