Como hospedar o WordPress no ambiente flexível do App Engine


Veja neste tutorial como implantar um pequeno site do WordPress no ambiente flexível do App Engine.

Objetivos

  • Criar uma instância de segunda geração do Cloud SQL.
  • Configurar um site de amostra do WordPress.
  • Implantar o site de amostra do WordPress no ambiente flexível do App Engine.

Custos

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs necessárias.

    Ative as APIs

  5. Instale a CLI do Google Cloud.
  6. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  7. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  8. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  9. Ative as APIs necessárias.

    Ative as APIs

  10. Instale a CLI do Google Cloud.
  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Siga estas etapas para criar credenciais:
    • No Console do Google Cloud, acesse a página Credenciais.

      Abrir a página de credenciais da API

    • Clique em Criar credenciais e selecione Chave da conta de serviço.
    • Selecione Conta de serviço > Conta de serviço padrão do App Engine.
    • Clique em Criar.
    • Salve a chave em um lugar seguro.
  13. Instale o PHP e o Composer.
  14. Faça o download do Proxy do Cloud SQL e torne-o executável. Adicione também a localização do arquivo executável do Proxy do Cloud SQL à sua variável de ambiente PATH.
  15. Instale um cliente MySQL e verifique se a localização do arquivo executável mysql está na sua variável de ambiente PATH.

Como criar e configurar uma instância de segunda geração do Cloud SQL

  1. Crie uma instância do Cloud SQL de segunda geração:

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. Configure a senha de root para sua instância:

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

    em que [YOUR_SQL_ROOT_PASSWORD] é uma senha segura de sua preferência.

  3. Faça o download e execute o Proxy do 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]
    

    em que

    • [YOUR_PROJECT_ID] é o código do projeto no Google Cloud.

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON] é o caminho para o arquivo JSON da conta de serviço que você fez o download anteriormente.

    A saída a seguir indica que o proxy está pronto para novas conexões:

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. Em um janela de terminal diferente, crie um novo banco de dados e um usuário:

    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
    

    onde:

    • [YOUR_SQL_ROOT_PASSWORD] é a senha de root para sua instância do Cloud SQL.
    • [YOUR_DATABASE_PASSWORD] é uma senha segura de sua preferência.

Como configurar o projeto do WordPress

  1. Clone o repositório de amostra:

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. Acesse o diretório que contém o código de amostra:

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. Instale as dependências:

    composer install
    
  4. Execute o script de ajuda:

    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]
    

    onde:

    • [YOUR_PROJECT_ID] é o ID do projeto;
    • [YOUR_DATABASE_PASSWORD] é a senha do seu banco de dados.

    O parâmetro -dir especifica a localização do seu projeto do WordPress.

  5. O script auxiliar grava informações em wordpress-project/wordpress/wp-config.php. Inspecione o conteúdo de wp-config.php para verificar se os nomes, o ID do projeto e a senha do banco de dados estão corretos.

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

Como implantar o projeto do WordPress no ambiente flexível do App Engine

  1. Acesse o diretório do seu projeto do WordPress:

    cd wordpress-project
    
  2. Implante o projeto do WordPress:

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. No navegador, digite o seguinte URL:

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

    Substitua:

Como atualizar o WordPress, plug-ins e temas

É importante manter o WordPress, plug-ins e temas atualizados. Para manter esses itens atualizados, use a ferramenta wp. Depois de uma atualização, você precisará reimplantar o projeto do WordPress.

  1. Atualize o WordPress:

    vendor/bin/wp core update --path=wordpress
    
  2. Atualize os 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. Atualize os temas:

    vendor/bin/wp theme update --all --path=wordpress
    
  4. Implante o projeto novamente:

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

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Exclua o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Excluir versões não padrão do app

Se você não quer excluir seu projeto, pode reduzir custos excluindo versões não padrão do app.

Para excluir uma versão do app:

  1. No Console do Google Cloud, acesse a página Versões do App Engine.

    Acessar "Versões"

  2. Marque a caixa de seleção da versão não padrão do app que você quer excluir.
  3. Para excluir a versão do app, clique em Excluir.

Excluir a instância do Cloud SQL

Para excluir uma instância do Cloud SQL:

  1. No Console do Google Cloud, acesse a página Instâncias.

    Acesse "Instâncias"

  2. Clique no nome da a instância de SQL que você quer excluir.
  3. Para excluir a instância, clique em Excluir e siga as instruções.

A seguir