O gerenciamento de lojas de comércio eletrônico apresenta desafios multifacetados que você deve enfrentar para atender às necessidades de seus clientes. E, em alguns casos, esses desafios podem envolver compromissos.
Um desses casos é a segurança e o desempenho do seu site. Por um lado, a maioria dos compradores on-line espera que os sites de comércio eletrônico carregar em três segundos ou menos. Por outro lado, 18 por cento dos clientes saem de sites de comércio eletrônico no meio da jornada do comprador, se ele achar que falta segurança de pagamento no site.
Encontrar um equilíbrio entre esses requisitos como proprietário de uma loja Magento coloca você em uma situação difícil. Por exemplo, você pode usar PHP open_basedir para restringir o acesso de scripts PHP a informações fora de diretórios específicos, mas isso custa o desempenho do Magento.
Neste guia, explicaremos o que o PHP open_basedir faz, por que é melhor desativá-lo e como desativá-lo.
Aqui está o que iremos cobrir:
PHP open_basedir 101
PHP open_basedir é um recurso de segurança do PHP que permite definir os diretórios que os scripts PHP podem acessar. Em outras palavras, você pode usá-lo para restringir o acesso de scripts PHP a arquivos fora dos caminhos open_basedir.
Se você é proprietário de um site Magento, normalmente pode usar PHP open_dir no diretório de instalação do Magento para:
- Evite que scripts PHP acessem arquivos confidenciais fora do diretório, incluindo arquivos de sistema e arquivos de outros sites hospedados no servidor.
- Proteja o servidor contra software malicioso, como vírus e outros malwares, que exploram o acesso ao diretório.
- Cumpra os padrões de segurança de dados como PCI-DSS para Magento.
Como verificar o status do PHP open_basedir
Para verificar se o PHP open_basedir está ativado ou desativado em seu servidor web, crie um novo arquivo chamado info.php com o seguinte código no diretório raiz do seu domínio:
Em seguida, verifique o status do PHP open_basedir acessando example.com/info.php. No nosso exemplo, open_basedir não tem valor. Em outras palavras, open_basedir está desabilitado.
Problemas de PHP open_basedir Magento habilitados
Embora o PHP open_basedir permita proteger o servidor do seu site contra a extensão excessiva dos plug-ins PHP, ele geralmente causa dois problemas significativos com o Magento.
Erro: restrição open_basedir em vigor
Magento e suas extensões normalmente tentam acessar arquivos no servidor via fopen(), file_exists() ou include(). Se o Magento conseguir encontrar o arquivo solicitado, tudo correrá bem.
Mas se você tiver o open_basedir ativado, isso poderá impedir que o Magento encontre o arquivo solicitado. Nesse caso, o Magento normalmente retorna um erro ou aviso como:
Aviso: fopen(): restrição open_basedir em vigor. O arquivo (/tmp) não está dentro dos caminhos permitidos:(/var/www/vhosts/example.com:/usr/share/php)…
Mau desempenho do Magento
Embora você possa contornar o erro de restrição open_basedir adicionando manualmente os diretórios problemáticos à lista de permitidos, open_basedir geralmente significa mais problemas para o Magento do que vale a pena.
Você não pode se beneficiar do cache realpath do PHP quando open_basedir está habilitado. O cache Realpath ajuda a armazenar temporariamente o caminho dos arquivos que os scripts PHP incluem ou fazem referência.
O cache realpath desativado pode não ser um grande problema para sites menores com um número limitado de arquivos. No entanto, o Magento depende de vários arquivos trabalhando juntos em vários diretórios. Como resultado, você verá um desempenho degradado do Magento com PHP open_basedir.
Por exemplo, executamos um teste adicionando a função lstat() ao código Magento e monitorando quantas chamadas lstat recebemos ao carregar uma página de produto com open_basedir habilitado e desabilitado. Aqui estão os resultados.
Como desativar o PHP open_basedir
Como você desabilita o PHP open_basedir depende do seu provedor de hospedagem na web e da infraestrutura de hospedagem. Vamos discutir os três métodos mais comuns.
Editando arquivo php.ini via cPanel
Se você estiver gerenciando seu servidor com cPanel, você pode usar as seguintes etapas para desabilitar o PHP open_basedir:
1. Abra .
2. Abra o modo editor e selecione seu domínio.
3. Adicione um ponto e vírgula (;) antes open_basedir para desativá-lo. Alternativamente, você também pode adicionar nenhum depois = para desativá-lo.
4. Salve para atualizar o arquivo php.ini.
Editando o arquivo de configuração do Apache
Se você estiver usando um host que não seja cPanel, pode ser necessário editar um arquivo de configuração do Apache ou httpd.conf. Veja como você pode fazer isso:
1. Acesse os arquivos em seu servidor web via FileZilla ou programa semelhante.
2. Navegue até /etc/httpd/conf.
3. Localize httpd.conf e visualize ou edite-o.
4. Encontre a entrada open_basedir e defina-a como:
php_admin_value open_basedir nenhum
Entre em contato com seu provedor de hospedagem
Dependendo do seu provedor de hospedagem, talvez você não consiga acessar o httpd.conf ou alterar as configurações do open_basedir.
Se não conseguir encontrar as configurações de open_basedir em seus arquivos de configuração, você precisará entrar em contato com o suporte do seu provedor de hospedagem para obter ajuda.
Em alguns casos, o suporte ao cliente pode citar motivos de segurança para não desativar a funcionalidade open_basedir. Se for esse o caso, talvez seja melhor usar outro host, já que o próprio PHP Group não o considera um recurso de segurança confiável em seus documentos.
Considerações finais: PHP open_basedir — recomendações Magento da Hostinger
Embora o PHP open_basedir possa oferecer um falso conforto como recurso de segurança, não é algo em que você deva confiar às custas do desempenho do Magento.
Você pode obter alto desempenho e segurança robusta optando pela hospedagem corporativa Hostinger Magento. Nossos servidores com desempenho otimizado estão em data centers auditados SOC tipo II e vêm com recursos poderosos como segurança compatível com PCI, arquitetura flexível, proximidade 100 por cento de tempo de atividadee suporte 24 horas por dia, 7 dias por semana, 365 dias por ano.
E nossos planos têm o open_basedir desabilitado por padrão para melhor desempenho.
Confira nossos planos Magento gerenciados para começar hoje mesmo.