<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cristiano Castro</title>
    <description>The latest articles on DEV Community by Cristiano Castro (@cristianodmtsb).</description>
    <link>https://dev.to/cristianodmtsb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F325686%2F98f6b186-5864-4cf5-b6eb-2ad51136482c.jpeg</url>
      <title>DEV Community: Cristiano Castro</title>
      <link>https://dev.to/cristianodmtsb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cristianodmtsb"/>
    <language>en</language>
    <item>
      <title>Instalar Magento2 em Localhost sem Docker</title>
      <dc:creator>Cristiano Castro</dc:creator>
      <pubDate>Sun, 27 Feb 2022 17:19:11 +0000</pubDate>
      <link>https://dev.to/cristianodmtsb/instalar-magento2-em-localhost-sem-docker-1a52</link>
      <guid>https://dev.to/cristianodmtsb/instalar-magento2-em-localhost-sem-docker-1a52</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Video Tutorial&lt;br&gt;
&lt;a href="https://youtu.be/b7FVzZj8e2U"&gt;https://youtu.be/b7FVzZj8e2U&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nossos pré-requisitos são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.apachefriends.org/download.html"&gt;Xampp&lt;/a&gt; (php &amp;gt;= 7.3&lt;/li&gt;
&lt;li&gt;&lt;a href="https://getcomposer.org/download/"&gt;Composer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-0"&gt;Elasticsearch&lt;/a&gt; == 7.0 (Não usar a versão 8)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://magento.com/tech-resources/download"&gt;Magento2&lt;/a&gt; (sem o conteúdo de amostra)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depois que fizer os downloads, instale os mesmos, seguindo os passos abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inicie o Apache e o MySql no painel do Xampp&lt;/li&gt;
&lt;li&gt;Navegue até a pasta do &lt;strong&gt;htdocs&lt;/strong&gt; dentro da pasta do Xampp&lt;/li&gt;
&lt;li&gt;Então descompacte a pasta do &lt;strong&gt;elasticsearch&lt;/strong&gt; dentro da &lt;strong&gt;htdocs&lt;/strong&gt;, acesse a pasta elasticsearch&amp;gt;bin e rode o arquivo &lt;strong&gt;elasticsearch.bat&lt;/strong&gt; para iniciar o serviço&lt;/li&gt;
&lt;li&gt;Confirme se o serviço foi iniciado acessando o &lt;strong&gt;localhost:9200&lt;/strong&gt;, deverá mostrar um JSON com alguns dados do serviço&lt;/li&gt;
&lt;li&gt;Agora acessando &lt;strong&gt;&lt;a href="http://localhost/phpmyadmin/"&gt;http://localhost/phpmyadmin/&lt;/a&gt;&lt;/strong&gt;, crie um banco de dados com o nome &lt;strong&gt;magento&lt;/strong&gt; ou alguma a sua escolha guarde para mais tarde&lt;/li&gt;
&lt;li&gt;Novamente no &lt;strong&gt;htdocs&lt;/strong&gt;, crie uma pasta &lt;strong&gt;magento&lt;/strong&gt; e descompacte os arquivos baixados do magento. Pode levar algum tempo&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Modificando arquivos
&lt;/h3&gt;

&lt;p&gt;Bom agora vamos modificar alguns arquivos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Acessando os arquivos usando VsCode ou outro editor acesse: 
&lt;strong&gt;vendor\magento\framework\Image\Adapter&lt;/strong&gt; e abra o arquivo &lt;strong&gt;Gd2.php&lt;/strong&gt; e vamos alterar toda a função &lt;strong&gt;validateURLScheme&lt;/strong&gt;, talvez esteja na linha &lt;strong&gt;#86&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;private function validateURLScheme(string $filename) : bool
{
   $allowed_schemes = ['ftp', 'ftps', 'http', 'https'];
   $url = parse_url($filename);
   if ($url &amp;amp;&amp;amp; isset($url['scheme']) &amp;amp;&amp;amp; !in_array($url['scheme'], $allowed_schemes) &amp;amp;&amp;amp; !file_exists($filename)) 
    {
       return false;
     }
   return true; 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Seguindo acesse a pasta &lt;strong&gt;vendor\magento\framework\View\Element\Template\File&lt;/strong&gt; e abra o arquivo &lt;strong&gt;Validator.php&lt;/strong&gt; vá até mais ou menos a linha &lt;strong&gt;#141&lt;/strong&gt; e modifique a linha:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;$realPath = str_replace('\\', '/',$this-&amp;gt;fileDriver-&amp;gt;getRealPath($path));&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuando na pasta do magento acesse &lt;strong&gt;vendor\magento\framework\Interception&lt;/strong&gt; e abra o arquivo &lt;strong&gt;PluginListGenerator.php&lt;/strong&gt; desça até a linha &lt;strong&gt;#158&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;$cacheId = implode('-', $this-&amp;gt;scopePriorityScheme) . "-" . $this-&amp;gt;cacheId;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OBS: Sempre verifique as aspas simples e duplas, as mesmas podem ser copiadas erradas devido a plataforma&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Agora vamos voltar no painel do Xampp e vamos editar o &lt;strong&gt;php.ini&lt;/strong&gt; podemos descer até a linha 921 e também vamos olhar as linhas 943, 944, 945 e 949 e vamos descomentar as extenções:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;extension=intl
...
extension=soap
extension=sockets
extension=sodium
...
extension=xsl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Partil CMD
&lt;/h3&gt;

&lt;p&gt;Bom agora vamos abrir o CMD na pasta do Magento para executar alguns comandos: &lt;/p&gt;

&lt;p&gt;O primeiro comando é esse aqui bem grande&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Execute e aguarde [Success]&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OBS: Perceba que um nome estranho aparecerá ex: &lt;strong&gt;admin_wrr7yw&lt;/strong&gt;, este é o link de acesso do painel. &lt;strong&gt;Guarde-o bem!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Após siga executando cada comando abaixo separadamente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sim eu sei demora muito mas calma está quase acabando. Agora você precisa voltar ao &lt;strong&gt;phpmyadmin&lt;/strong&gt; para rodar uma pequena query&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;INSERT INTO `core_config_data`(`path`, `value`) VALUES ('dev/static/sign', 0) ON DUPLICATE KEY UPDATE `value`=0&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Após rode novamente o comando de clean cache apenas para config&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;php bin/magento cache:clean config&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;para finalizar rode a aplicação com o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;php -S 127.0.0.1:8082 -t ./pub/ ./phpserver/router.php&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Et Voila!!! Acesse o painel admin:&lt;br&gt;
&lt;code&gt;http://127.0.0.1:8082/admin_wrr7yw/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;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. &lt;/p&gt;

&lt;p&gt;Acesse o video do youtube de seu like e se quiser me siga. Abraço e até a próxima. &lt;/p&gt;

</description>
      <category>magento</category>
      <category>localhost</category>
      <category>php</category>
      <category>xampp</category>
    </item>
  </channel>
</rss>
