Cursos Magento

Como executar um PHP meu numa loja Magento 2

,

Atualizado em 05 de junho de 2020

Não rara são as vezes que precisamos criar um script PHP para fazer alguma tarefa fora do Magento.

Eu mesmo sempre acabo colocando um php com um <?php phpinfo(); em algum lugar para checar as configurações e variáveis do servidor.’

No Magento 1… era fácil

No Magento 1, assim como na maioria dos softwares e aplicações, bastava colocar nosso PHP na pasta raiz e acessá-lo. Sem grandes surpresas ou dificuldaded, certo?

No Magento 2… depende

Executar um script PHP puro no Magento 2 vai depender de qual servidor web você está usando (nginx ou apache) e das configurações do mesmo.

Premissa básica

Antes de seguir, vou considerar que:

Antes de seguir, vou considerar que você configurou a pasta pública do seu Magento corretamente.

Isto é, quando acessar www.sualoja.com a pasta que está sendo lida é a pasta /pub e não a pasta raiz do seu Magento. Já falamos disso aqui, lembra?

Se você está usando Apache…

Se você estiver usando Apache, mesmo que com a reescrita de url’s ativada, basta criar seus arquivos php dentro da pasta /pub.

Todo arquivo PHP adicionado lá será lido na raiz da sua loja.

Você pode criar subpastas lá também.

Se estiver usando nginx…

Se estiver usando nginx o processo pode ser um pouco mais complicado.

Você terá que localizar o seu arquivo de configuração do nginx. Geralmente ele é herdado do arquivo nginx.config.sample localizado na raiz do projeto.

Em seguida, localize o trecho location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {.

Esta é a regra de reescrita no Magento 2. Basicamente ela redirecionará para o index.php qualquer chamada que não comece com esses nomes de arquivos: index.php, get.php, static.php, etc.

Tudo que você precisa fazer é adicionar o seu arquivo nesta lista. Ex: meuarquivo.php, resultará em location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check|meuarquivo)\.php$ {.

Lembre-se de reiniciar o nginx após fazer a alteração.

Em alguns casos, o servidor nginx é configurado na frente de um servidor apache e as reescritas de url com .htaccess funcionam naturalmente, não sendo necessário alterar nada. Nesses casos, você pode seguir como se estivesse usando um servidor Apache.

Nginx + Valet-plus?

Se estiver usando Valet-plus no Mac, precisará localizar o Driver do Magento 2 em /Users/SEUUSUARIO/.composer/vendor/weprovide/valet-plus/cli/drivers/Magent2ValetDriver.php e adicionar a exceção abaixo dentro do método frontControllerPath.

if(strpos($uri, '/meuarquivo.php') !== false){
    return $sitePath.'/pub'.$uri;
}

 

Simples né?

Assuntos: | | |
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/como-executar-arquivo-php-no-magento-2/"]