Premiers pas avec PHP sur Compute Engine

Ce tutoriel explique comment débuter avec Compute Engine. Suivez-le pour déployer une application Web PHP Hello World dans Compute Engine. Si vous avez besoin d'aide pour vous familiariser avec App Engine, consultez la page sur l'environnement standard App Engine.

Objectifs

  • Télécharger et déployer un exemple d'application Hello World en utilisant Cloud Shell
  • Déployer un exemple d'application Hello World sur une instance Compute Engine unique

Coûts

Ce tutoriel utilise les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

    Accéder à la page de sélection du projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activez l'API Compute Engine.

    Activer l'API

  5. Dans Google Cloud Console, ouvrez l'application dans Cloud Shell.

    Accéder à Cloud Shell

    Cloud Shell vous permet d'accéder en ligne de commande à vos ressources cloud, directement depuis votre navigateur. Ouvrez Cloud Shell dans votre navigateur et cliquez sur Continuer pour télécharger l'exemple de code et accéder au répertoire de l'application.

  6. Dans Cloud Shell, configurez l'outil gcloud pour qu'il utilise votre nouveau projet Google Cloud :
    # Configure gcloud for your project
    gcloud config set project YOUR_PROJECT_ID
    

Exécuter l'application dans Cloud Shell

  1. Installez les dépendances de l'application à l'aide de composer :

    composer install
    
  2. Exécutez le serveur Web PHP intégré :

    php -S localhost:8080
    
  3. Dans Cloud Shell, cliquez sur Aperçu sur le Web , puis sélectionnez Prévisualiser sur le port 8080. Une nouvelle fenêtre s'affiche avec votre application en cours d'exécution.

  4. Pour arrêter le serveur Web local, appuyez sur les touches Ctrl+C.

Déployer l'application sur une instance unique

Cette section décrit la procédure d'exécution d'une instance unique de votre application sur Compute Engine.

Déploiement d'une instance unique

Depuis Cloud Shell, vous pouvez déployer une machine virtuelle (VM) d'instance unique Compute Engine, qui exécute votre application.

Utiliser un script de démarrage pour initialiser une instance

Vous avez besoin d'un outil qui indique à votre instance de télécharger et d'exécuter votre code. Une instance peut disposer d'un script de démarrage qui s'exécute à chaque démarrage ou redémarrage de l'instance.

set -e
export HOME=/root

# Install PHP and dependencies from apt
apt-get update
apt-get install -y git nginx php7.2 php7.2-fpm php7.2-mysql php7.2-dev \
    php7.2-mbstring php7.2-zip php-pear pkg-config

# Install Composer
curl -sS https://getcomposer.org/installer | \
    /usr/bin/php -- \
    --install-dir=/usr/local/bin \
    --filename=composer

# Get the application source code
git clone https://github.com/googlecloudplatform/getting-started-php /opt/src
ln -s /opt/src/gce /opt/app

# Run Composer
composer install -d /opt/app --no-ansi --no-progress --no-dev

# Disable the default NGINX configuration
rm /etc/nginx/sites-enabled/default

# Enable our NGINX configuration
cp /opt/app/config/nginx/helloworld.conf /etc/nginx/sites-available/helloworld.conf
ln -s /etc/nginx/sites-available/helloworld.conf /etc/nginx/sites-enabled/helloworld.conf
cp /opt/app/config/nginx/fastcgi_params /etc/nginx/fastcgi_params

# Start NGINX
systemctl restart nginx.service

# Install Fluentd
curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash

# Enable our Fluentd configuration
cp /opt/app/config/fluentd/helloworld.conf /etc/google-fluentd/config.d/helloworld.conf

# Start Fluentd
service google-fluentd restart &

Le script de démarrage effectue les tâches suivantes :

  • Il installe PHP 7 et PHP 7 FPM.

  • Il installe et configure NGINX.

  • Il télécharge Composer et l'exécute pour le code de l'application.

  • Il installe l'agent Cloud Logging et le configure pour surveiller les journaux de l'application. Cela signifie que la journalisation configurée lors des étapes précédentes de ce tutoriel est importée comme si vous utilisiez App Engine.

Créer et configurer une instance Compute Engine

  1. Créez une instance Compute Engine :

    MY_INSTANCE_NAME='my-app-instance'
    ZONE=us-central1-f
    
    gcloud compute instances create $MY_INSTANCE_NAME \
        --image-family=ubuntu-1804-lts \
        --image-project=ubuntu-os-cloud \
        --machine-type=g1-small \
        --scopes userinfo-email,cloud-platform \
        --metadata-from-file startup-script=scripts/startup-script.sh \
        --zone $ZONE \
        --tags http-server

    Remplacez la zone par une zone de développement. Exemple : us-central1-a. Pour en savoir plus sur les régions et les zones, consultez la page Zones géographiques et régions.

    Cette commande crée une instance, l'autorise à accéder aux services Google Cloud et exécute votre script de démarrage. Le nom de l'instance est my-app-instance.

  2. Vérifiez l'avancement de la création de l'instance :

    gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
    

    Remplacez YOUR_ZONE par la zone sur laquelle vous avez déployé votre instance.

    Une fois l'exécution du script de démarrage terminée, le message suivant s'affiche :

    startup-script: INFO Finished running startup scripts.
    
  3. Créez une règle de pare-feu pour autoriser le trafic vers votre instance :

    gcloud compute firewall-rules create default-allow-http-80 \
        --allow tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --target-tags http-server \
        --description "Allow port 80 access to http-server"
    

  4. Obtenez l'adresse IP externe de votre instance :

    gcloud compute instances list
    
  5. Pour voir votre application en cours d'exécution, saisissez cette URL dans votre navigateur :

    http://YOUR_INSTANCE_IP
    

    Remplacez YOUR_INSTANCE_IP par l'adresse IP externe de votre instance.

Gérer et surveiller une instance

Vous pouvez surveiller et gérer votre instance à l'aide de Cloud Console.

  1. Dans Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Dans la liste des instances de machine virtuelle, cliquez sur SSH sur la ligne de l'instance à laquelle vous souhaitez vous connecter.
  3. Pour afficher tous les journaux générés par vos ressources Compute Engine, accédez à la page Visionneuse de journaux. Accéder à la visionneuse de journaux

    Cloud Logging est automatiquement configuré pour collecter les journaux issus de divers services courants, comme syslog.

Nettoyer

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud Platform, procédez comme suit :

Supprimer le projet

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer .
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer les ressources individuelles

gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all
gcloud compute firewall-rules delete default-allow-http-80

Étapes suivantes