Conteúdo


Fundamentos do IBM Cloud: Implementar um aplicativo PHP de amostra para a nuvem

Introdução ao desenvolvimento do aplicativo da web PHP no IBM Cloud

Visão geral

Comece trabalhando na nuvem usando a linguagem e as ferramentas com as quais você já está familiarizado como desenvolvedor da web. Neste tutorial, aprenda como executar, modificar, testar e implementar um aplicativo PHP simples para a nuvem. Depois de implementar o aplicativo para o IBM Cloud, a plataforma de desenvolvimento de nuvem da IBM, alguém na Internet pode acessá-lo.

Este tutorial faz parte da série de tutoriais "fundamentos do IBM Cloud" no developerWorks.

 

O que você fará neste tutorial

Etapa 1. Fazer download do código

Etapa 2. Implementar o aplicativo para IBM Cloud

Etapa 3. Examinar a estrutura do código

Etapa 4. Executar o aplicativo com o servidor integrado

Etapa 5. Modificar o código e executar novamente o aplicativo

Etapa 6. Implementar o código mudado para IBM Cloud

Hora do questionário!

Próximos passos

Vamos começar

IBM Cloud é onde os desenvolvedores corporativos constroem, executam, escalam e gerenciam aplicativos. Pronto para começar a criar seus próprios aplicativos no IBM Cloud? Este tutorial o conduz pelas etapas para hospedar um aplicativo PHP. Você começa com um aplicativo PHP de amostra, executá-lo em seu sistema local, modifica o código e, em seguida, implementa o aplicativo para IBM Cloud para que qualquer pessoa que esteja online possa usá-lo.

Aqui está uma rápida visão geral de como você trabalhará com o IBM Cloud neste tutorial.

Overview diagram showing relationship between local and cloud components for deploying the sample app
Overview diagram showing relationship between local and cloud components for deploying the sample app

Você executa sua própria instância do servidor da web Apache para suportar seu aplicativo PHP na nuvem. Depois que o servidor é implementado com êxito, ele é executado continuamente e não é compartilhado por ninguém.

Você também executa uma instância do servidor PHP integrado localmente, com o aplicativo carregado, em seu computador. Com esta configuração, você pode rapidamente testar e depurar seu aplicativo sem conectar à Internet e fazer upload do código toda vez que fizer uma mudança.

Depois de obter seu código em execução no servidor local e ficar satisfeito que ele esteja pronto para o tempo de preparação, você faz upload do seu aplicativo da web para a nuvem (o processo representado pela seta preta pontilhada no diagrama) usando a interface da linha de comandos do Cloud Foundry. O IBM Cloud, então, configura seu aplicativo depois de um servidor Apache com o módulo PHP. Seu aplicativo está, então, disponível por meio do IBM Cloud, acessível na Internet por qualquer pessoa com um navegador.

Conhecimento necessário para este tutorial

  • Conhecimento de trabalho de desenvolvimento de PHP
  • Conhecimento geral da terminologia e dos fundamentos do sistema cliente/servidor

Software necessário para este tutorial

Etapa 1. Fazer download do aplicativo da web PHP de amostra

  1. Clique neste botão para fazer download do código para o aplicativo da web PHP de amostra:
  2. Salve o aplicativo da web PHP de amostra no seu computador e extraia seu conteúdo, que consiste nos seguintes arquivos e diretórios: Screenshot of the directory structure of the sample app's code
    Screenshot of the directory structure of the sample app's code
    • index.php, o programa principal, roteia as solicitações recebidas para um dos modelos no diretório de visualizações.
    • vars.php contém variáveis usadas neste projeto PHP. Uma variável contém o texto para o título do website.
    • visualizações é um diretório que contém quatro modelos — arquivos .tpl — para as páginas que constituem o aplicativo. Cada arquivo de modelo pode conter elementos dinâmicos que são renderizados na hora com solicitações recebidas.
    • estático é um diretório que contém todos os ativos estáticos do aplicativo, que podem incluir CSS, imagens e o código JavaScript do lado do cliente que é executado no navegador.

