Cría fama y échate a dormir

Hace unos días nos dio por actualizar el servidor web a las últimas versiones de apache y php, de paso instalar un framework de .NET y descargar las actualizaciones pendientes de Windows Server 2003: Luego de hacerlo en el server de backup y probarlo pues decidimos pasarlo a producción, gran fallo por aquello empezó a cascar por todos lados con reinicios sorprendentes cada 30 minutos cuando la aplicación superaba un límite de memoria, y claro a quien le vamos a echar la culpa a Windows, porque claro tiene tan mala fama que que vamos a esperar que sea un software libre echo por no se quien lo que falle.

Pues empezamos a tener errores de Windows con el httpd.exe y la librería php5ts.dll que es una especie de “valgo para todo” de PHP y como eran errores reportados por Windows pues pensamos que era incompatibilidad de la nueva versión de apache 2.2.11 o del php 5.2.8 con Windows server 2003, culpa de quien, pues ‘claro de Windows’, craso error. Pero bueno allí enfrascado buscamos todo tipo de soluciones por internet poniendo los escasísimos daos que nos daba el log de apache, una cosa como esta “Parent: child process exited with status 3221225477” y nos mosqueaba que ponía sqlsrv: entering minit, dijimos claro el driver de Microsoft para php y SQL server no sirve, otro craso error.

Luego de testear todo lo posible y aplicar miles de formulas de internet como modificar el path y poner la ruta de las extensiones de php también y la ruta de la carpeta bin de apache, copiar el php5ts.dll a system32 (nuestro grabe error). Pues decidimos quitar una a una las actualizaciones de Windows porque claro sería eso lo que funcionaba mal, y no amigos lo que está mal es la librería php5ts.dll de php 5.2.8 porque al regresar a la versión 5.2.1 y borrar (importante) la dll php5ts que habíamos copiado en system32 todo volvió a la normalidad, reinstalamos las actualizaciones de Windows server y todos felices.

En fin que desde un primer momento Windows nos avisó, nos dijo esto esta mal, esto no sirve, pero claro ¡hacerle caso a redmond! noooo por dios que crimen, y mira el crimen era de un software libre, o sea de PHP.

Quería aclarar que si no quitas la dll de system32 esta la carga antes que cualquier otra librería, por ejemplo si esta en system32 y luego repetida en aunque sea otra versión en la carpeta de php cogerá solo la de system32, por eso poníamos phpinfo() y nos mostraba otra versión que la instalada (instalada en la carpeta php estaba la 5.2.1 pero en system 32 estaba la 5.2.8) aunque pusiera los valores del php.ini correctos y el monitor de apache mostrara versión 5.2.1 y fueras por línea de comandos y ejecutaras php – version, el caso es que sigue cargando solo la de system32 y esta NO es necesario que esté allí.

Esta librería como veis puede fallar para cualquier servidor de bases de datos sql server, mysql, oracle o incluso access desde odbc, no influye la base de datos pues lo que está mal es la propia librería php5ts y hay que cambiar de versión de php, no vale con cambiar la librería o mover otras librerías como libmysql o libeay32 de lugar, todo que se quede donde está, tampoco hay que modificar el path ni mucho menos instalar php y apache en la raíz de la unidad, todo eso es inútil, solo cambiar la versión de php y seremos felices. Nosotros retornamos completamente de apache 2.2.11 y php 5..8 a apache 2.0.63 y php 5.2.1, lo de apache aun nos queda probar si podemos actualizar o no, realmente opino que no haya problemas.

Comentarios