Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel PHP pour AWS Cloud9
Ce didacticiel vous permet d'exécuter des scripts PHP dans un environnement de AWS Cloud9 développement.
Le fait de suivre ce didacticiel et de créer cet exemple peut entraîner des frais sur votre AWS
compte. Il peut s'agir de frais pour des services tels qu'Amazon EC2 et Amazon S3. Pour en savoir plus, consultez les sections Tarification Amazon EC2
Rubriques
Prérequis
Avant d'utiliser cet exemple, vérifiez que votre configuration respecte les conditions requises suivantes :
-
Vous devez disposer d'un environnement de développement AWS Cloud9 EC2 existant. Cet exemple suppose que vous disposez déjà d'un environnement EC2 connecté à une instance Amazon EC2 s'exécutant sur Amazon Linux ou Ubuntu Server. Si vous utilisez un autre type d'environnement ou de système d'exploitation, vous devrez peut-être adapter les instructions de cet exemple pour configurer les outils associés. Pour plus d’informations, consultez Création d'un environnement dans AWS Cloud9.
-
L' AWS Cloud9 IDE correspondant à l'environnement existant est déjà ouvert. Lorsque vous ouvrez un environnement, AWS Cloud9 ouvre l'IDE correspondant à cet environnement dans votre navigateur Web. Pour plus d’informations, consultez Ouverture d'un environnement dans AWS Cloud9.
Étape 1 : Installer les outils requis
Dans cette étape, vous installez PHP, qui est requis pour exécuter cet exemple.
Note
La procédure suivante installe PHP uniquement. Pour installer des outils connexes tels qu'un serveur Web Apache et une base de données MySQL, consultez Tutoriel : Installation d'un serveur Web LAMP sur Amazon Linux dans le guide de l'utilisateur Amazon EC2.
-
Dans une session de terminal dans l' AWS Cloud9 IDE, vérifiez si PHP est déjà installé en exécutant la
php --version
commande. (Pour démarrer une nouvelle séance de terminal, dans la barre de menus, choisissez Window (Fenêtre), New Terminal (Nouveau terminal).) Si PHP est installé, la sortie contient le numéro de version de PHP. Si PHP est installé, passez directement à Étape 2 : Ajouter du code. -
Exécutez la commande
yum update
(pour Amazon Linux) ou la commandeapt update
(pour Ubuntu Server) afin d'être sûr que les mises à jour de sécurité et les correctifs les plus récents sont installés.Pour Amazon Linux 2 et Amazon Linux :
sudo yum -y update
Pour Ubuntu Server :
sudo apt update
-
Installez PHP en exécutant la commande
install
.Dans Amazon Linux 2:
sudo amazon-linux-extras install -y php7.2
Pour Amazon Linux :
sudo yum -y install php72
Note
Vous pouvez afficher votre version d'Amazon Linux avec la commande suivante :
cat /etc/system-release
Pour Ubuntu Server :
sudo apt install -y php php-xml
Pour plus d'informations, consultez Installation et configuration
sur le site web PHP.
Étape 2 : Ajouter du code
Dans l' AWS Cloud9 IDE, créez un fichier avec ce contenu et enregistrez le fichier sous son nomhello.php
. (Pour créer un fichier, dans la barre de menus, choisissez Fichier, Nouveau fichier. Pour l'enregistrer, choisissez Fichier, Enregistrer, tapez hello.php
comme Nom de fichier, puis Enregistrer.)
<?php print('Hello, World!'); print("\nThe sum of 2 and 3 is 5."); $sum = (int)$argv[1] + (int)$argv[2]; print("\nThe sum of $argv[1] and $argv[2] is $sum."); ?>
Note
Le code précédent ne s'appuie pas sur des fichiers externes. Toutefois, si vous incluez ou avez besoin d'autres fichiers PHP dans votre fichier, et que vous souhaitez utiliser ces fichiers AWS Cloud9 pour compléter le code au fur et à mesure que vous tapez, activez le paramètre Projet, Support PHP, Activer l'achèvement du code PHP dans les préférences, puis ajoutez les chemins d'accès à ces fichiers dans le paramètre Projet, Support PHP, PHP Completion Include Paths. (Pour afficher et modifier vos préférences, choisissez AWS Cloud9, Preferences dans la barre de menus.)
Étape 3 : Exécuter le code
-
Dans l' AWS Cloud9 IDE, dans la barre de menus, choisissez Run, Run Configurations, New Run Configuration.
-
Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis PHP (cli).
-
Pour Commande), saisissez
hello.php 5 9
. Dans le code,5
représente$argv[1]
, et9
représente$argv[2]
. ($argv[0]
représente le nom du fichier (hello.php
).) -
Choisissez le bouton Run et comparez la sortie.
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
![Résultat de l'exécution du code PHP dans l' AWS Cloud9 IDE](images/ide-php-simple.png)
Étape 4 : Installation et configuration du AWS SDK for PHP
Vous pouvez améliorer cet exemple AWS SDK for PHP pour créer un compartiment Amazon S3, répertorier vos compartiments disponibles, puis supprimer le compartiment que vous venez de créer.
Au cours de cette étape, vous installez et configurez le AWS SDK for PHP, qui constitue un moyen pratique d'interagir avec AWS des services tels qu'Amazon S3, à partir de votre code PHP. Avant de pouvoir installer le AWS SDK for PHP, vous devez installer Composer
Pour installer Composer
Exécutez la commande curl
avec les options d'exécution silencieuse (-s
) et d'affichage d'erreur (-S
), en recueillant le programme d'installation Composer dans un fichier d'archive PHP (PHAR), nommé composer.phar
par convention.
curl -sS https://getcomposer.org/installer | php
Pour installer AWS SDK for PHP
Pour Ubuntu Server, installez les packages supplémentaires dont Composer a besoin pour installer le kit AWS SDK for PHP.
sudo apt install -y php-xml php-curl
Pour Amazon Linux ou Ubuntu Server, utilisez la commande php pour exécuter le programme d'installation de Composer afin d'installer le kit AWS SDK for PHP.
php composer.phar require aws/aws-sdk-php
Cette commande crée plusieurs dossiers et fichiers dans votre environnement. Le fichier principal que vous utiliserez est autoload.php
, qui se trouve dans le dossier vendor
de votre environnement.
Note
Après l'installation, Composer peut vous suggérer d'installer des dépendances supplémentaires. Pour ce faire, vous pouvez exécuter une commande semblable à ce qui suit, en spécifiant la liste des dépendances à installer. Par exemple, la commande suivante indique à Composer d'installer la liste suivante de dépendances.
php composer.phar require psr/log ext-curl doctrine/cache aws/aws-php-sns-message-validator
Pour plus d'informations, consultez Installation dans le Manuel du développeur AWS SDK for PHP .
Pour configurer la gestion des informations d'identification dans votre environnement
Chaque fois que vous utilisez le AWS SDK for PHP pour appeler un AWS service, vous devez fournir un ensemble d'informations d'identification avec l'appel. Ces informations d'identification déterminent s'il AWS SDK for PHP dispose des autorisations appropriées pour effectuer cet appel. Si les informations d'identification ne sont pas associées aux autorisations nécessaires, l'appel échoue.
Au cours de cette étape, vous allez stocker vos informations d'identification dans l'environnement. Pour ce faire, suivez les instructions de la rubrique Appel des Services AWS à partir d'un environnement dans AWS Cloud9, puis revenez à cette rubrique.
Pour plus d'informations, consultez la section « Création d'un client » de la rubrique Modèles d'utilisation de base dans le Manuel du développeur AWS SDK for PHP .
Étape 5 : ajouter le code du AWS SDK
Au cours de cette étape, vous allez ajouter du code supplémentaire pour interagir avec Amazon S3, créer un compartiment, répertorier les compartiments disponibles, puis supprimer le compartiment que vous venez de créer. Vous exécuterez ce code ultérieurement.
Dans l' AWS Cloud9 IDE, créez un fichier avec ce contenu et enregistrez le fichier sous son noms3.php
.
<?php require './vendor/autoload.php'; if ($argc < 4) { exit("Usage: php s3.php <the time zone> <the bucket name> <the AWS Region to use>\n" . "Example: php s3.php America/Los_Angeles my-test-bucket us-east-2"); } $timeZone = $argv[1]; $bucketName = $argv[2]; $region = $argv[3]; date_default_timezone_set($timeZone); $s3 = new Aws\S3\S3Client([ 'region' => $region, 'version' => '2006-03-01' ]); # Lists all of your available buckets in this AWS Region. function listMyBuckets($s3) { print("\nMy buckets now are:\n"); $promise = $s3->listBucketsAsync(); $result = $promise->wait(); foreach ($result['Buckets'] as $bucket) { print("\n"); print($bucket['Name']); } } listMyBuckets($s3); # Create a new bucket. print("\n\nCreating a new bucket named '$bucketName'...\n"); try { $promise = $s3->createBucketAsync([ 'Bucket' => $bucketName, 'CreateBucketConfiguration' => [ 'LocationConstraint' => $region ] ]); $promise->wait(); } catch (Exception $e) { if ($e->getCode() == 'BucketAlreadyExists') { exit("\nCannot create the bucket. " . "A bucket with the name '$bucketName' already exists. Exiting."); } } listMyBuckets($s3); # Delete the bucket you just created. print("\n\nDeleting the bucket named '$bucketName'...\n"); $promise = $s3->deleteBucketAsync([ 'Bucket' => $bucketName ]); $promise->wait(); listMyBuckets($s3); ?>
Étape 6 : Exécuter le code du AWS SDK
-
Dans l' AWS Cloud9 IDE, dans la barre de menus, choisissez Run, Run Configurations, New Run Configuration.
-
Dans l'onglet [New] - Idle ([Nouveau] - Inactif), choisissez Runner: Auto (Exécuteur : Auto), puis PHP (cli).
-
Pour Command (Commande), tapez
s3.php America/Los_Angeles my-test-bucket us-east-2
, où :-
America/Los_Angeles
représente votre ID de fuseau horaire par défaut. Pour obtenir plus d'ID, consultez la section Liste des fuseaux horaires supportéssur le site web de PHP. -
my-test-bucket
représente le nom du compartiment que vous souhaitez créer, puis supprimer.Note
Les noms des compartiments Amazon S3 doivent être uniques pour l'ensemble de votre compte AWS, et pas uniquement pour ce qui est de votre AWS compte.
-
us-east-2
est l'ID de la AWS région dans laquelle vous souhaitez créer le bucket. Pour plus d'ID, consultez la section Amazon Simple Storage Service (Amazon S3) de la Référence générale d'Amazon Web Services.
-
-
Choisissez le bouton Run et comparez la sortie.
My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:
Étape 7 : nettoyer
Pour éviter que votre AWS compte ne soit débité une fois que vous aurez terminé d'utiliser cet exemple, vous devez supprimer l'environnement. Pour obtenir des instructions, veuillez consulter Suppression d'un environnement dans AWS Cloud9.
Résolution des problèmes liés à PHP Runner pour AWS Cloud9
Si vous rencontrez des problèmes avec le programme d'exécution de la CLI PHP, vous devez vous assurer que le programme d'exécution a été défini sur PHP et que le mode débogueur est activé.