Etapa 2. Implementar o aplicativo para IBM Cloud

Este aplicativo, como a maioria dos aplicativos da web PHP, pode ser implementado imediatamente para IBM Cloud sem nenhuma modificação ou configuração adicional. Para implementá-lo agora para o IBM Cloud:

  1. Se você ainda não estiver com login efetuado no IBM Cloud, execute esses comandos a partir do seu prompt de comandos do SO para efetuar login:
    cf api https://api.ng.bluemix.net/
    cf login
  2. Faça upload do aplicativo para o IBM Cloud executando o comando:

    cf push o nome do seu aplicativo

    O nome que você escolhe para o seu aplicativo deve ser exclusivo no IBM Cloud — não usado por nenhum outro usuário do IBM Cloud. Você obterá um erro se o nome (chamado de rota) for escolhido.

    O comando que você acabou de executar:

    1. Faz upload do aplicativo para o IBM Cloud
    2. Executa o Cloud Foundry buildpack para PHP no IBM Cloud
    3. Inicia uma instância do servidor da web Apache, com PHP e seu aplicativo carregado, no IBM Cloud
    4. Mapeia uma rota para o seu aplicativo em execução, permitindo que o aplicativo seja acessado através da Internet na URL https://o nome do seu aplicativo.mybluemix.net/
  3. Abra https://o nome do seu aplicativo.mybluemix.net/ em seu navegador para experimentar o app — um armazenamento da web simples chamado Lauren's Lovely Landscapes. O armazenamento atualmente vende três impressões; cada página da impressão exibe o nome, a imagem e o preço associados.
  4. Pare e reflita. Você acabou de implementar um aplicativo da web de trabalho para a nuvem! Tudo o que você precisou foi da ferramenta da linha de comandos cf e de uma conta do IBM Cloud.

Consulte o glossário para obter detalhes adicionais sobre como o buildpack funciona junto com o IBM Cloud para realizar o estágio e implementar seu aplicativo.

Começando com a próxima etapa, você começará a examinar e modificar o código. Um editor de destaque de sintaxe com suporte para várias guias torna muito mais fácil trabalhar com os vários arquivos PHP e de código de origem de modelo.

Etapa 3. Examinar a estrutura do código

Dê uma olhada no diretório de visualizações do arquivo ZIP extraído. É possível ver os quatro arquivos de modelo que compõem o website.

Este diagrama mostra como o aplicativo funciona:

Diagram show how the sample app works
Diagram show how the sample app works

Cada solicitação da web para uma página do armazenamento Lauren's Lovely Landscapes é roteada pelo seu código para um dos modelos. Ao rotear para o modelo, seu código anexa uma variável PHP denominada $site_title que contém informações do título do website. Cada modelo usa este objeto para renderizar seu título (Lauren's Lovely Landscapes).

Em index.php, é possível ver o código que roteia as solicitações para um modelo, junto com uma variável que contém o título do objeto $site_title :

$lll_route = trim("$_SERVER[REQUEST_URI]", "/");

if (file_exists("views/$lll_route.tpl")) {
	ob_start();
	require_once("views/$lll_route.tpl");
	$lllpage = ob_get_contents();
	ob_end_clean();

	echo $lllpage;

} elseif ...

Neste caso, o código primeiro extrai o nome base da visualização da URI e o carrega na variável $lll_route . Em seguida, ele verifica a existência de um arquivo de modelo que corresponde ao nome da rota (alaska, diz) e contém a extensão de arquivo .tpl (alaska.tpl) — no subdiretório de visualizações (visualizações/alaska.tpl).

Se o arquivo .tpl existir, o conteúdo será lido no buffer de saída e armazenado na variável $lllpage . Ler o arquivo no buffer de saída permite que index.php processe o código PHP no arquivo de modelo. Depois que a página HTML com o código PHP processado for carregada em uma variável ($lllpage), ela poderá, então, ser enviada para o navegador com o comando echo .

