Créer des rôles web et de travail PHP
Vue d’ensemble
Important
Cloud Services (classique) est désormais déconseillé pour tous les clients depuis le 1er septembre 2024. Tous les déploiements existants en cours d’exécution seront arrêtés par Microsoft, et les données seront définitivement perdues à partir d’octobre 2024. Les nouveaux déploiements doivent utiliser le nouveau modèle de déploiement basé sur Azure Resource Manager Azure Cloud Services (support étendu) .
Ce guide vous montre comment créer des rôles web et de travail PHP dans un environnement de développement Windows, choisir une version spécifique de PHP à partir des versions « intégrées » disponibles, modifier la configuration de PHP, activer les extensions et effectuer un déploiement dans Azure. Il décrit également la façon de configurer un rôle web et de travail afin d'utiliser un runtime PHP (avec une configuration et des extensions personnalisées) que vous fournissez.
Azure propose trois modèles de calcul pour l’exécution d’applications : Azure App Service, Azure Virtual Machines et Azure Cloud Services. Ils prennent tous les trois en charge PHP. Cloud Services, qui inclut les rôles web et de travail, offre une plateforme PaaS (platform as a service). Dans un service cloud, un rôle web fournit un serveur web IIS (Internet Information Services) dédié pour héberger les applications web frontales. Un rôle de travail peut exécuter des tâches asynchrones, sur le long terme ou perpétuelles, indépendamment des entrées ou des interactions de l’utilisateur.
Pour plus d’informations, consultez Calcul des options d’hébergement fournies par Azure.
Téléchargement du Kit de développement logiciel (SDK) Azure pour PHP
Le Kit de développement logiciel (SDK) Azure pour PHP est constitué de plusieurs composants. Cet article fait référence à deux d’entre eux : Azure PowerShell et les émulateurs Azure. Ceux-ci peuvent être installés par le biais de Microsoft Web Platform Installer : Pour plus d’informations, consultez Installer et configurer Azure PowerShell.
Création d'un projet Cloud Services
La première étape de la création d’un rôle web ou de travail PHP consiste à créer un projet de service Azure. Un projet de service Azure fait office de conteneur logique pour les rôles web et de travail. Il contient les fichiers de définition de service (.csdef) et de configuration de service (.cscfg) du projet.
Pour créer un projet de service Azure, exécutez Azure PowerShell en tant qu’administrateur et exécutez la commande suivante :
PS C:\>New-AzureServiceProject myProject
Cette commande crée un nouveau répertoire (myProject
) dans lequel vous pouvez ajouter des rôles web et de travail.
Ajout de rôles web et de travail PHP
Pour ajouter un rôle web PHP à un projet, exécutez la commande suivante à partir du répertoire racine du projet :
PS C:\myProject> Add-AzurePHPWebRole roleName
Pour un rôle de travail, utilisez la commande suivante :
PS C:\myProject> Add-AzurePHPWorkerRole roleName
Remarque
Le paramètre roleName
est facultatif. S'il est omis, le nom du rôle est généré automatiquement. Le premier rôle web créé est WebRole1
, le second WebRole2
, et ainsi de suite. Le premier rôle de travail créé est WorkerRole1
, le second WorkerRole2
, et ainsi de suite.
Utilisation de votre propre runtime PHP
Dans certains cas, au lieu de sélectionner un runtime PHP intégré et de le configurer comme indiqué ci-dessus, vous pouvez fournir votre propre runtime PHP. Par exemple, vous pouvez utiliser le même runtime PHP dans un rôle web ou de travail que vous utilisez dans votre environnement de développement, Ce processus facilite la vérification du comportement de l’application dans votre environnement de production.
Configurer un rôle web pour utiliser votre propre runtime PHP
Pour configurer un rôle web pour utiliser un runtime PHP que vous fournissez, procédez comme suit :
Créez un projet de service Azure et ajoutez un rôle web PHP comme indiqué précédemment dans cette rubrique.
Créez un dossier
php
dans le dossierbin
se trouvant dans le répertoire racine de votre rôle web, puis ajoutez votre runtime PHP (tous les fichiers binaires, fichiers de configuration, sous-dossiers, etc.) dans le dossierphp
.(FACULTATIF) Si votre runtime PHP utilise les pilotes Microsoft pour PHP pour SQL Server, vous devez configurer votre rôle web pour installer SQL Server Native Client 2012, une fois celui-ci provisionné. Pour cela, ajoutez le programme d’installation x64 sqlncli.msi dans le dossier
bin
du répertoire racine de votre rôle web. Le script de démarrage décrit à l'étape suivante exécutera en silence le programme d'installation lorsque le rôle sera mis en service. Si votre runtime PHP n'utilise pas les pilotes Microsoft pour PHP pour SQL Server, vous pouvez supprimer la ligne suivante dans le script figurant à l'étape suivante :msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Définissez une tâche de démarrage configurant Internet Information Services (IIS) afin d’utiliser votre runtime PHP pour gérer les requêtes de pages
.php
. Pour cela, ouvrez le fichiersetup_web.cmd
(dans le fichierbin
du répertoire racine de votre rôle web) dans un éditeur de texte et remplacez son contenu par le script suivant :@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"
Ajoutez vos fichiers d’application au répertoire racine de votre rôle web, qui devient le répertoire racine du serveur web.
Publiez votre application en procédant comme indiqué dans la section Publication de votre application.
Remarque
Il est possible de supprimer le script download.ps1
(dans le dossier bin
du répertoire racine du rôle web) une fois que vous avez suivi les étapes ci-dessus permettant d’utiliser votre propre runtime PHP.
Configurer un rôle de travail pour utiliser votre propre runtime PHP
Pour configurer un rôle de travail pour utiliser un runtime PHP que vous fournissez, procédez comme suit :
Créez un projet de service Azure et ajoutez un rôle de travail PHP comme indiqué précédemment dans cette publication.
Créez un dossier
php
dans le répertoire racine du rôle de travail, puis ajoutez votre runtime PHP (tous les fichiers binaires, fichiers de configuration, sous-dossiers, etc.) dans le dossierphp
.(FACULTATIF) Si votre runtime PHP utilise les pilotes Microsoft pour PHP pour SQL Server, il vous faudra configurer votre rôle de travail pour installer SQL Server Native Client 2012 une fois celui-ci provisionné. Pour cela, ajoutez le programme d’installation x64 sqlncli.msi dans le répertoire racine du rôle de travail. Le script de démarrage décrit à l'étape suivante exécutera en silence le programme d'installation lorsque le rôle sera mis en service. Si votre runtime PHP n'utilise pas les pilotes Microsoft pour PHP pour SQL Server, vous pouvez supprimer la ligne suivante dans le script figurant à l'étape suivante :
msiexec /i sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES
Définissez une tâche de démarrage ajoutant votre exécutable
php.exe
à l’environnement PATH du rôle de travail une fois ce dernier mis en service. Pour cela, ouvrez le fichiersetup_worker.cmd
(dans le répertoire racine de votre rôle de travail) dans un éditeur de texte et remplacez son contenu par le script suivant :@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
Ajoutez vos fichiers d'application dans le répertoire racine de votre rôle de travail.
Publiez votre application en procédant comme indiqué dans la section Publication de votre application.
Exécuter votre application dans les émulateurs de calcul et de stockage
Les émulateurs Azure fournissent un environnement local dans lequel vous pouvez tester votre application Azure avant de la déployer sur le cloud. Il y a quelques différences entre les émulateurs et l'environnement Azure. Pour mieux comprendre ces différences, consultez Utiliser l'Émulateur de stockage Azure à des fins de développement et de tests.
Notez que PHP doit être installé en local pour pouvoir utiliser l’émulateur de calcul. Ce dernier utilise votre installation locale de PHP pour exécuter votre application.
Pour exécuter votre projet dans les émulateurs, exécutez la commande suivante à partir du répertoire racine de votre projet :
PS C:\MyProject> Start-AzureEmulator
L’échantillon de sortie suivant est similaire à ce que vous devez voir :
Creating local package...
Starting Emulator...
Role is running at http://127.0.0.1:81
Started
pour voir votre application exécutée dans l’émulateur, ouvrez un navigateur web et accédez à l’adresse locale indiquée dans le résultat (http://127.0.0.1:81
dans l’exemple ci-dessus).
Pour arrêter les émulateurs, exécutez la commande suivante :
PS C:\MyProject> Stop-AzureEmulator
Publication de votre application
Pour publier votre application, vous devez d’abord importer vos paramètres de publication en utilisant l’applet de commande Import-AzurePublishSettingsFile . Vous pouvez ensuite publier votre application à l’aide de l’applet de commande Publish-AzureServiceProject . Pour plus d’informations sur la connexion, consultez Installation et configuration d’Azure PowerShell.
Étapes suivantes
Pour plus d’informations, consultez le Centre pour développeurs PHP.