Primeiros passos com o PHP no Compute Engine


Neste tutorial, você aprenderá como começar a usar o Compute Engine. Para segui-lo, implante um app da Web PHP "Hello World" no Compute Engine. Para receber ajuda com os primeiros passos no App Engine, consulte o ambiente padrão do App Engine.

Objetivos

  • Usar o Cloud Shell para fazer o download e implantar um app de amostra "Hello World".
  • Implantar um app de amostra "Hello World" em uma única instância do Compute Engine.

Custos

Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para 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. Enable the Compute Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  7. Enable the Compute Engine API.

    Enable the API

  8. No console do Google Cloud, abra o app no Cloud Shell.

    Acesse o Cloud Shell

    O Cloud Shell oferece acesso de linha de comando aos seus recursos de nuvem diretamente no navegador.

  9. Se você concordar em clonar o repositório, clique em Confirmar para fazer o download do código de amostra e mudar para o diretório do app.

  10. No Cloud Shell, configure a CLI gcloud para usar seu novo projeto do Google Cloud:
    # Configure gcloud for your project
    gcloud config set project YOUR_PROJECT_ID

Como executar o app no Cloud Shell

  1. Instale as dependências do aplicativo usando composer:

    composer install
    
  2. Execute o servidor da Web integrado ao PHP:

    php -S localhost:8080
    
  3. No Cloud Shell, clique em Visualização da Web e selecione Visualizar na porta 8080. Uma nova janela será aberta com o aplicativo em execução.

  4. Para interromper o servidor da Web local, pressione Control+C.

Implantar em uma instância única

Nesta seção, mostramos como executar uma única instância do aplicativo no Compute Engine.

Implantação de instância única.

No Cloud Shell, é possível implantar em uma máquina virtual (VM, na sigla em inglês) de instância única do Compute Engine que executa o aplicativo.

Usar um script para inicializar uma instância

É necessário instruir sua instância para que ela faça o download e execute o código. Isso pode ser feito por meio de um script de inicialização que é executado sempre que a instância for iniciada ou reiniciada.

set -e
export HOME=/root

# Install PHP and dependencies from apt
apt-get update
apt-get install -y git nginx php7.2 php7.2-fpm php7.2-mysql php7.2-dev \
    php7.2-mbstring php7.2-zip php-pear pkg-config

# Install Composer
curl -sS https://getcomposer.org/installer | \
    /usr/bin/php -- \
    --install-dir=/usr/local/bin \
    --filename=composer

# Get the application source code
git clone https://github.com/googlecloudplatform/getting-started-php /opt/src
ln -s /opt/src/gce /opt/app

# Run Composer
composer install -d /opt/app --no-ansi --no-progress --no-dev

# Disable the default NGINX configuration
rm /etc/nginx/sites-enabled/default

# Enable our NGINX configuration
cp /opt/app/config/nginx/helloworld.conf /etc/nginx/sites-available/helloworld.conf
ln -s /etc/nginx/sites-available/helloworld.conf /etc/nginx/sites-enabled/helloworld.conf
cp /opt/app/config/nginx/fastcgi_params /etc/nginx/fastcgi_params

# Start NGINX
systemctl restart nginx.service

# Install Fluentd
curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash

# Enable our Fluentd configuration
cp /opt/app/config/fluentd/helloworld.conf /etc/google-fluentd/config.d/helloworld.conf

# Start Fluentd
service google-fluentd restart &

Estas tarefas são executadas no script de inicialização:

  • Instala o PHP 7 e o PHP 7 FPM.

  • Instala e configura o NGINX.

  • Faz o download do Composer e o executa no código do app.

  • Instala o agente do Cloud Logging e o configura para monitorar os registros do aplicativo. Isso significa que a geração de registros configurada nas etapas anteriores deste tutorial é enviada como se você estivesse usando o App Engine.

Criar e configurar uma instância do Compute Engine

  1. Crie uma instância do Compute Engine:

    MY_INSTANCE_NAME='my-app-instance'
    ZONE=us-central1-f
    
    gcloud compute instances create $MY_INSTANCE_NAME \
        --image-family=ubuntu-1804-lts \
        --image-project=ubuntu-os-cloud \
        --machine-type=g1-small \
        --scopes userinfo-email,cloud-platform \
        --metadata-from-file startup-script=scripts/startup-script.sh \
        --zone $ZONE \
        --tags http-server

    Substitua a zona por uma zona de desenvolvimento, por exemplo, us-central1-a. Para mais informações sobre regiões e zonas, consulte Geografia e regiões.

    Isso cria uma nova instância e permite que ela acesse os serviços do Google Cloud e execute o script de inicialização. O nome da instância é my-app-instance.

  2. Verifique o andamento da criação da instância:

    gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
    

    Substitua YOUR_ZONE pela zona em que você implantou a instância.

    Quando o script de inicialização estiver concluído, você verá a seguinte mensagem:

    startup-script: INFO Finished running startup scripts.
    
  3. Crie uma regra de firewall para permitir o tráfego para a instância:

    gcloud compute firewall-rules create default-allow-http-80 \
        --allow tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --target-tags http-server \
        --description "Allow port 80 access to http-server"
    

  4. Receba o endereço IP externo da instância:

    gcloud compute instances list
    
  5. Para ver a execução do aplicativo, insira este URL no navegador:

    http://YOUR_INSTANCE_IP
    

    Substitua YOUR_INSTANCE_IP pelo endereço IP externo da instância.

Gerenciar e monitorar uma instância

Use o console do Google Cloud para monitorar e gerenciar sua instância.

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.
  3. Para visualizar todos os registros gerados pelos recursos do Compute Engine, acesse a página Explorador de registros. Acessar a Análise de registros

    O Cloud Logging é configurado automaticamente para reunir registros de vários serviços comuns, incluindo o syslog.

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

  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 recursos individuais

gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all
gcloud compute firewall-rules delete default-allow-http-80

A seguir