DEV Community

Cristiano Castro
Cristiano Castro

Posted on

10 2

Instalar Magento2 em Localhost sem Docker

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:

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; 
}
Enter fullscreen mode Exit fullscreen mode
  • 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (1)

Collapse
 
joabiovilela profile image
Joábio Vilela

Obrigado e Parabéns!

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more