Truques com o comando "php artisan serve"
Neste tutorial, vamos aprender algumas dicas e truques com o comando php artisan serve
que poderão ser muito úteis para quem utiliza o framework Laravel!
O que é PHP Artisan Serve?
O comando php artisan serve
tem a finalidade de servir uma aplicação Laravel através de um servidor de desenvolvimento. Isso se torna bastante útil no processo do desenvolvimento, porque o desenvolvedor não precisa se preocupar em configurar um Apache ou Ngnix para levantar um servidor de desenvolvimento local. Basta executar este comando e seu site ou aplicação web já estão disponíveis para visualização local!
Como funciona o comando Artisan Serve?
O comando php artisan serve
por padrão vem configurado para ser executado no host localhost
e na porta 8000
. Isso permite que você acesso sua aplicação Laravel através da url http://localhost:8000
. Porém existem dois argumentos opcionais disponíveis neste comando, que permite modificar este comportamento padrão. Os parâmetros são --port
e --host
. Atráves deles, podemos realizar alguns truques na hora de iniciar o servidor local do Laravel.
Vejamos alguns...
Mudando a porta do servidor no Artisan Serve
Com o parâmetro --port
, você pode definir que a porta 9000
, como no exemplo abaixo:
php artisan serve --port=9000
Esse primeiro truque pode ser útil, já que você pode querer executar a mesma aplicação duas vezes em portas diferentes, ou mesmo executar ela em outra porta por já ter uma utilizando a porta padrão 8000.
Expondo a aplicação através do IP da rede com o Artisan Serve
O parâmetro --host
você pode definir o host
que será vinculado ao servidor. Por exemplo, ao invés de vincular ao localhost
você poderia vincular o servidor ao ip
da sua conexão na rede.
Nota: Você pode usar o comando ifconfig
ou hostname -I
no Linux para localizar seu IP.
php artisan serve --host=192.168.0.102
O artisan estará rodando em http://192.168.0.102:8000
.
Esse último exemplo é muito útil caso você queria testar a sua aplicação a partir de outro dispositivo conectado na mesma rede, como um celular, table ou notebook. Ao acessar o endereço IP e a porta, você terá acesso à aplicação.
{% include ads_article.html %}
Vinculando o Artisan Serve a um domínio local
Ainda é possível vincular o --host
a um host local, como fazemos num Virtual Host do Apache.
Tomando por exemplo do Linux, você poderia fazer o seguinte:
Edite o arquivo
/etc/hosts
com o comandonano
ouvi
Adicione a linha
127.0.0.1 meusite.local
e salve.Execute o comando
php artisan serve --host=meusite.local
.
Ao fazer isso, a aplicação será executada em http://meusite.local:8000
.
Deixando o Artisan Serve disponível em todos os Hosts e IPs
Você pode executar sua aplicação no php artisan serve
e vincular a todos os hosts configurados no seu /etc/hosts
bem como nos IPs. Basta utlizar a opção 0.0.0.0
na opção --host
.
Exemplo:
php artisan serve --host=0.0.0.0
Sua aplicação estará disponível em localhost
, no seu ip e nos demais hosts.
Utilizando o Artisan Serve na porta 80
Por padrão, para não definir a porta ao acessar o domínio no Navegador, você precisa que ele seja executado na porta 80. Para isso, bastaria executar o php artisan serve
com o parâmetro --port=80
. Porém, pode acontecer de essa porta já estar ocupada, caso você tenha o Nginx ou Apache instalado na sua máquina, pois esses processos ocupam a porta 80.
Se você se encaixa no caso acima, você precisaria parar a execução desses serviços temporariamente. Basta executar os seguintes comandos, de acordo com a necessidade:
Nginx:
sudo service nginx stop
Apache2:
sudo service apache2 stop
Observação: Se ainda assim a porta se mantiver ocupada, você pode tentar executar o seguinte comando para matar qualquer processo que esteja utilizando a porta 80
:
sudo fuser -k 80/tcp
Após isso, você ainda poderá receber um "permission denied" ao tentar executar o artisan serve na porta 80. Se isso acontecer, execute o comando como sudo
.
Veja:
sudo php artisan serve --port=80 --host=meusite.local
Conclusão
O php artisan
é um comando muito útil para o desenvolvimento com Laravel e saber dominá-lo pode se tornar um grande diferencial para o desenvolvedor.