Se você examinar um dos modelos — alaska.tpl, por exemplo, — você pode ver o uso da variável do modelo PHP $site_title para renderizar o título:

<head>
            <title> <?php echo $site_title; ?> </title>
	...

Etapa 4. Executar o aplicativo com o servidor integrado

A partir do PHP versão 5.4.0, um servidor da web interno é incluído com cada instalação do PHP. Este servidor mínimo torna a codificação, o teste e a demonstração de aplicativos PHP consideravelmente mais simples. Você não tem mais que definir e configurar um servidor Apache ou Ngnix apenas para codificar no PHP.

Agora, você está pronto para executar o aplicativo localmente em seu computador:

  1. No diretório-raiz do seu aplicativo, execute:

    php -S localhost:8000

  2. Aponte um navegador para o servidor local em http://localhost:8000/.
  3. Tente esta instância do aplicativo e veja se você observa alguma diferença a partir daquele hospedado pelo IBM Cloud. Como você está consultando o mesmo aplicativo, produzido com o mesmo código, não deve haver nenhuma diferença observável entre os dois.

Etapa 5. Modificar o código e executar novamente o aplicativo

Nesta etapa, você irá modificar o preço de uma gravura e vê-la atualizada no website em execução localmente imediatamente.

  1. Em seu editor de texto, abra o arquivo antarctica.tpl e veja o preço no código-fonte.
  2. Mude o preço de US$ 100,00 para 80.00 e salve o arquivo. A linha mudada deve ser semelhante a:
    <div id="price">80.00</div>
  3. Execute o aplicativo localmente outra vez:

    php -S localhost:8000

  4. Aponte um navegador para o servidor PHP.
  5. Selecione a gravura Antarctica e observe o preço mudado da gravura.

Etapa 6. Implementar o código mudado para IBM Cloud

Para deixar que todos na Internet saibam sobre o novo preço da gravura Antarctica, você implementará o aplicativo mudado para IBM Cloud.

Na Etapa 2, você viu como é simples implementar um programa PHP para o IBM Cloud. Novamente, execute este comando a partir do diretório-raiz do seu código:

cf push o nome do seu aplicativo

Depois da implementação bem-sucedida, experimente o aplicativo apontando qualquer navegador da web para:

https://o nome do seu aplicativo.mybluemix.net/

Glossário e mensagens de status

Vamos revisar alguns termos e mensagens de status que você provavelmente vai encontrar à medida que usar o IBM Cloud.

Glossário

  • Droplet— Um pacote configurável pronto para ser executado na nuvem, incluindo tudo o que é necessário (por exemplo, um pacote configurável com JVM, servidor de perfil Liberty e seu aplicativo), exceto um sistema operacional.
  • Buildpack— Um executável que pega o código ou o servidor em pacote do qual você realiza push e o empacota em um droplet.
  • Manifest— Um arquivo opcional, denominado manifest.yml, que você pode incluir no seu projeto. O arquivo manifest configura vários parâmetros que afetam o servidor implementado — incluindo o tamanho da memória, o buildpack a ser usado durante a implementação, serviços que são requeridos, o espaço em disco consumido e assim por diante. Para aplicativos PHP simples, você não precisa de um manifest; o sistema automaticamente detecta e usa o buildpack do Cloud Foundry e aplica uma configuração padrão.
  • Preparação— O processo manipulado pelo buildpack, empacotando o que você fez upload com componentes e dependências do sistema em um droplet válido.
  • Droplet Execution Agent (DEA)— A parte do sistema que é responsável por reconstituir o droplet e executar seu aplicativo na nuvem.
  • Warden— Um mecanismo para assegurar que seu aplicativo esteja isolado e protegido de outros aplicativos em execução.

Mensagens de status

