# Como rodar PHP no Android?

Saindo um pouco da rotina de escrita de artigos pra série [PHP para Iniciantes](https://blog.kaiquegarcia.dev/series/php-para-iniciantes), decidi escrever esse artigo que pode ser bem útil pra quem quer desenvolver mas não tem um computador para se aventurar. A minha inspiração, dessa vez, veio através da minha cunhada, Danielly, que está dedicando um tempo considerável do seu dia-a-dia para estudar programação.

Aconteceu assim: eu fui visitar minha sogra no domingo e entramos nesse assunto. Ela estava com dificuldades de entender algumas coisas, então pegamos o app que ela estava usando para programar para web ([anWriter](https://play.google.com/store/apps/details?id=com.ansm.anwriter), que também tem uma versão paga) e começamos a codar um HTML bem simples.

No começo, eu pensava em somente responder algumas poucas perguntas. Mas no final, acabei mostrando **HTML**, **CSS** e **JavaScript**, enaltecendo a importância dessa poderosa interação no dinamismo das páginas. Por fim, chegamos ao assunto de back-end.

\- *Caraca, como vou mostrar back-end aqui?* - **pensei, sem ideias, pois nem com meu PC estava**.

Então me lembrei que muito tempo atrás eu fiquei sabendo sobre um projeto bem bacana chamado **[Termux](https://termux.com/)** - um emulador de terminal linux para Android - e decidi pesquisar por ele na PlayStore, encontrando isso: <https://play.google.com/store/apps/details?id=com.termux&hl=pt_BR&gl=US>.

PS.: Com certeza deve ter outros apps que emulem um terminal da mesma forma. Sinta-se a vontade para explorar todos eles, se quiser. O que posso te dizer após testá-lo, é que o **Termux funciona**, então se não tiver muito tempo para explorar outros, nem perca seu tempo, rs.

## Instalando o interpretador

Precisei ensinar para minha cunhada algumas coisas sobre PHP antes de começar, *antes mesmo de tentar rodar qualquer coisa*, pra ela entender que, se algo desse errado, não seria possível rodar o PHP naquele ambiente.

De cara, tentei instalar o PHP via CLI: `apt-get install php`.

**Falhei miseravelmente**.

> Quê? Então não dá, Kiko?

Dá sim! É só que antes de instalar qualquer coisa no Linux você precisa atualizar a "*base de conhecimento*" dele, que é como se fossem dicionários que ajudam a encontrar os pré-requisitos de instalação de pacotes de modo a induzir uma pequena solicitação de instalação de alguma coisa a instalar tudo o que for necessário.

> QUÊ

É só rodar um `apt-get update` antes.

> Ah, legal! E depois?

Depois de terminar as atualizações dessas bases de conhecimento, é só rodar ` apt-get install php` novamente. Vai instalar **UM MONTE DE COISA**, incluindo o interpretador do PHP.

Recapitulando:
```bash
apt-get update
apt-get install php
```

## Testando o interpretador

> O interpretador sozinho não faz nada, precisamos escrever scripts .php para executar suas instruções, certo, Kiko?

#### ERRADO

Você pode testar o interpretador do PHP usando o shell interativo através do comando `php -a`. Isso vai abrir uma interface de interpretação linha a linha. Você pode experimentar depois enviar o comando `echo "Hello world" . PHP_EOL;` e verá isso ser impresso na interface.

## Testando leitura de script

De todo modo, ainda assim, precisamos testar a ação de interpretar um script PHP. Então voltei ao editor de código e criei o seguinte arquivo "index.php" (de acordo com a [Sintaxe Básica](https://blog.kaiquegarcia.dev/php-para-iniciantes-sintaxe-basica-tags)):
```php
<?php
echo "Ola Dani";
```

O editor salvou o arquivo na pasta `/storage/emulated/0/web/teste-php/`.

Enfim, encontramos o primeiro grande problema: o **Termux** não tinha acesso a nada na pasta `/storage`, e nem pedia para fornecer. **Tive de ir manualmente nas configurações de permissão do aplicativo para liberar o acesso à memória.**

Somente depois de fazer isso, conseguimos navegar pelos diretórios para ir até a pasta mencionada acima. E aí foi simples: `php index.php` imprimiu `Ola dani` no terminal.

## Testando servidor

Se o PHP está executando normalmente via CLI e via arquivo, é muito provável que o comando de **servir** também funcione. E não custa nada tentar, certo? Já que já estávamos na mesma pasta, executei o comando `php -S localhost:8000` para que o interpretador iniciasse um webserver local na porta `8000`.

Funcionou perfeitamente. Quando abrimos o link `http://localhost:8000` no navegador, ele executou o arquivo `index.php` e exibiu `Ola dani`.

## Conclusão

Com isso, conseguimos até rodar um webserver para testar localmente. Já dá para começar a estudar back-end à vontade! Sem falar que pode ser possível trazer, também, banco de dados instalando pelo terminal. Eu só não sei se o desempenho vai ser tão legal, falta fazer alguns testes. Por ora, esse é o suficiente para que ela comece a estudar os meus artigos, hehehehe. E quando chegarmos no assunto sobre bancos de dados poderemos testar essa ideia.

Curtiu? Comenta e compartilha! E me conta aí se você também programa pelo celular / tablet, se já fazia isso tudo antes de alguma outra forma e as dificuldades de fazer tudo desse jeito, pode ser? Quero tentar ajudar todo mundo ao máximo.

**Inté!**
