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.
- Configura un sito WordPress di esempio.
- Esegui il deployment del sito WordPress di esempio nell'ambiente flessibile di App Engine.
Costi
Prima di iniziare
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Installa Google Cloud CLI.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea le credenziali seguendo questi passaggi:
Nella Cloud de Confiance console, vai alla pagina Credenziali.
- Fai clic su Crea credenziali e seleziona Chiave account di servizio.
- Seleziona Service account > Service account 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. Aggiungi anche 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
mysqlsia 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-central1Imposta 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:
./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' Cloud de Confiance ID progetto.[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 connectionsIn 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 radice 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.gitVai alla directory che contiene il codice campione:
cd php-docs-samples/appengine/flexible/wordpressInstalla le dipendenze:
composer installEsegui 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
-dirspecifica la posizione del progetto WordPress.Lo script di supporto scrive le informazioni in
wordpress-project/wordpress/wp-config.php. Esamina il contenuto diwp-config.phpper 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-projectEsegui il deployment del progetto WordPress:
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yamlNel browser, inserisci il seguente URL:
https://PROJECT_ID.REGION_ID.r.appspot.comSostituisci quanto segue:
PROJECT_ID: l'ID progetto Cloud de ConfianceREGION_ID: un codice assegnato da App Engine alla tua app
Aggiornamento di WordPress, plug-in e temi
È importante mantenere aggiornati WordPress, i plug-in e i temi. Puoi mantenere aggiornati questi elementi utilizzando lo strumento wp. Dopo un aggiornamento, devi eseguire di nuovo il deployment del progetto WordPress.
Aggiorna WordPress:
vendor/bin/wp core update --path=wordpressAggiorna 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-contentAggiorna i temi:
vendor/bin/wp theme update --all --path=wordpressEsegui di nuovo il deployment del progetto:
gcloud app deploy \ --promote --stop-previous-version app.yaml cron.yaml
Libera spazio
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:
- Nella Cloud de Confiance console, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- 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:
- Nella Cloud de Confiance console, vai alla pagina Versioni di App Engine.
- Seleziona la casella di controllo per la versione dell'app non predefinita che vuoi eliminare.
- Per eliminare la versione dell'app, fai clic su Elimina.
Elimina l'istanza Cloud SQL
Per eliminare un'istanza Cloud SQL:
- Nella Cloud de Confiance console, vai alla pagina Istanze.
- Fai clic sul nome dell'istanza SQL che vuoi eliminare.
- Per eliminare l'istanza, fai clic su Elimina, quindi segui le istruzioni.
Passaggi successivi
Scopri come eseguire l'app di esempio Bookshelf PHP nell'ambiente flessibile di App Engine.
Scopri come eseguire l'app di esempio Bookshelf PHP in Google Kubernetes Engine.
Scopri come eseguire l'app di esempio Bookshelf PHP in Compute Engine.
Scopri di più su WordPress.
Esplora architetture, diagrammi e best practice di riferimento su Google Cloud. Consulta il nostro Cloud Architecture Center.