Quando você emite o comando da CLI cf push , você vê uma série de mensagens de status. Se examiná-las com atenção, você verá as seguintes fases sequenciais:

  1. Seu push fez upload com êxito do código-fonte do aplicativo para a área de preparação.
  2. Se uma instância existente do seu aplicativo já estiver em execução, ela será parada antes de a preparação começar.
  3. O buildpack começa o processo de preparação, que pode incluir:
    1. Fazer download e instalar vários componentes do sistema (Servidor da web Apache e módulo PHP para Apache, por exemplo)
    2. Fazer download e instalar ferramentas de tempo de execução
    3. Colocar seu aplicativo no local
    4. Configurar o ambiente
    5. Empacotar tudo para criar o droplet
    Para acelerar essas etapas, a preparação faz uso pesado do cache, portanto, você também pode ver algumas mensagens de reutilização-do-cache na combinação.
  4. O DEA tenta iniciar seu aplicativo a partir do droplet, executando sob supervisão de um warden (contêiner).

Questionário

Teste seu conhecimento sobre o que você aprendeu neste tutorial. As respostas estão abaixo.

  1. Você deve instalar o PHP pelo menos da versão 5.4.0 em seu sistema antes de implementar os aplicativos PHP para o IBM Cloud.
    1. Verdadeiro
    2. Falso; qualquer versão de PHP fará
    3. Falso; não é necessário instalar o PHP
  2. O servidor da web integrado do PHP é útil porque:
    1. Ele é mais eficiente e versátil do que um servidor da web Apache antigo
    2. Ele se integra com o IBM Cloud para tornar fácil a hospedagem de aplicativos através da Internet
    3. Sua linha de comandos é muito curta
    4. Todas as alternativas acima
    5. Nenhuma das alternativas acima
  3. O nome do aplicativo que você escolhe para sua implementação do IBM Cloud do Lauren's Lovely Landscape deve ser:
    1. Longo e deve parecer importante
    2. Curto e conciso
    3. Exclusivo entre todos os seus outros aplicativos
    4. Exclusivo entre todos os aplicativos no mesmo datacenter
    5. Não usado por nenhum outro usuário do IBM Cloud em todo o mundo
  4. O pacote configurável pronto-para-execução criado pelo IBM Cloud durante a preparação depois de você realizar push do seu aplicativo é chamado de:
    1. IBM Cloud dropping
    2. Mullet
    3. Droplet
    4. Pacote configurável pronto-para-execução
    5. Arquivo zip do IBM Cloud
  5. Nas mensagens de status do IBM Cloud, o termo preparação refere-se a:
    1. Uma reprodução Broadway
    2. Um processo de pacote configurável manipulado pelo buildpack, resultando em um droplet
    3. Carregamento de um buildpack
    4. O processo de validação antes da implementação
    5. Uma execução simulada do seu aplicativo antes da implementação real para a nuvem

Respostas do questionário

1. c, 2. e, 3. e, 4. c, 5. b

 

Próximos passos

Neste tutorial, você:

  • Implementou um aplicativo PHP do código-fonte para o IBM Cloud usando a CLI do Cloud Foundry
  • Revisou a estrutura do aplicativo da web PHP do Lauren's Lovely Landscapes
  • Modificou o código do aplicativo e usou o servidor integrado do PHP para executar e testar seu aplicativo modificado localmente
  • Reimplementou o código modificado para o IBM Cloud com a CLI do Cloud Foundry e testou o aplicativo na Internet

Agora, continue aprendendo os "fundamentos do IBM Cloud" no developerWorks com este próximo tutorial. Você aprenderá como configurar a colaboração da equipe e as implementações automatizadas para seu aplicativo Node.js:

Mais recursos do IBM Cloud

Para um fluxo constante de tutoriais e outros recursos técnicos para ajudá-lo a aprender, desenvolver e se conectar com IBM Cloud, veja a página do IBM Cloud no developerWorks.


Recursos para download


Temas relacionados

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing, Tecnologia Java
ArticleID=1021939
ArticleTitle=Fundamentos do IBM Cloud: Implementar um aplicativo PHP de amostra para a nuvem
publish-date=11242015