Ospitare WordPress nell'ambiente flessibile di App Engine

Questo tutorial mostra come eseguire il deployment di un piccolo sito WordPress nell'ambiente flessibile di App Engine.

Obiettivi

  • Crea un'istanza Cloud SQL di seconda generazione.
  • Configurare un sito WordPress di esempio.
  • Esegui il deployment del sito WordPress di esempio nell'ambiente flessibile di App Engine.

Costi

Prima di iniziare

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the required APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  4. Install the Google Cloud CLI.

  5. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. Crea le credenziali seguendo questi passaggi:
    • Nella console Cloud de Confiance , vai alla pagina Credenziali.

      Apri la pagina Credenziali API

    • Fai clic su Crea credenziali e seleziona Chiave service account.
    • Seleziona Service account > Service account predefinito di App Engine.
    • Fai clic su Crea.
    • Salva la chiave scaricata in un luogo sicuro.
  8. Installa PHP e Composer.
  9. Scarica il proxy Cloud SQL e rendilo eseguibile. Aggiungi anche la posizione del file eseguibile del proxy Cloud SQL alla variabile di ambiente PATH.
  10. Installa un client MySQL e verifica che la posizione del file eseguibile mysql si trovi nella variabile di ambiente PATH.

Creazione e configurazione di un'istanza Cloud SQL di seconda generazione

  1. Crea un'istanza Cloud SQL di seconda generazione:

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. Imposta una password radice per l'istanza:

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

    dove [YOUR_SQL_ROOT_PASSWORD] è una password sicura scelta da te.

  3. Scarica ed esegui il 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]

    dove

    • [YOUR_PROJECT_ID] è l'ID progetto Cloud de Confiance .

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON] è il percorso del file JSON dell'account di servizio scaricato precedentemente.

    Il seguente output indica che il proxy è pronto per le nuove connessioni:

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. In un'altra finestra del terminale crea un nuovo database e un utente:

    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

    dove:

    • [YOUR_SQL_ROOT_PASSWORD] è la password root dell'istanza Cloud SQL.
    • [YOUR_DATABASE_PASSWORD] è una password sicura scelta da te.

Configurazione del progetto WordPress

  1. Clona il repository di esempio:

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. Vai alla directory che contiene il codice campione:

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. Installa le dipendenze:

    composer install
    
  4. Esegui lo script di supporto:

    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]

    dove:

    • [YOUR_PROJECT_ID] è l'ID progetto.
    • [YOUR_DATABASE_PASSWORD] è la password del database.

    Il parametro -dir specifica la posizione del tuo progetto WordPress.

  5. Lo script helper scrive le informazioni in wordpress-project/wordpress/wp-config.php. Controlla i contenuti di wp-config.php per verificare che i nomi, l'ID progetto e la password del database siano corretti.

    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]');
    }

Deployment del progetto WordPress nell'ambiente flessibile App Engine

  1. Vai alla directory del progetto WordPress:

    cd wordpress-project
    
  2. Esegui il deployment del progetto WordPress:

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. Nel browser, inserisci il seguente URL:

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

    Sostituisci quanto segue:

Aggiornamento di WordPress, plug-in e temi

È importante mantenere aggiornati WordPress, i plug-in e i temi. Puoi mantenere questi elementi aggiornati utilizzando lo strumento wp. Dopo un aggiornamento, devi eseguire nuovamente il deployment del progetto WordPress.

  1. Aggiorna WordPress:

    vendor/bin/wp core update --path=wordpress
    
  2. Aggiorna i plug-in:

    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. Aggiorna temi:

    vendor/bin/wp theme update --all --path=wordpress
    
  4. Esegui nuovamente il deployment del progetto:

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

Esegui la pulizia

Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Cloud de Confiance , vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.

Elimina le versioni non predefinite dell'applicazione

Se non intendi eliminare il progetto, puoi ridurre i costi eliminando le versioni non predefinite dell'applicazione.

Per eliminare una versione dell'applicazione:

  1. Nella console Cloud de Confiance , vai alla pagina Versioni per App Engine.

    Vai a Versioni

  2. Seleziona la casella di controllo per la versione dell'app non predefinita da eliminare.
  3. Per eliminare la versione dell'app, fai clic su Elimina.

Elimina l'istanza Cloud SQL

Per eliminare un'istanza Cloud SQL:

  1. Nella console Cloud de Confiance , vai alla pagina Istanze.

    Vai a Istanze

  2. Fai clic sul nome dell'istanza SQL che vuoi eliminare.
  3. Per eliminare l'istanza, fai clic su Elimina, quindi segui le istruzioni.

Passaggi successivi