Tworzenie roli internetowej i procesu roboczego PHP
Omówienie
Ważne
Usługi Cloud Services (wersja klasyczna) są teraz przestarzałe dla wszystkich klientów od 1 września 2024 r. Wszystkie istniejące uruchomione wdrożenia zostaną zatrzymane i zamknięte przez firmę Microsoft, a dane zostaną przypadkowo utracone od października 2024 r. 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 JĘZYKA 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, a 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 są 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 procesu roboczego, 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 tworzy nowy katalog (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 wcześniejszym 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. Ten proces ułatwia zapewnienie, że zachowanie aplikacji pozostaje takie samo 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 artykule.
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, należy skonfigurować rolę internetową w celu zainstalowania programu SQL Server Native Client 2012 , gdy jest on aprowizować. 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, który staje się katalogem głównym serwera internetowego.
Opublikuj aplikację zgodnie z opisem w sekcji Publikowanie aplikacji.
Uwaga
Skrypt download.ps1
(w bin
folderze katalogu głównego roli sieci Web) można usunąć po wykonaniu powyższych 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 artykule.
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 , gdy jest aprowizować. 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.
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 lepiej zrozumieć te różnice, zobacz Używanie emulatora usługi Azure Storage do programowania i testowania.
Aby korzystać z emulatora obliczeniowego, musisz mieć zainstalowany język PHP lokalnie. Emulator obliczeniowy używa lokalnej instalacji php do uruchamiania aplikacji.
Aby uruchomić projekt w emulatorach, wykonaj następujące polecenie z katalogu głównego projektu:
PS C:\MyProject> Start-AzureEmulator
Następujące przykładowe dane wyjściowe są podobne do tych, które powinny zostać wyświetlone:
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 pokazanego w danych wyjściowych (http://127.0.0.1:81
w przykładowych danych wyjściowych pokazanych wcześniej).
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-AzurePublishSettingsFile . 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.