Usar o phpMyAdmin com o Cloud SQL no ambiente padrão do App Engine


Saiba como instalar o phpMyAdmin no ambiente padrão do App Engine. É possível usar o phpMyAdmin para administrar o Cloud SQL na Web.

Este tutorial pode ser útil se você:

  • executar aplicativos no App Engine;
  • usar o Cloud SQL como banco de dados;
  • usa o phpMyAdmin como interface para o MySQL ou uma interface da Web para administrar o banco de dados.

Para usar o Compute Engine, utilize uma das pilhas de desenvolvimento ou os produtos disponíveis em "Clique para implantar". Implantações de pilhas que incluem o MySQL, como LAMP e LEMP, ou produtos, como o Drupal, oferecem a opção de instalar o phpMyAdmin como parte da implantação.

Objetivos

  • Implantar o phpMyAdmin no ambiente padrão do App Engine.

Custos

Este tutorial usa componentes faturáveis do Cloud Platform, incluindo:

  • App Engine
  • Cloud SQL

Use a Calculadora de preços para gerar uma estimativa de custo com base no uso previsto. Usuários novos do Cloud Platform podem ter direito a uma avaliação gratuita.

Antes de começar

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

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Crie uma instância do Cloud SQL de segunda geração.
  11. Se preferir, implante um aplicativo do App Engine que use a instância do Cloud SQL ou selecione um já existente.

    Por exemplo, crie e implante a amostra do guestbook. Embora você possa implantar somente o phpMyAdmin, use-o com um aplicativo do App Engine em um cenário real.

Download do código-fonte do phpMyAdmin

Para implantar o phpMyAdmin como serviço de aplicativo do App Engine, faça o download do código-fonte do phpMyAdmin. Siga estas etapas:

  1. Em um terminal do Cloud Shell, digite o seguinte comando para fazer o download do código-fonte do phpMyAdmin versão 4.9.5:

    wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.tar.gz
    

    Para usar uma versão diferente do phpMyAdmin, use os links das versões disponíveis na página de downloads do phpMyAdmin.

  2. Crie um novo diretório para extração dos arquivos.

    mkdir phpMyAdmin
    
  3. Extraia os arquivos nesse local.

    tar -xzvf phpMyAdmin-4.9.5-all-languages.tar.gz -C phpMyAdmin --strip-components=1
    

Preparar os arquivos para implantação

Implantar o phpMyAdmin requer a criação de três arquivos: app.yaml, com informações de configuração do App Engine, config.inc.php, com informações de configuração do phpMyAdmin, e php.ini, com configurações específicas do aplicativo para PHP.

Criar app.yaml

O arquivo de configuração do App Engine especifica como os caminhos do URL correspondem a gerenciadores de solicitações e arquivos estáticos. São fornecidas também informações sobre o código do aplicativo, como o ID do aplicativo e o identificador da versão mais recente. Siga estas etapas para criar o arquivo:

  1. No diretório que você criou, phpMyAdmin, crie um novo arquivo chamado app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. No editor da sua preferência, cole o texto a seguir no app.yaml.

    service: phpmyadmin
    runtime: php55
    api_version: 1
    
    handlers:
    
    - url: /(.+\.(ico|jpg|png|gif))$
      static_files: \1
      upload: (.+\.(ico|jpg|png|gif))$
      application_readable: true
    
    - url: /(.+\.(htm|html|css|js))$
      static_files: \1
      upload: (.+\.(htm|html|css|js))$
      application_readable: true
    
    - url: /(.+\.php)$
      script: \1
      login: admin
    
    - url: /.*
      script: index.php
      login: admin
    
  3. Para que o phpMyAdmin seja implantado como primeiro e único aplicativo no App Engine, mude o valor do service de phpmyadmin para default.

    O padrão seria implantá-lo como serviço de um aplicativo existente e nomeá-lo. No entanto, se você nunca implantou um aplicativo, é necessário usar o nome de serviço "default". Siga esse nome sem se preocupar se você estiver testando o phpMyAdmin no App Engine.

    Este tutorial funciona apenas para o ambiente padrão do App Engine.

  4. Salve o arquivo.

Criar config.inc.php

