El código PHP no se ejecutará en CentOS como en Debian

0

Tengo una máquina Debian que ejecuta Apache y PHP 5. Tengo un sitio web que funciona muy bien, sin back-end de base de datos simplemente PHP.

Estoy tratando de mover ese sitio web PHP a una máquina basada en CentOS. Pero estoy recibiendo todo tipo de errores extraños.

¿Cuál es la diferencia además apache2y httpd. ¿Cómo puedo hacer que funcione sin modificaciones de código?

opc0de
fuente
1
Si bien la respuesta de JakeGould es extremadamente útil, a menos que nos brinde más detalles, esta pregunta parece más adecuada en Stackoverflow ya que implica errores de programación. Si puede proporcionar algunos de esos errores, podríamos explicarle la razón por la que está recibiendo esos errores.
Ramhound

Respuestas:

1

Sin conocer los errores específicos con los que se encuentra, esto no es fácil de diagnosticar. Pero estoy seguro de que esto no tiene nada que ver 100% con un sistema que sea CentOS y otro sea Debian; El código PHP se ejecuta en cualquier sistema que pueda ejecutar código PHP.

Todo lo dicho, usted dice esto:

¿Cuál es la diferencia además apache2y httpd. ¿Cómo puedo hacer que funcione sin modificaciones de código?

Hay 100% no hay diferencia entre apache2y httpdnombre-sabia entre Debian ( apache2) y CentOS ( httpd). Esos son simplemente nombres binarios del sistema y el equipo de desarrollo central de CentOS / RedHat / Fedora parece preferir el httpdapodo más genérico para Apache en lugar del específico de la marca apache2.

Sabiendo eso, estoy bastante seguro de que si se trata de un problema de código PHP, no tiene nada que ver 100% con Apache. Por el contrario, puede haber problemas con las versiones instaladas de PHP 5 que se ejecutan en cada máquina.

Por ejemplo, el código que funciona bien en PHP 5.1 no necesariamente funcionará bien en PHP 5.2, 5.3, 5.4, etc.… Cada lanzamiento de PHP de números menores y mayores es compatible con versiones anteriores de PHP, pero puede haber cambios muy leves. en la funcionalidad del código que haría que el código PHP 5.3 se ahogara en PHP 5.4.

De hecho, en mi experiencia personal, muchos de los sitios que administro se están quedando en PHP 5.3 en este momento hasta que se realicen las actualizaciones principales del código PHP para que el código "juegue bien" con PHP 5.4. Estos cambios implican simplemente ajustar algunas funciones principales para acomodar los cambios de interfaz / función principal entre PHP 5.3 y 5.4, pero eso es todo; no hay prisa por lidiar con esto todavía porque el sistema operativo central en el que se encuentran estos sistemas tiene instalado PHP 5.3 y funciona bien.

Recomiendo que compare los números de versión del complemento Apache de PHP verificando la salida de phpinfo()ambos servidores y viendo qué versiones están instaladas y se utilizan en cada una. Para hacer esto, simplemente cree un archivo en la raíz web de cada servidor llamado phpinfo.phpasí; Lo estoy usando nanocomo editor de texto, pero siéntase libre de usar el editor de texto que prefiera:

nano /var/www/phpinfo.php

También tenga en cuenta que estoy usando /var/www/como su ruta webroot; asegúrese de cambiar eso para que coincida con la raíz web de su sistema real.

Ahora solo coloque el siguiente código en ese phpinfo.phparchivo:

<?php

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

?>

Ahora cárguelo a phpinfo.phptravés de un navegador web a través de una URL como esta; cambie el nombre de host para que coincida con el nombre de host real de su sistema:

http://localhost/phpinfo.php

Justo en la parte superior de la página habrá una gran pancarta púrpura que te dice exactamente qué versión de PHP estás usando como esta, que muestra claramente que el sistema que estoy probando está usando la versión 5.4.10 de PHP:

"phpinfo ()" ejemplo PHP versión 5.4.10 banner.

Tenga en cuenta que si bien la mayoría de las versiones instaladas de PHP potencialmente tienen un intérprete de línea de comandos, ese intérprete de línea de comandos de PHP no tiene nada que ver con la versión del complemento Apache PHP. Por lo tanto, la salida de php -vsolo le dará información sobre el intérprete de línea de comandos PHP instalado; phpinfo()es lo que siempre debe usar para confirmar / verificar la versión de su servidor web real en ejecución.

JakeGould
fuente