Questo tutorial mostra come eseguire il deployment di un piccolo sito WordPress nell'ambiente flessibile di App Engine.
Obiettivi
- Creare 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
Per generare una stima dei costi basata sull'utilizzo previsto, utilizza il Calcolatore prezzi.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Per creare le credenziali, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Credenziali.
- Fai clic su Crea credenziali e seleziona Chiave account di servizio.
- Seleziona Account di servizio > Account di servizio predefinito di App Engine.
- Fai clic su Crea.
- Salva la chiave scaricata in un luogo sicuro.
- Installa PHP e Composer.
-
Scarica il proxy Cloud SQL e rendilo eseguibile. Inoltre, aggiungi la posizione del file eseguibile del proxy Cloud SQL alla variabile di ambiente
PATH
. -
Installa un
client MySQL
e verifica che la posizione del file eseguibile
mysql
si trovi nella variabile di ambientePATH
.
Creazione e configurazione di un'istanza Cloud SQL di seconda generazione
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
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.Scarica ed esegui il proxy Cloud SQL:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy cloud_sql_proxy \ -dir /tmp/cloudsql \ -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \ -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
dove
[YOUR_PROJECT_ID]
è l'ID del tuo progetto Google Cloud.[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 nuove connessioni:
Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance Ready for new connections
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 per l'istanza Cloud SQL.[YOUR_DATABASE_PASSWORD]
è una password sicura scelta da te.
Configurazione del progetto WordPress
Clona il repository di esempio:
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
Vai alla directory che contiene il codice di esempio:
cd php-docs-samples/appengine/flexible/wordpress
Installa le dipendenze:
composer install
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 progetto WordPress.Lo script di supporto scrive informazioni in
wordpress-project/wordpress/wp-config.php
. Controlla i contenuti diwp-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]'); }
Distribuzione del progetto WordPress nell'ambiente flessibile di App Engine
Vai alla directory del progetto WordPress:
cd wordpress-project
Distribuisci il progetto WordPress:
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yaml
Nel browser, inserisci il seguente URL:
https://PROJECT_ID.REGION_ID.r.appspot.com
Sostituisci quanto segue:
PROJECT_ID
: l'ID del tuo progetto Google CloudREGION_ID
: un codice assegnato da App Engine alla tua app
Aggiornamento di WordPress, plug-in e temi
È importante tenere aggiornati WordPress, plug-in e temi. Puoi mantenere aggiornati questi elementi utilizzando lo strumento wp
. Dopo un aggiornamento, devi eseguire nuovamente
il deployment del progetto WordPress.
Aggiorna WordPress:
vendor/bin/wp core update --path=wordpress
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
Aggiorna temi:
vendor/bin/wp theme update --all --path=wordpress
Distribuisci nuovamente il 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 che hai creato per il tutorial.
Per eliminare il progetto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
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:
- In the Google Cloud console, go to the Versions page for App Engine.
- Select the checkbox for the non-default app version that you want to delete.
- Per eliminare la versione dell'app, fai clic su Elimina.
Elimina l'istanza Cloud SQL
Per eliminare un'istanza Cloud SQL:
- In the Google Cloud console, go to the Instances page.
- Click the name of the SQL instance you that want to delete.
- To delete the instance, click Delete, and then follow the instructions.
Passaggi successivi
Scopri come eseguire l'applicazione di esempio PHP Bookshelf nell'ambiente flessibile di App Engine.
Scopri come eseguire l'app di esempio PHP Bookshelf in Google Kubernetes Engine.
Scopri come eseguire l'app di esempio PHP Bookshelf su Compute Engine.
Scopri di più su WordPress.
Ulteriori informazioni sull'utilizzo di WordPress multisito con i tuoi domini e Mailgun.
Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Dai un'occhiata al nostro Cloud Architecture Center.