Siga estas etapas para criar o arquivo de configuração phpMyAdmin.

  1. Crie um novo arquivo denominado config.inc.php.

    touch config.inc.php
    
  2. No editor da sua preferência, cole o texto a seguir no config.inc.php.

    <?php
    /**
     * Copyright 2016 Google Inc.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    /*
     * This is needed for cookie based authentication to encrypt password in
     * cookie
     * http://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator
     */
    $cfg['blowfish_secret'] = '{{your_secret}}'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
    
    /*
     * Servers configuration
     */
    $i = 0;
    
    // Change this to use the project and instance that you've created.
    $host = '/cloudsql/{{your_connection_string}}';
    $type = 'socket';
    
    /*
    * First server
    */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['socket'] = $host;
    $cfg['Servers'][$i]['connect_type'] = $type;
    $cfg['Servers'][$i]['compress'] = false;
    /* Select mysql if your server does not have mysqli */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    $cfg['Servers'][$i]['AllowNoPassword'] = true;
    /*
     * End of servers configuration
     */
    
    /*
     * Directories for saving/loading files from server
     */
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';
    
    /*
    * Other settings
    */
    $cfg['PmaNoRelation_DisableWarning'] = true;
    $cfg['ExecTimeLimit'] = 60;
    $cfg['CheckConfigurationPermissions'] = false;
    
  3. Abra o Google Cloud Shell e execute o seguinte comando para obter uma string aleatória para o blowfish:

    php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).PHP_EOL;"
    
  4. Cole a nova chave no lugar de {{your_secret}} em config.inc.php.

  5. Acesse a página Instâncias do Cloud SQL no console do Google Cloud.

  6. Clique na instância para exibir a página de detalhes dela.

  7. Substitua o valor de {{your_connection_string}} na variável $host pela propriedade Nome da conexão da instância.

  8. Salve o arquivo.

Criar php.ini

Nesse código, o phpMyAdmin usa funções desativadas por padrão no App Engine. Siga estas etapas para adicionar um arquivo php.ini. O App Engine reativará as funções:

  1. No diretório phpMyAdmin, crie o arquivo.

    touch php.ini
    
  2. Edite-o e adicione a seguinte linha:

    google_app_engine.enable_functions = "php_uname, getmypid"
    
  3. Salve o arquivo.

Implantar o aplicativo

Use os seguintes comandos para implantar o aplicativo no App Engine.

  1. Verifique se há atualizações para os componentes da gcloud.

    gcloud components update
    
  2. Implante o aplicativo executando o seguinte comando no diretório phpMyAdmin, onde está localizado o arquivo app.yaml:

    gcloud app deploy
    

    Esse comando implanta o app no serviço phpMyAdmin, conforme especificado no arquivo app.yaml. A implantação em um serviço separado faz com que o phpMyAdmin seja executado no mesmo data center que o aplicativo principal, o que melhora o desempenho. Para saber mais sobre a implantação do app a partir da linha de comando, consulte Como implantar um app PHP.

Fazer login no phpMyAdmin

Agora, faça login no phpMyAdmin.

  1. No navegador da Web, digite o URL para que o phpMyAdmin abra a página de boas-vindas, alterando o URL para usar o ID do app.

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. Em Nome de usuário, digite raiz.

  3. Digite a senha raiz fornecida ao configurar a conta raiz.

  4. Clique em Ir.

Ao desenvolver o aplicativo do App Engine, lembre-se de proteger por senha todas as contas de usuário criadas para acessar bancos de dados no Cloud SQL.

Resolver problemas

O App Engine usa o proxy do Cloud SQL Auth para se conectar às instâncias do Cloud SQL Second Generation. Para mais informações sobre como o proxy de autenticação do Cloud SQL funciona, consulte Sobre o proxy de autenticação do Cloud SQL.

Nos registros do App Engine no Console do Google Cloud, há informações sobre erros no App Engine.

Limpar

Depois de concluir o tutorial, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.

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:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Excluir instâncias

Para excluir uma instância do Cloud SQL:

  1. In the Google Cloud console, go to the Instances page.

    Go to Instances

  2. Click the name of the SQL instance you that want to delete.
  3. To delete the instance, click Delete, and then follow the instructions.

A seguir