Héberger WordPress dans l'environnement flexible App Engine

Ce tutoriel montre comment déployer un petit site WordPress dans l'environnement flexible App Engine.

Objectifs

  • Créer une instance Cloud SQL de deuxième génération
  • Configurer un exemple de site WordPress
  • Déployer l'exemple de site WordPress dans l'environnement flexible App Engine

Coûts

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the required APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Installez la Google Cloud CLI.

  6. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  7. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the required APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Installez la Google Cloud CLI.

  12. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  13. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  14. Créez des identifiants en procédant comme suit :
    • Dans la console Google Cloud , accédez à la page Identifiants.

      Accéder à la page "Identifiants"

    • Cliquez sur Créer des identifiants, puis sélectionnez Clé de compte de service.
    • Sélectionnez Compte de service > Compte de service App Engine par défaut.
    • Cliquez sur Créer.
    • Enregistrez la clé téléchargée dans un emplacement sécurisé.
  15. Installez PHP et Composer.
  16. Téléchargez le proxy Cloud SQL et rendez-le exécutable : Ajoutez également l'emplacement du fichier exécutable du proxy Cloud SQL à votre variable d'environnement PATH.
  17. Installez un client MySQL et vérifiez que l'emplacement du fichier exécutable mysql est défini dans votre variable d'environnement PATH.

Créer et configurer une instance Cloud SQL de deuxième génération

  1. Créez une instance Cloud SQL de deuxième génération :

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. Définissez le mot de passe racine pour votre instance :

    gcloud sql users set-password root --instance tutorial-sql-instance \
        --password [YOUR_SQL_ROOT_PASSWORD] \
        --host %
    

    [YOUR_SQL_ROOT_PASSWORD] correspond au mot de passe sécurisé de votre choix.

  3. Téléchargez et exécutez le proxy Cloud SQL :

    ./cloud-sql-proxy \
        -dir /tmp/cloudsql \
        -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance \
        -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]

    Où :

    • [YOUR_PROJECT_ID] est l'ID de votre projet Google Cloud .

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON] correspond au chemin d'accès au fichier JSON du compte de service que vous avez précédemment téléchargé.

    Le résultat suivant indique que le proxy est prêt pour de nouvelles connexions :

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. Dans une autre fenêtre de terminal, créez une base de données et un utilisateur :

    mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD]
    mysql> create database tutorialdb;
    mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]';
    mysql> grant all on tutorialdb.* to 'tutorial-user'@'%';
    mysql> exit

    où :

    • [YOUR_SQL_ROOT_PASSWORD] correspond au mot de passe racine de votre instance Cloud SQL ;
    • [YOUR_DATABASE_PASSWORD] correspond au mot de passe sécurisé de votre choix.

Configurer le projet WordPress

  1. Clonez l'exemple de dépôt :

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. Accédez au répertoire qui contient l'exemple de code :

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. Installez les dépendances :

    composer install
    
  4. Exécutez le script d'aide :

    php wordpress.php setup -n \
        --dir=./wordpress-project \
        --db_instance=tutorial-sql-instance \
        --db_name=tutorialdb \
        --db_user=tutorial-user \
        --project_id=[YOUR_PROJECT_ID] \
        --db_password=[YOUR_DATABASE_PASSWORD]

    Où :

    • [YOUR_PROJECT_ID] est l'ID de votre projet.
    • [YOUR_DATABASE_PASSWORD] correspond au mot de passe de votre base de données.

    Le paramètre -dir spécifie l'emplacement de votre projet WordPress.

  5. Le script d'aide inscrit des informations dans wordpress-project/wordpress/wp-config.php. Inspectez le contenu de wp-config.php pour vérifier que vos noms, ID de projet et mot de passe de base de données sont corrects.

    if ($onGae) {
        /** Production environment */
        define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    } else {
        /** Local environment */
        define('DB_HOST', '127.0.0.1');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    }

Déployer le projet WordPress dans l'environnement flexible App Engine

  1. Accédez à votre répertoire de projet WordPress :

    cd wordpress-project
    
  2. Déployez le projet WordPress :

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. Dans votre navigateur Web, saisissez l'URL suivante :

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Remplacez les éléments suivants :

Mettre à jour WordPress, les plug-ins et les thèmes

Il est important de maintenir à jour WordPress, les plug-ins et les thèmes. Pour ce faire, vous pouvez utiliser l'outil wp. Après une mise à jour, vous devez redéployer le projet WordPress.

  1. Mettez à jour WordPress :

    vendor/bin/wp core update --path=wordpress
    
  2. Mettez à jour les plug-ins :

    vendor/bin/wp plugin update --all --path=wordpress
    # Just in case it updates any of the dropins, copy the files:
    cp wordpress/wp-content/plugins/batcache/advanced-cache.php \
        wordpress/wp-content/plugins/memcached/object-cache.php \
        wordpress/wp-content
    
  3. Mettez à jour les thèmes :

    vendor/bin/wp theme update --all --path=wordpress
    
  4. Redéployez le projet :

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans la console Google Cloud , 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 versions autres que celle par défaut de votre application

Si vous ne souhaitez pas supprimer votre projet, vous pouvez réduire les coûts en supprimant les versions autres que celle par défaut de votre application.

Pour supprimer une version d'application :

  1. Dans la console Google Cloud , accédez à la page Versions pour App Engine.

    Accéder à la page "Versions"

  2. Cochez la case correspondant à la version de l'application autre que celle par défaut que vous souhaitez supprimer.
  3. Pour supprimer la version de l'application, cliquez sur  Supprimer.

Supprimer votre instance Cloud SQL

Pour supprimer une instance Cloud SQL :

  1. Dans la console Google Cloud , accédez à la page Instances.

    Accéder à la page "Instances"

  2. Cliquez sur le nom de l'instance SQL que vous souhaitez supprimer.
  3. Pour supprimer l'instance, cliquez sur Supprimer , puis suivez les instructions.

Étapes suivantes