Bom, instalar Magento2 em localhost, várias tentativas são necessárias e algumas lágrimas também. O Magento foi estruturado para ser montado em Adobe Cloud, porém devido ao alto valor do serviço aprender como rodar em qualquer servidor sempre é muito vantajoso e financeiramente mais rentável. Então segue abaixo uma tradução e correção de um tutorial para rodar Magento2 em localhost.
Video Tutorial
https://youtu.be/b7FVzZj8e2U
Nossos pré-requisitos são:
- Xampp (php >= 7.3
- Composer
- Elasticsearch == 7.0 (Não usar a versão 8)
- Magento2 (sem o conteúdo de amostra)
Depois que fizer os downloads, instale os mesmos, seguindo os passos abaixo:
- Inicie o Apache e o MySql no painel do Xampp
- Navegue até a pasta do htdocs dentro da pasta do Xampp
- Então descompacte a pasta do elasticsearch dentro da htdocs, acesse a pasta elasticsearch>bin e rode o arquivo elasticsearch.bat para iniciar o serviço
- Confirme se o serviço foi iniciado acessando o localhost:9200, deverá mostrar um JSON com alguns dados do serviço
- Agora acessando http://localhost/phpmyadmin/, crie um banco de dados com o nome magento ou alguma a sua escolha guarde para mais tarde
- Novamente no htdocs, crie uma pasta magento e descompacte os arquivos baixados do magento. Pode levar algum tempo
Modificando arquivos
Bom agora vamos modificar alguns arquivos:
- Acessando os arquivos usando VsCode ou outro editor acesse: vendor\magento\framework\Image\Adapter e abra o arquivo Gd2.php e vamos alterar toda a função validateURLScheme, talvez esteja na linha #86:
private function validateURLScheme(string $filename) : bool
{
$allowed_schemes = ['ftp', 'ftps', 'http', 'https'];
$url = parse_url($filename);
if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes) && !file_exists($filename))
{
return false;
}
return true;
}
- Seguindo acesse a pasta vendor\magento\framework\View\Element\Template\File e abra o arquivo Validator.php vá até mais ou menos a linha #141 e modifique a linha:
$realPath = str_replace('\\', '/',$this->fileDriver->getRealPath($path));
- Continuando na pasta do magento acesse vendor\magento\framework\Interception e abra o arquivo PluginListGenerator.php desça até a linha #158:
$cacheId = implode('-', $this->scopePriorityScheme) . "-" . $this->cacheId;
OBS: Sempre verifique as aspas simples e duplas, as mesmas podem ser copiadas erradas devido a plataforma
- Agora vamos voltar no painel do Xampp e vamos editar o php.ini podemos descer até a linha 921 e também vamos olhar as linhas 943, 944, 945 e 949 e vamos descomentar as extenções:
extension=intl
...
extension=soap
extension=sockets
extension=sodium
...
extension=xsl
Partil CMD
Bom agora vamos abrir o CMD na pasta do Magento para executar alguns comandos:
O primeiro comando é esse aqui bem grande
php bin/magento setup:install --base-url=http://127.0.0.1:8082 --db-host=localhost --db-name=magento2 --db-user=root --db-password="" --admin-firstname=Magento --admin-lastname=User --admin-email=user@example.com --admin-user=admin --admin-password=admin123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --search-engine=elasticsearch7 --elasticsearch-host=http://localhost --elasticsearch-port=9200
Explicando rapidinho, estamos setando a base-url para 127.0.0.1:8082, também colocamos os dados do banco de dados e colocamos os dados do elasticsearch para melhor identificar tudo, observe que o elasticsearch está setado como 7 isso porque o magento está configurado para o mesmo.
Execute e aguarde [Success]
OBS: Perceba que um nome estranho aparecerá ex: admin_wrr7yw, este é o link de acesso do painel. Guarde-o bem!
Após siga executando cada comando abaixo separadamente:
php bin/magento setup:di:compile
php bin/magento indexer:reindex
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f en_US en_GB
php bin/magento deploy:mode:set developer
php bin/magento cache:clean
php bin/magento cache:flush
php bin/magento module:disable Magento_Csp
php bin/magento module:disable Magento_TwoFactorAuth
Sim eu sei demora muito mas calma está quase acabando. Agora você precisa voltar ao phpmyadmin para rodar uma pequena query
INSERT INTO `core_config_data`(`path`, `value`) VALUES ('dev/static/sign', 0) ON DUPLICATE KEY UPDATE `value`=0
Após rode novamente o comando de clean cache apenas para config
php bin/magento cache:clean config
para finalizar rode a aplicação com o seguinte comando:
php -S 127.0.0.1:8082 -t ./pub/ ./phpserver/router.php
Et Voila!!! Acesse o painel admin:
http://127.0.0.1:8082/admin_wrr7yw/
Você deverá ver o painel do Magento, se acaso alguma coisa não deu certo, não se desespere, seja persistente que tudo vai dar certo.
Acesse o video do youtube de seu like e se quiser me siga. Abraço e até a próxima.
Top comments (1)
Obrigado e Parabéns!