Tworzenie roli internetowej i procesu roboczego PHP
Omówienie
Ważne
Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla nowych klientów i zostaną wycofane 31 sierpnia 2024 r. dla wszystkich klientów. Nowe wdrożenia powinny używać nowego modelu wdrażania opartego na usłudze Azure Resource Manager w usługach Azure Cloud Services (wsparcie dodatkowe).
W tym przewodniku pokazano, jak utworzyć role sieci Web lub procesu roboczego PHP w środowisku deweloperów systemu Windows, wybrać określoną wersję języka PHP z dostępnych wersji "wbudowanych", zmienić konfigurację języka PHP, włączyć rozszerzenia i na koniec wdrożyć na platformie Azure. W tym artykule opisano również sposób konfigurowania roli sieci Web lub procesu roboczego w celu używania środowiska uruchomieniowego PHP (z konfiguracją niestandardową i rozszerzeniami), które udostępniasz.
Platforma Azure udostępnia trzy modele obliczeniowe do uruchamiania aplikacji: aplikacja systemu Azure Service, Azure Virtual Machines i Azure Cloud Services. Wszystkie trzy modele obsługują język PHP. Usługi w chmurze, które obejmują role sieci Web i procesu roboczego, udostępniają platformę jako usługę (PaaS). W ramach usługi w chmurze rola sieci Web zapewnia dedykowany serwer internetowy usług Internet Information Services (IIS) do hostowania aplikacji internetowych frontonu. Rola procesu roboczego może uruchamiać zadania asynchroniczne, długotrwałe lub bezterminowe niezależnie od interakcji lub danych wejściowych użytkownika.
Aby uzyskać więcej informacji na temat tych opcji, zobacz Compute hosting options provided by Azure (Opcje hostingu obliczeniowego udostępniane przez platformę Azure).
Pobierz zestaw Azure SDK dla języka PHP
Zestaw Azure SDK dla języka PHP składa się z kilku składników. W tym artykule będą używane dwa z nich: Program Azure PowerShell i emulatory platformy Azure. Te dwa składniki można zainstalować za pośrednictwem Instalator platformy Microsoft Web. Aby uzyskać więcej informacji, zobacz Instalowanie i konfigurowanie programu Azure PowerShell.
Tworzenie projektu usług Cloud Services
Pierwszym krokiem tworzenia roli internetowej lub procesu roboczego w języku PHP jest utworzenie projektu usługi platformy Azure. projekt usługi platformy Azure służy jako kontener logiczny dla ról sieci Web i procesów roboczych, który zawiera definicję usługi projektu (csdef) i pliki konfiguracji usługi (cscfg).
Aby utworzyć nowy projekt usługi platformy Azure, uruchom program Azure PowerShell jako administrator i wykonaj następujące polecenie:
PS C:\>New-AzureServiceProject myProject
To polecenie spowoduje utworzenie nowego katalogu (myProject
), do którego można dodać role sieci Web i procesu roboczego.
Dodawanie ról sieci Web lub procesu roboczego w języku PHP
Aby dodać rolę internetową PHP do projektu, uruchom następujące polecenie z katalogu głównego projektu:
PS C:\myProject> Add-AzurePHPWebRole roleName
W przypadku roli procesu roboczego użyj następującego polecenia:
PS C:\myProject> Add-AzurePHPWorkerRole roleName
Uwaga
Parametr roleName
jest opcjonalny. Jeśli zostanie pominięty, nazwa roli zostanie wygenerowana automatycznie. Pierwszą utworzoną rolą internetową będzie WebRole1
, druga będzie mieć WebRole2
wartość i tak dalej. Pierwszą utworzoną rolą procesu roboczego będzie WorkerRole1
, druga będzie mieć WorkerRole2
wartość i tak dalej.
Korzystanie z własnego środowiska uruchomieniowego PHP
W niektórych przypadkach zamiast wybierać wbudowane środowisko uruchomieniowe PHP i konfigurować je zgodnie z powyższym opisem, możesz udostępnić własne środowisko uruchomieniowe PHP. Na przykład możesz użyć tego samego środowiska uruchomieniowego PHP w roli sieci Web lub procesu roboczego, którego używasz w środowisku projektowym. Ułatwia to zapewnienie, że aplikacja nie zmieni zachowania w środowisku produkcyjnym.
Konfigurowanie roli internetowej do używania własnego środowiska uruchomieniowego PHP
Aby skonfigurować rolę internetową do używania podanego środowiska uruchomieniowego PHP, wykonaj następujące kroki:
Utwórz projekt usługi platformy Azure i dodaj rolę internetową PHP zgodnie z opisem w tym temacie.
php
Utwórz folder wbin
folderze, który znajduje się w katalogu głównym roli sieci Web, a następnie dodaj środowisko uruchomieniowe PHP (wszystkie pliki binarne, pliki konfiguracji, podfoldery itp.) dophp
folderu.(OPCJONALNIE) Jeśli środowisko uruchomieniowe PHP używa sterowników firmy Microsoft dla języka PHP dla programu SQL Server, podczas aprowizacji należy skonfigurować rolę internetową, aby zainstalować klienta SQL Server Native Client 2012 . W tym celu dodaj instalator sqlncli.msi x64 do
bin
folderu w katalogu głównym roli sieci Web. Skrypt uruchamiania opisany w następnym kroku będzie w trybie dyskretnym uruchamiał instalatora po aprowizacji roli. Jeśli środowisko uruchomieniowe PHP nie używa sterowników firmy Microsoft dla języka PHP dla programu SQL Server, możesz usunąć następujący wiersz ze skryptu pokazanego w następnym kroku:msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Zdefiniuj zadanie uruchamiania, które konfiguruje usługi Internet Information Services (IIS) do obsługi żądań stron
.php
przy użyciu środowiska uruchomieniowego PHP. W tym celu otwórzsetup_web.cmd
plik (w pliku katalogu głównym roli sieci Web) wbin
edytorze tekstów i zastąp jego zawartość następującym skryptem:@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"
Dodaj pliki aplikacji do katalogu głównego roli sieci Web. Będzie to katalog główny serwera internetowego.
Opublikuj aplikację zgodnie z opisem w sekcji Publikowanie aplikacji poniżej.
Uwaga
Skrypt download.ps1
(w bin
folderze katalogu głównego roli sieci Web) można usunąć po wykonaniu opisanych powyżej kroków dotyczących używania własnego środowiska uruchomieniowego PHP.
Konfigurowanie roli procesu roboczego do używania własnego środowiska uruchomieniowego PHP
Aby skonfigurować rolę procesu roboczego do używania podanego środowiska uruchomieniowego PHP, wykonaj następujące kroki:
Utwórz projekt usługi platformy Azure i dodaj rolę procesu roboczego PHP zgodnie z opisem w tym temacie.
php
Utwórz folder w katalogu głównym roli procesu roboczego, a następnie dodaj środowisko uruchomieniowe PHP (wszystkie pliki binarne, pliki konfiguracji, podfoldery itp.) dophp
folderu.(OPCJONALNIE) Jeśli środowisko uruchomieniowe PHP używa sterowników firmy Microsoft dla języka PHP dla programu SQL Server, należy skonfigurować rolę procesu roboczego, aby zainstalować klienta SQL Server Native Client 2012 podczas aprowizowania. W tym celu dodaj instalator sqlncli.msi x64 do katalogu głównego roli procesu roboczego. Skrypt uruchamiania opisany w następnym kroku będzie w trybie dyskretnym uruchamiał instalatora po aprowizacji roli. Jeśli środowisko uruchomieniowe PHP nie używa sterowników firmy Microsoft dla języka PHP dla programu SQL Server, możesz usunąć następujący wiersz ze skryptu pokazanego w następnym kroku:
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Zdefiniuj zadanie uruchamiania, które dodaje plik
php.exe
wykonywalny do zmiennej środowiskowej PATH roli procesu roboczego po aprowizacji roli. W tym celu otwórzsetup_worker.cmd
plik (w katalogu głównym roli procesu roboczego) w edytorze tekstów i zastąp jego zawartość następującym skryptem:@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
Dodaj pliki aplikacji do katalogu głównego roli procesu roboczego.
Opublikuj aplikację zgodnie z opisem w sekcji Publikowanie aplikacji poniżej.
Uruchamianie aplikacji w emulatorach obliczeniowych i magazynowych
Emulatory platformy Azure udostępniają środowisko lokalne, w którym można przetestować aplikację platformy Azure przed wdrożeniem jej w chmurze. Istnieją pewne różnice między emulatorami a środowiskiem platformy Azure. Aby to lepiej zrozumieć, zobacz Używanie emulatora usługi Azure Storage do programowania i testowania.
Należy pamiętać, że do korzystania z emulatora obliczeniowego musi być zainstalowany lokalnie język PHP. Emulator obliczeń użyje lokalnej instalacji PHP do uruchomienia aplikacji.
Aby uruchomić projekt w emulatorach, wykonaj następujące polecenie z katalogu głównego projektu:
PS C:\MyProject> Start-AzureEmulator
Zostaną wyświetlone dane wyjściowe podobne do następujących:
Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started
Aplikację uruchomioną w emulatorze można wyświetlić, otwierając przeglądarkę internetową i przechodząc do adresu lokalnego wyświetlanego w danych wyjściowych (http://127.0.0.1:81
w przykładowych danych wyjściowych powyżej).
Aby zatrzymać emulatory, wykonaj następujące polecenie:
PS C:\MyProject> Stop-AzureEmulator
Publikowanie aplikacji
Aby opublikować aplikację, należy najpierw zaimportować ustawienia publikowania przy użyciu polecenia cmdlet Import-AzurePublish Ustawienia File. Następnie możesz opublikować aplikację przy użyciu polecenia cmdlet Publish-AzureServiceProject . Aby uzyskać informacje na temat logowania, zobacz How to install and configure Azure PowerShell (Jak zainstalować i skonfigurować program Azure PowerShell).
Następne kroki
Aby uzyskać więcej informacji, zobacz Centrum deweloperów JĘZYKA PHP.