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, 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. 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. Instale a CLI do Google Cloud.

  6. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  7. Para inicializar a gcloud CLI, execute o seguinte comando:

    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. Instale a CLI do Google Cloud.

  12. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  13. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  14. Siga estas etapas para criar credenciais:
    • No Google Cloud console, 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.
  15. Instale o PHP e o Composer.
  16. 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.
  17. 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:

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

    em que

    • [YOUR_PROJECT_ID] é o ID do projeto 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

    em que:

    • [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]

    em que:

    • [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.

Excluir o projeto

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

Para excluir o projeto:

  1. No console 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 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 instância do SQL que você quer excluir.
  3. Para excluir a instância, clique em Excluir e siga as instruções.

A seguir