Eu tenho uma máquina Debian executando Apache e PHP 5. Eu tenho um site que roda muito bem, nenhum back-end de banco de dados é apenas PHP.
Estou tentando mover o site PHP para uma máquina baseada no CentOS. Mas estou recebendo todos os tipos de erros estranhos.
Qual é a diferença além de apache2
e httpd
. Como posso fazê-lo funcionar sem modificações no código?
Respostas:
Sem conhecer os erros específicos nos quais você está se deparando, isso não é fácil de diagnosticar. Mas estou confiante de que isso não tem 100% a ver com um sistema sendo o CentOS e outro sendo o Debian; O código PHP é executado em qualquer sistema que possa executar o código PHP.
Tudo o que disse, você afirma isso:
Há 100% nenhuma diferença entre
apache2
ehttpd
nome-sensato entre Debian (apache2
) e CentOS (httpd
). Esses são simplesmente nomes binários do sistema e a equipe de desenvolvimento central do CentOS / RedHat / Fedora parece preferir ohttpd
apelido mais genérico do Apache ao invés do específico da marcaapache2
.Sabendo disso, estou bastante confiante de que, se esse é um problema de código PHP, ele não tem 100% a ver com o Apache. Em vez disso, pode haver problemas com as versões instaladas do PHP 5 em execução em cada máquina.
Por exemplo, o código que roda bem no PHP 5.1 não necessariamente roda bem no PHP 5.2, 5.3, 5.4, etc. na funcionalidade de código que faria com que o código do PHP 5.3 bloqueasse no PHP 5.4.
De fato, na minha experiência pessoal, muitos dos sites que eu administro permanecem no PHP 5.3 agora até que sejam feitas as principais atualizações de código PHP para tornar o código "agradável" com o PHP 5.4. Essas mudanças envolvem apenas o ajuste de algumas funções principais para acomodar alterações na interface / função principal entre o PHP 5.3 e 5.4, mas é isso; não há pressa em lidar com isso ainda porque o sistema operacional principal em que esses sistemas estão instalados tem o PHP 5.3 instalado e funciona bem.
Eu recomendo que você compare os números de versão do plugin PHP Apache, verificando a saída de
phpinfo()
ambos os servidores e vendo quais versões estão instaladas e sendo usadas em cada uma. Para fazer isso, basta criar um arquivo na raiz da web de cada servidor chamadophpinfo.php
assim; Estou usandonano
como editor de texto, mas fique à vontade para usar o editor de texto que você preferir:Observe também que estou usando
/var/www/
como seu caminho de raiz da web; certifique-se de alterar isso para corresponder à raiz da web do seu sistema real.Agora basta colocar o seguinte código nesse
phpinfo.php
arquivo:Agora carregue isso
phpinfo.php
através de um navegador da web através de um URL como este; altere o nome do host para corresponder ao nome do host real do seu sistema:Bem no topo da página, haverá uma grande faixa roxa que informa exatamente qual versão do PHP você está usando como esta, que mostra claramente o sistema em que estou testando a versão 5.4.10 do PHP:
Observe que, embora a maioria das versões instaladas do PHP possua potencialmente um interpretador de linha de comando, esse interpretador de linha de comando PHP não tem 100% a ver com a versão do plugin Apache PHP. Portanto, a saída de
php -v
fornecerá apenas informações sobre o interpretador de linha de comando PHP instalado;phpinfo()
é o que você sempre deve usar para confirmar / verificar se a versão do seu servidor Web atual está em execução.fonte