O código PHP não roda no CentOS como no Debian

0

Eu tenho uma máquina Debian rodando Apache e PHP 5. Eu tenho um site que roda muito bem, nenhum back-end de banco de dados é simplesmente PHP.

Estou tentando mover o site do PHP para uma máquina baseada no CentOS. Mas estou recebendo todo tipo de erros estranhos.

Qual é a diferença além de apache2 e httpd . Como posso fazê-lo funcionar sem modificações no código?

    
por opc0de 03.04.2015 / 16:08

1 resposta

1

Sem saber os erros específicos que você está encontrando, isso não é fácil de diagnosticar. Mas estou confiante que isso não tem nada a ver com um sistema sendo CentOS e outro sendo Debian; O código PHP é executado em qualquer sistema que possa executar código PHP.

Tudo o que disse, você afirma isso:

What is the difference besides apache2 and httpd. How can I make it work without code modifications?

Não há 100% de diferença entre apache2 e httpd entre Debian ( apache2 ) e CentOS ( httpd ). Esses são simplesmente nomes binários do sistema e a equipe principal de desenvolvimento do CentOS / RedHat / Fedora parece preferir o moniker httpd mais genérico para o Apache, em vez do apache2 específico da marca.

Sabendo disso, estou bastante confiante de que se este é um problema de código PHP, isso não tem nada a ver com o Apache. Pelo contrário, pode haver problemas com as versões instaladas do PHP 5 em execução em cada máquina.

Por exemplo, códigos que rodam bem no PHP 5.1 não necessariamente rodam bem no PHP 5.2, 5.3, 5.4, etc ... Cada release de menor e maior número do PHP é compatível com versões anteriores do PHP, mas pode haver pequenas mudanças na funcionalidade do código que poderiam fazer com que o código do PHP 5.3 se afogasse no PHP 5.4.

Na verdade, na minha experiência pessoal, muitos dos sites que eu gerencio estão permanecendo no PHP 5.3 agora até que as atualizações do código PHP são feitas para tornar o código “legal” com o PHP 5.4. Essas mudanças envolvem apenas o ajuste de algumas funções principais para acomodar mudanças de interface / função-núcleo entre o PHP 5.3 e 5.4, mas é sobre isso; não há pressa para lidar com isso ainda, porque o sistema operacional central desses sistemas tem o PHP 5.3 instalado e funciona bem.

Recomendamos que você compare os números da versão do plug-in Apache do PHP, verificando a saída de phpinfo() em ambos os servidores e ver quais versões estão instaladas e sendo usadas em cada uma delas. Para fazer isso, basta criar um arquivo na raiz da web de cada servidor chamado phpinfo.php dessa forma; Estou usando o nano como editor de texto, mas sinta-se à vontade para usar qualquer editor de texto de sua preferência:

nano /var/www/phpinfo.php

Observe também que estou usando /var/www/ como seu caminho webroot. não se esqueça de alterar isso para corresponder à raiz da web do seu sistema real.

Agora basta colocar o código a seguir nesse arquivo phpinfo.php :

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>

Agora carregue esse phpinfo.php por meio de um webbrowser por meio de um URL como este. altere o nome do host para corresponder ao nome do host real do seu sistema:

http://localhost/phpinfo.php

Logo no topo da página haverá uma grande faixa roxa que diz exatamente qual versão do PHP você está usando como esta que mostra claramente que o sistema que estou testando está usando PHP versão 5.4.10:

"phpinfo ()" exemplo da versão do PHP 5.4.10 banner.

Note que, embora a maioria das versões instaladas do PHP possua potencialmente um interpretador de linha de comando, esse interpretador de linha de comando do PHP não tem nada a ver com a versão do plug-in do Apache PHP. Portanto, a saída de php -v só lhe dará informações sobre o interpretador de linha de comando do PHP instalado; phpinfo() é o que você deve sempre usar para confirmar / verificar se a versão do seu servidor da web está sendo executada.

    
por 03.04.2015 / 16:16

Tags