[vc_row][vc_column][vc_column_text]Não é novidade de que o PHP possui um servidor web embutido, ele passou a existir desde a versão 5.4 do PHP. Você que desenvolve para a web com PHP deve estar bem habituado a instalar o AMPs (xamp, lamp, MAMP) da vida não é mesmo? Pois bem, apesar de isso ser prático, é pesado e de quebra ainda é difícil de customizar. Será que existe um jeito mais leve, de fácil customização e com uma praticidade incrível? Sim meus caros, existe. É o servidor web embutido do PHP e é sobre ele que falarei a partir de agora.
Prosseguindo, agora estou em minha pasta Home, que no Mac é equivalente à /Users/andrebian. Isto pode ser realizado em qualquer lugar, apenas mostrarei em minha home por questão de praticidade de não precisar alterar nenhuma permissão de pastas e arquivos.
Aqui crio uma pasta chamada php-server-embutido para ilustrar este post.
Como você já deve ter percebido, eu criei a pasta e imediatamente após isto entrei na mesma. Se não percebeu, veja atentamente a imagem anterior.
Ok, agora criaremos um arquivo chamado index.php com o seguinte conteúdo:
<?php phpinfo();Ah tá, o info do PHP... Sim, calma, apenas para exemplificar. Neste momento você já será capaz de rodar o PHP dentro da pasta que criou para exemplo (no meu caso /Users/andrebian/php-server-embutido) e acessar a aplicação no browser. Para isto se faz necessário rodar o seguinte comando: php -S endereço:porta Não entendeu? Sem problemas, segue exemplo:
Perfeito, perceba que agora o próprio PHP nos informa que está "ouvindo" o endereço https://localhost:8080 e que o Document root é /Users/andrebian/php-server-embutido.
Você deve estar se perguntando "... tá mas pra quê isso?" ou "... não entendi, o que é Document root?". Bem, o document root nada mais é que o ponto de execução do servidor web, em outras palavras, tudo que estiver dentro do diretório definido como document root pode ser executado a partir de um browser. A principal vantagem disso é que diferentemente de um xamp, wamp, lamp ou mamp é que você não precisa necessariamente dispor todos os projetos no mesmo local. Isto é útil para quando você deseja realizar algo pontual como uma simples correção ou rodar um projeto recém clonado do github, mesmo estando na pasta de Downloads.
Quer ver na prática? Abra o seu browser favorito e digite na barra de endereço o seguinte: https://localhost:8080.
<?php $data = new DateTime(); var_dump($data);Como bem sabemos, se não existir nenhuma configuração de timezone (espera-se que não tenha em uma nova instalação do PHP) isto nos causará um erro.
Mas o que é isso, uma tela em branco? Sim, uma tela em branco. E isto por que? Porque não temos nenhuma informação de report de erros configurada. Podemos fazer isso de duas formas. A primeira é através de ini_set('display_errors', true); seguido de error_reporting(E_ALL);. A segunda forma de ver os erros que ocorreram é simplesmente visualizar o terminal.
Desta forma sempre que um erro ocorrer você pode simplesmente visualizar seu terminal que um log constante de tudo que está ocorrendo será exibido, não apenas os erros, mas para identificar rapidamente o que pode estar causando um erro qualquer esta é uma ótima pedida.
Entendo, ainda estão faltando algumas coisinhas. Você pode instalar o mysql separadamente também e simplesmente habilitar a extensão através de um php.ini. Isso mesmo, você pode inclusive utilizar o mesmo php.ini que utilizava com os AMPs da vida com o servidor embutido apenas adicionando logo após o endereço e a porta o parâmetro -c /caminho/do/php.ini. Isto fará com que todas as bibliotecas e configurações que você comumente usa com sua instalação completa do xamp ou semelhante estejam igualmente configuradas. O comando completo seria:
php -S localhost:8080 -c /caminho/do/php.ini
#!/bin/bash php -S localhost:8080 -c /caminho/do/php.iniMova este arquivo para /usr/local/bin e aplique as permissoes necessárias para qualquer usuário. Neste caso como é apenas uma inicialização do servidor embutido do PHP não há mal nenhum em deixar as permissões em 777. Seguem os dois comandos:
mv start-php-server /usr/local/bin chmod +x /usr/local/bin/start-php-serverProntinho, agora estando em qualquer ponto do sistema operacional basta digitar no terminal: start-php-server.