Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
Wichtig
Cloud Services (klassisch) ist jetzt ab dem 1. September 2024 für alle Kunden veraltet. Alle vorhandenen ausgeführten Bereitstellungen werden beendet und von Microsoft heruntergefahren, und die Daten sind ab Oktober 2024 dauerhaft verloren. In neuen Bereitstellungen sollte das neue auf Azure Resource Manager basierende Bereitstellungsmodell für Azure Cloud Services (erweiterter Support) verwendet werden.
In diesem Leitfaden erfahren Sie, wie Sie PHP-Web- oder Workerrollen in einer Windows-Entwicklungsumgebung erstellen, eine bestimmte Version von PHP aus den "integrierten" verfügbaren Versionen auswählen, die PHP-Konfiguration ändern, Erweiterungen aktivieren und diese schließlich in Azure bereitstellen. Es wird zudem beschrieben, wie Sie eine Web- oder Workerrolle für die Nutzung einer PHP-Laufzeit konfigurieren (mit benutzerdefinierter Konfiguration und Erweiterungen), die Sie bereitstellen.
Azure bietet drei Computemodelle für das Ausführen von Anwendungen: Azure App Service, Azure Virtual Machines und Azure Cloud Services. Alle drei Modell unterstützen PHP. Cloud-Dienste, die Web- und Workerrollen enthalten, bieten Plattform as a Service (PaaS). In einem Clouddienst stellt eine Webrolle einen dedizierten Internet Information Services (IIS)-Webserver zum Hosten von Front-End-Webanwendungen bereit. Eine Workerrolle kann asynchrone, langfristige oder fortwährende Aufgaben ausführen, die unabhängig von einer Benutzerinteraktion oder -eingabe sind.
Weitere Informationen zu diesen Optionen finden Sie unter Computehostingoptionen in Azure.
Herunterladen des Azure SDK für PHP
Das Azure SDK für PHP besteht aus verschiedenen Komponenten. In diesem Artikel werden zwei Komponenten verwendet: Azure PowerShell und die Azure-Emulatoren. Diese beiden Komponenten können über den Microsoft-Webplattform-Installer installiert werden. Weitere Informationen finden Sie unter Installieren und Konfigurieren von Azure PowerShell.
Erstellen eines Cloud-Dienst-Projekts
Der erste Schritt bei der Erstellung einer PHP-Web- oder -Workerrolle ist die Erstellung eines Azure-Dienstprojekts. Ein Azure-Dienstprojekt dient als logischer Container für Web- und Workerrollen und enthält das Azure-Dienstdefinitionsschema (CSDEF-Datei) und das Azure-Dienstkonfigurationsschema (CSCFG-Datei) des Projekts.
Führen Sie Azure PowerShell als Administrator sowie folgenden Befehl aus, um ein neues Azure-Dienstprojekt zu erstellen:
PS C:\>New-AzureServiceProject myProject
Durch diesen Befehl wird ein neues Verzeichnis (myProject) erstellt, dem Sie Web- und Workerrollen hinzufügen können.
Hinzufügen von PHP-Web- und Workerrollen
Führen Sie folgenden Befehl im Stammverzeichnis des Projekts aus, um eine PHP-Webrolle zu einem Projekt hinzuzufügen:
PS C:\myProject> Add-AzurePHPWebRole roleName
Für eine Worker-Rolle verwenden Sie diesen Befehl:
PS C:\myProject> Add-AzurePHPWorkerRole roleName
Hinweis
Der Parameter roleName ist optional. Wenn er nicht angegeben wird, wird der Rollenname automatisch generiert. Die erste erstellte Webrolle heißt WebRole1, die zweite WebRole2 usw. Die erste erstellte Workerrolle heißt WorkerRole1, die zweite WorkerRole2 usw.
Verwenden Ihrer eigenen PHP-Laufzeit
In einigen Fällen möchten Sie evtl. eine eigene PHP-Laufzeit angeben, anstatt eine integrierte PHP-Laufzeit auszuwählen und diese wie vorher beschrieben zu konfigurieren. Sie können beispielsweise dieselbe PHP-Laufzeit in einer Web- oder Workerrolle verwenden, die Sie auch in Ihrer Entwicklungsumgebung verwenden. Dieser Prozess erleichtert die Sicherstellung, dass das Anwendungsverhalten in Ihrer Produktionsumgebung gleich bleibt.
Konfigurieren einer Webrolle für die Verwendung Ihrer eigenen PHP-Laufzeit
Führen Sie die folgenden Schritte aus, um eine Webrolle für die Verwendung einer von Ihnen angegebenen PHP-Laufzeit zu konfigurieren.
Erstellen Sie ein Azure-Dienstprojekt, und fügen Sie eine PHP-Webrolle hinzu, wie weiter oben in diesem Artikel beschrieben.
Erstellen Sie einen Ordner
phpim Ordnerbin, der sich im Stammverzeichnis der Webrolle befindet, und fügen Sie dann die PHP-Laufzeit (alle Binärdateien, Konfigurationsdateien, Unterordner usw.) dem Ordnerphphinzu.(Optional) Wenn Ihre PHP-Laufzeitumgebung Microsoft-Treiber für PHP für SQL Server verwendet, müssen Sie Ihre Webrolle so konfigurieren, dass der SQL Server Native Client 2012 bei der Bereitstellung installiert wird. Fügen Sie hierzu den sqlncli.msi x64-Installer dem Ordner
binim Stammverzeichnis der Webrolle hinzu. Das im nächsten Schritt beschriebene Startskript wird das Installationsprogramm lautlos ausführen, wenn die Rolle bereitgestellt wird. Wenn Ihre PHP-Laufzeit nicht Microsoft-Treiber für PHP für SQL Server verwendet, können Sie folgende Zeile aus dem im nächsten Schritt gezeigten Skript entfernen:msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YESDefinieren Sie eine Startaufgabe, die Internet Information Services (IIS) für die Verwendung Ihrer PHP-Runtime konfiguriert, um Anforderungen für
.php-Seiten zu behandeln. Öffnen Sie hierzu die Dateisetup_web.cmd(in der Dateibindes Stammverzeichnisses Ihrer Webrolle) in einem Texteditor, und ersetzen Sie den Inhalt durch folgendes Skript:@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"Fügen Sie Ihre Anwendungsdateien zum Stammverzeichnis Ihrer Webrolle hinzu, das zum Stammverzeichnis des Webservers wird.
Veröffentlichen Sie die Anwendung entsprechend der Beschreibung im Abschnitt Veröffentlichen der Anwendung.
Hinweis
Das Skript download.ps1 (im Ordner bin des Stammverzeichnisses der Webrolle) kann gelöscht werden, nachdem Sie die oben beschriebenen Schritte für die Verwendung Ihrer eigenen PHP-Laufzeit ausgeführt haben.
Konfigurieren einer Worker-Rolle für die Verwendung Ihrer eigenen PHP-Runtime-Umgebung
Führen Sie die folgenden Schritte aus, um eine Workerrolle für die Verwendung einer von Ihnen angegebenen PHP-Laufzeit zu konfigurieren.
Erstellen Sie ein Azure-Dienstprojekt, und fügen Sie eine PHP-Workerrolle hinzu, wie weiter oben in diesem Artikel beschrieben.
Erstellen Sie einen Ordner namens
phpim Stammverzeichnis der Workerrolle, und fügen Sie dann Ihre PHP-Laufzeit (alle Binärdateien, Konfigurationsdateien, Unterordner usw.) dem Ordnerphphinzu.(Optional) Wenn Ihre PHP-Runtime die Microsoft-Treiber für PHP für SQL Server verwendet, müssen Sie bei der Bereitstellung Ihre Worker-Aufgabe so konfigurieren, dass der SQL Server Native Client 2012 installiert wird. Fügen Sie dazu den sqlncli.msi x64-Installer dem Stammverzeichnis der Workerrolle hinzu. Das im nächsten Schritt beschriebene Startskript wird das Installationsprogramm still und heimlich ausführen, wenn die Rolle bereitgestellt wird. Wenn Ihre PHP-Laufzeit nicht Microsoft-Treiber für PHP für SQL Server verwendet, können Sie folgende Zeile aus dem im nächsten Schritt gezeigten Skript entfernen:
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YESDefinieren Sie eine Startaufgabe, die Ihr
php.exe-Ausführungsprogramm bei der Bereitstellung der Rolle zur PATH-Umgebungsvariable der Workerrolle hinzufügt. Öffnen Sie dazu die Dateisetup_worker.cmd(im Stammverzeichnis der Workerrolle) in einem Texteditor, und ersetzen Sie den Inhalt durch folgendes Skript:@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 -1Fügen Sie die Anwendungsdateien zum Stammverzeichnis Ihrer Worker-Rolle hinzu.
Veröffentlichen Sie die Anwendung entsprechend der Beschreibung im Abschnitt Veröffentlichen der Anwendung.
Ausführen der Anwendung in den Server- und Speicheremulatoren
Die Azure-Emulatoren bieten eine lokale Umgebung, in der Sie Ihre Azure-Anwendung testen können, bevor Sie sie in der Cloud bereitstellen. Es gibt einige Unterschiede zwischen den Emulatoren und der Azure-Umgebung. Zum besseren Verständnis dieser Unterschiede finden Sie weitere Informationen unter Einsatz des Azure-Speicheremulators für Entwicklung und Tests.
PHP muss lokal installiert sein, um den Serveremulator nutzen zu können. Der Serveremulator verwendet Ihre lokale PHP-Installation, um die Anwendung auszuführen.
Führen Sie folgenden Befehl im Stammverzeichnis des Projekts aus, um das Projekt in den Emulatoren auszuführen:
PS C:\MyProject> Start-AzureEmulator
Die folgende Beispielausgabe ähnelt dem, was Sie sehen sollten:
Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started
Wenn Sie einen Webbrowser öffnen und zur lokalen Adresse in der Ausgabe (http://127.0.0.1:81 in der vorher gezeigten Beispielausgabe) navigieren, können Sie im Emulator sehen, wie die Anwendung ausgeführt wird.
Führen Sie folgenden Befehl aus, um die Emulatoren zu stoppen:
PS C:\MyProject> Stop-AzureEmulator
Veröffentlichen der Anwendung
Um die Anwendung zu veröffentlichen, müssen Sie zunächst die Veröffentlichungseinstellungen mithilfe des Cmdlets Import-AzurePublishSettingsFile importieren. Anschließend können Sie die Anwendung mithilfe des Cmdlets Publish-AzureServiceProject veröffentlichen. Informationen zum Anmelden finden Sie unter Installieren und Konfigurieren von Azure PowerShell.
Nächste Schritte
Weitere Informationen finden Sie im PHP Developer Center.