Magento no ambiente local sem burocracia (com php -S)
Desenvolvimento, Magento 2
Atualizado em 10 de março de 2022
Que tal rodar o Magento 2 no ambiente local sem muita burocracia? Vamos ver como fazer isso usando o servidor web embutido do próprio PHP.
Docker?
Na minha opinião, o ambiente Docker é a forma mais recomendada para executar o Magento no ambiente de desenvolvimento.
No Magento 2: O Curso temos uma seção inteira sobre como configurar o Magento com ele. Este é o jeito mais seguro e sem dor de cabeça (depois de instalado, é claro, rs) de se desenvolver para Magento.
Servidor embutido PHP?
Muita gente não sabe, mas o PHP pode rodar um servidor web nativo com apenas um comando.
Duvida?
Crie um arquivo index.php em uma pasta qualquer e digite php -S localhost:8900
.
Em uma fração de segundo o servidor será iniciado e você poderá acessá-lo no seu navegador na URL informada.
Ele é ideal quando queremos um ambiente de desenvolvimento prático e rápido. Embora o Magento não seja assim tão prático e precisa de outras dependências, é possível usar o servidor embutido (built-in server) com ele.
Usando o PHP Built-in Server (Servidor embutido do PHP) com Magento 2
O Magento requer banco de dados Mysql, Elastic Search e uma versão específica do PHP para cada versão do Magento.
Não abordaremos aqui como instalar cada um deles em seu ambiente local. Isso pode variar de acordo com o sistema operacional que estiver usando. Você pode encontrar isso facilmente na internet, ou usar uma solução pronta como Mamp, Wamp ou Xampp. O ElasticSearch geralmente não vem nessas soluções, mas é fácil de ser instalado.
Veja a seguir o que você precisa antes de continuar.
Checklist de requisitos no seu ambiente local
- PHP instalado com a versão correta.
Digitephp -v
para verificar - Certifique-se que você tem as extensões necessárias do PHP.
Digitephp -m
para ver as que você tem. - ElasticSearch
Digitecurl localhost:9200
para testá-lo. Isto é, se você o configurou usando as opções padrão. - Mysql
Digitemysql --version
para conferir a versão.
Crie uma base de dados para o Magento, e um usuário com permissão total para ela. - Composer 2.x
Digitecomposer --version
para ver se seu composer está instalado e qual versão
Instalando o Magento no banco e ElasticSearch locais
Nós já vimos como instalar o Magento usando o composer aqui no Magenteiro. E faremos o mesmo aqui.
Após gerar suas credenciais no marketplace, baixe a última versão do Magento usando composer com o comando abaixo em uma pasta vazia:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Feito isso, é hora de instalar o Magento com o comando bin/magento setup:install
. Rode o comando abaixo substituindo os parâmetros pelos do seu banco e de sua preferência.
bin/magento setup:install --backend-frontname=admin --db-name=NOME_DO_BANCO --db-user=USER_DO_BANCO --db-password=SENHA_DO_USER --db-host=localhost:3306 --admin-user=magenteiro --admin-password=aluno123 --admin-email="[email protected]" --admin-firstname=Aluno --admin-lastname=Magenteiro --currency=BRL --session-save=files --use-rewrites=1
A esta altura você terá o Magento instalado nesta pasta, e uma série de tabelas criadas no banco.
Agora só falta um servidor web.
Executando php -S no Magento 2
O Magento serve os arquivos estáticos de forma peculiar. Além de outras regras de entrega de conteúdo bem personalizadas.
Apenas executar o comando php -S na raiz de uma loja Magento não será suficiente.
No entanto, o Magento já traz uma solução para quem deseja usar o servidor embutido. Trata-se de um arquivo gerenciador de rotas, localizado em <pastamagento>phpserver/router.php.
Para rodar o PHP -S com Magento, fazemos:
php -S 127.0.0.1:8082 -t ./pub/ ./phpserver/router.php
Desta forma, o Magento será servido imediatamente em http://127.0.0.1:8082. A pasta /pub
será a pasta de entrada, e o arquivo router.php cuidará das peculiaridades do nosso Magento.
Passo a passo em vídeo
Também criei uma aula com passo a passo em vídeo. Informe seus dados abaixo para assisti-la.
Executando php -S no Magento 1.x
O Magento 1.x não possui um router.php
nativo. Por isso temos que usar um de terceiro antes de iniciar nosso projeto.
Na raiz da loja Magento 1.x, digite curl -sS https://raw.githubusercontent.com/philwinkle/Magento-PHP-Webserver-Router/master/install.sh | bash
.
Em seguida você já pode iniciar seu servidor com php -S minhaloja.test:8080 router.php
.
Simples, não é mesmo?
- PagSeguro (PagBank) para Magento 1 recebe a Nova Geração - 9 de abril de 2024
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/magento-com-builtin-server/"]