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

2 comentarios

Entradas populares de este blog

¿infectado con #wannacry ? reculta que este virus o gusano, tiene que usar una llave para encriptar que genera aleatoriamente, pero despues de generarla no limpia el espacio en RAM y esta puede ser recuperada siempre y cuando no se halla realizado un apagado de la maquina afectada. En Github esta el codigo fuente que realiza la recuperacion y recuperación de los archivos encriptados. 
https://github.com/gentilkiwi/wanakiwi

Tambien Comodo saco una utilidad gratuita para prevenir la infeccion la cual aisla cualquier programa desconocido y lo ejecuta en una sandbox, en el instante que se detecta comportamiento malicioso este queda aislado para tocar los archivos u otros datos sensibles.
https://www.comodo.com/home/internet-security/free-internet-security.php


Gestor de virtualizacion grafico con KVM y libvirt

Bueno, esta vez le dimos la oportunidad a uno de los sistemas mas populares de virtualizacion sobre Linux. que es KVM con libvirt. Todo con un aditamento y es webvirt que básicamente es una linda cara para descrestar.
Como distribución escogí una con la tengo experiencia y cuya instalación es relativamente sencilla, centos 7.
Para esto en la pagina de webvirt hay instrucciones completas de como instalar el ambiente de virtualización en pasos sencillos, pero si quieres aprender a fondo debes ir a la pagina de kvm y también a la de libvirt.
Aconsejable tener una nas, pero si quieren el bmw entonces montense en un esquema con san y dos servidores, esto les va a dar alta disponibilidad.
Si solo tienen el nas como yo pueden repartir las maquinas virtuales en dos servidores o correrlas en uno solo pero que sea un servidor responsable y tener al menos las imagenes sincronizadas entre las maquinas con al menos 24 horas de diferencia, si, quizás uno podría operar con un nas pero habrían opera…