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 WebRole1
webes szerepkör a második lesz WebRole2
, és így tovább. Az első létrehozott WorkerRole1
feldolgozó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:
Hozzon létre egy Azure Service-projektet, és adjon hozzá egy PHP-webszerepkört a jelen témakörben korábban ismertetett módon.
Hozzon létre egy
php
mappát abin
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.) aphp
mappához.(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
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 asetup_web.cmd
fájlt (abin
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"
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.
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:
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.
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.) aphp
mappához.(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
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 asetup_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
Adja hozzá az alkalmazásfájlokat a feldolgozói szerepkör gyökérkönyvtárához.
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.