Ir al contenido principal

Problema con php/apache en Windows Server 2008

En estos días tuve que resolver un problema con una instalación de PHP y Apache en Windows server 2008 sobre arquitectura de 64bits.
Resulta que instalaron appserv, el cual es un paquete muy util, viene para hacer un montaje tipo WAMP, viene con el MySQL y Apache, quedan montados como servicios en windows, con su arranque automático, etc.
El problema que tenia mi cliente fue que de un momento a otro, los scripts de php que tenian dejaron de ejecutarse y aparecía el código fuente en el navegador, es decir que el apache los estaba tratando como archivos de texto.
Lo primero fue revisar que la linea del apache que se encarga de cargar la extensión de php estuviera y lo mismo con la asociación de tipos mime para la extensión php. Esto estaba bien.
Luego revise que el interprete de PHP pudiera ejecutar un script de php, aqui obtuve pistas sobre el problema. Resulta que al ejecutar el interprete php-win.exe, este se quejaba de que faltaba el archivo msvcr71.dll, pues bien, aquí esto si era un problema, esto es un archivo mas o menos viejo del visual studio, que no viene con windows 2008, aun si lo copiara probablemente no iba a ejecutar por incompatibilidad con la nueva arquitectura, así que decidí buscar un apache y un php compilado para arquitectura de 64bits. Así fue como encontré estos binarios que instale en lugar del appserv (este lo desinstale).
Primero copie los contenidos del archivo de php a c:\php, lo mismo que el comprimido del apache a la raíz del C:
Luego edite la conflagración del apache, en la sección de LoadModules coloque estas lineas:
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/php"

Luego Copie los siguientes dlls de la carpeta c:\php a c:\windows\system32
C:/php/php5ts.dll
C:/php/php5isapi.dll
C:/php/php5apache2_2.dll
C:/php/ext/php_mysql.dll

Luego hay que crear el php.ini en c:\php copiando el archivo php.ini-dist a php.ini y editándolo acorde a las necesidades, recuerde usar php short tags para que ejecute los scripts que utilizan como tags de php.
Después de hacer esto cambie a la carpeta bin dentro de la carpeta raíz de apache y ejecute el comando httpd -k start para iniciar al apache, y tome nota de los errores sobre dlls que salgan, esos dlls hay que copiarlos de la carpeta c:\php a c:\windows\system32, una vez haga eso, detenga y reinicie el apache, y repita hasta que no salgan mas errores de dlls faltantes.
Una vez arranque el apache sin errores, esta listo para instalarlo como servicio con el comando httpd -k install

Comentarios

Phonck ha dicho que…
Interesante tema Juan, estoy en el mismo dilema exactamente, sin embargo, debo preguntar si los binarios para 64bits son confiables para un servidor en producción??? como le han funcionado???
Gracias por el aporte y un abrazo..
Phonck ha dicho que…
Este comentario ha sido eliminado por un administrador del blog.

Entradas populares de este blog

Phplist no guarda estadisticas de rebotes

Cuando en phplist envíen una campaña, y este no les guarde las estadísticas de rebotes, lo que deben hacer es configurar la fuente de donde van a llegar los rebotes, es decir: Además deben verificar que el remitente de los correos sea el correcto, muchas veces se queda bloqueado en www-data o www, el cual es el usuario con el cual esta corriendo el servidor web y esto se corrige en el php.ini. luego en lists/admin/config deben encontrar las lineas referentes al manejo del rebote(bounce). Aquí deben configurar todo para pop3, importante, tener en cuenta que las opciones de mbox aun no están completamente implementadas y no funcionan. Una vez hagan esto, deben poder procesar los rebotes correctamente y tener unas estadísticas mas fiables.

Q & A | OStatus

OStatus : Ostatus es el nuevo estandard para redes sociales federadas. Es decir redes sociales que permiten compartir informacion entre ellas. Este este estandard va a permitir por ejemplo enviar una actualizacion de mi estado de facebook a google buzz y twitter al mismo tiempo, sin necesidad de utilizar programas hechos por terceros. Es la nueva generacion de redes sociales. Y toda red social que sea una isla dejara de ser vigente.

Google Analytics en blogger

Bueno no se si han tenido este problema pero blogger, sobre todo con las nuevas versiones de las plantillas no se esta dejando poner el código java script. Primero intente con html insertando el código justamente antes del tag que cierra el body y como resultado blogger siempre le mete código javascript antes del tag dañando la vinificación del código. Así que después intenta agregando un gadget de tipo javascript donde pongo el código de rastreo de google analytics.... y adivinen que paso.... nada, sigue sin poder validar la aplicaron analytics de google. Ha si y ya leí el manual de analytics, eso fue lo que aplique con los gadgets.