Como 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. Você pode 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;
  • usar o phpMyAdmin como interface para o MySQL ou uma interface da Web para administrar o banco de dados.

Para usar o Google 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 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. Novos usuários do Cloud Platform podem se qualificar para uma avaliação gratuita.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do Google Cloud Platform.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform.

    Saiba como ativar o faturamento

  4. Instale e inicialize o SDK do Cloud.
  5. Crie uma instância do Cloud SQL de segunda geração.
  6. 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 uma janela de terminal, digite o seguinte comando para fazer o download do código-fonte do phpMyAdmin versão 4.6.3:

    wget https://files.phpmyadmin.net/phpMyAdmin/4.6.3/phpMyAdmin-4.6.3-all-languages.tar.bz2
    

    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 -xvf phpMyAdmin-4.6.3-all-languages.tar.bz2 -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 Google 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 o 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 phpMyAdmin, crie um novo arquivo chamado app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. Com seu editor preferido, 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, use o "padrão" de nome do serviço. Em relação aos objetivos deste tutorial, não há problema em estar apenas testando o phpMyAdmin no App Engine.

    Ele funciona apenas para o ambiente padrão do App Engine.

  4. Salve o arquivo.

Criar o config.inc.php

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

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

    touch config.inc.php
    
  2. Com seu editor preferido, 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. No navegador da Web, abra o gerador de chaves secretas blowfish.

  4. Copie a chave secreta blowfish exclusiva gerada pela página.
    Faça isso com a chave gerada, não com a de exemplo.

  5. Cole o novo secret no lugar de{{your_secret}}em config.inc.php.

  6. Acesse a página de instâncias do Cloud SQL no Console do GCP.

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

  8. Substitua o valor de{{your_connection_string}}(na variável $host) pela propriedade Instance connection name.

  9. Salve o arquivo.

Criar o php.ini

Nesse código, são usadas funções desativadas por padrão do phpMyAdmin 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 do 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 aplicativo no serviço phpMyAdmin, conforme especificado no arquivo app.yaml. A implantação em um serviço separado ajuda a garantir 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 aplicativo a partir da linha de comando, consulte Implantar um app PHP.

Fazer login no phpMyAdmin

Agora, faça login no phpMyAdmin. Com o arquivo config.inc.php implantado, foi possível fazer o login sem uma senha. Por enquanto, será feito dessa forma, até que as senhas sejam configuradas na próxima seção.

  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 código do aplicativo.

        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.

Solucionar problemas

O App Engine usa o Cloud SQL Proxy para se conectar com as instâncias do Cloud SQL Second Generation. Para mais informações sobre o funcionamento do proxy, consulte Sobre o Cloud SQL Proxy.

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

Como fazer a limpeza

Depois de concluir o tutorial do modelo do tipo de documento, será possível limpar os recursos criados no GCP para que eles não ocupem cota e você não seja cobrado por eles no futuro. Nas seções a seguir, veja como excluir e desativar esses recursos.

Como 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 do GCP, acesse a página "Projetos".

    Acessar a página Projetos

  2. Na lista de projetos, selecione um e clique em Excluir projeto.
  3. Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.

Excluir instâncias

Para excluir uma instância do Cloud SQL:

  1. No Console do GCP, acesse a página Instâncias de SQL.

    Acessar a página "Instâncias de SQL"

  2. Clique no nome a instância de SQL que você quer excluir.
  3. Para excluir a instância, clique em Excluir excluir no topo da página.

Próximos passos

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL