domingo, 7 de diciembre de 2014

Error 0xc000007b en Wamp Server

Hace poco he decidido dar el gran salto a Windows 8.1 por cuestiones laborales y me he encontrado con un problema muy común en la instalación del Wamp Server en sistemas de 64 bits, el famoso error 0xc000007b. Este error, por lo general es debido a una falta o mala instalación de las librerías necesarias para que el Wamp Server funcione correctamente, sin embargo, puede haber otras razones por las cuales no funcione y las cuales se desccribirán a continuación.

Descripción del problema


Al instalar el Wamp Server (x64) de manera correcta, en el momento que intenta iniciar la aplicación aparece el siguiente mensaje de error:


Aunque el error es bastante general, suele ocurrir con más frecuencia en sistemas de 64 bits. Los datos del entorno sobre el cual se ha realizado la solución descrita en este post son los siguientes:

S.O.: Windows 8.1 Pro
Arquitectura: 64 bits
Web Server: Wamp Server 2.5
Otros Servers: IIS

Creo necesario mencionar que en ese momento había una instalación del IIS de Microsoft y en ninguna medida contribuye con el error descrito. Sin embargo, después de solucionar el inconveniente deberá configurarse correctamente el Wamp Server en el puerto 8080 para que no entre en conflicto con el IIS.

También se puede observar que en la barra de tareas del escritorio el icono del Wamp Server se queda en amarillo y al colocar el puntero sobre él indica que solamente se ha habilitado un servicio de los dos necesarios para que funcione el servidor.


Para identificar el servicio que no ha podido iniciar basta ver el administrador de tareas y en "Procesos" verificamos que exista mysqld y Apache HTTP Server. En este caso, solamente veremos en ejecución el proceso mysqld. Además de esto, no es posible realizar ninguna acción sobre el servidor puesto que el menú del Wamp Server no funciona al hacer clic sobre el icono de la barra de tareas.

Solución


Después de investigar varios días sobre este error, encontré varios motivos por los cuales puede ocurrir este problema.

+ Bloqueo por el Firewall
+ Otra aplicación utilizando el puerto 80
+ Versión incorrecta del Microsoft Visual C++ Redistributable

La primera alternativa de solución es muy sencilla, simplemente se debe desactivar el Firewall y correr la aplicación con el Firewall desactivado para descartarlo como posible causa del problema. Si definitivamente ese es el problema, entonces en vez de dejarlo desactivado se debe agregar una excepción a la aplicación Wamp Server para que pueda pasar por el Firewall. Puedes encontrar más información sobre cómo permitir a una aplicación pasar a través del Firewall en el siguiente enlace:

http://windows.microsoft.com/es-co/windows-8/windows-firewall-from-start-to-finish

Por otra parte, puede existir otra aplicación que esté utilizando el puerto 80 el cual es el utilizado por el Wamp Server por defecto. Para verificar si existe otra aplicación utilizando este puerto podemos abrir una consola como administrador y ejecutar el comando netstat -a.



Como puede observarse en la imagen anterior, el puerto 80 está siendo ocupado por otra aplicación ejecutada por el usuario en sesión. Otra forma un poco más detallada para ver los puertos es instalar la aplicación cports disponible en http://www.nirsoft.net/utils/cports.html.

Lo ideal es cerrar todas las aplicaciones que estén utilizando el puerto 80 como torrents, otros servidores, entre otras aplicaciones. Lo curioso, es que después de para el Servidor IIS y verificar de nuevo si existía alguna aplicación utilizando el puerto 80 el mismo error seguía aparenciendo. Por lo cual, para este caso, queda descartado que el IIS sea el causante del problema en mención. Lo cual nos lleva a la siguiente alternativa.

Versión incorrecta de Microsoft Visual C++


Resulta que cada release del Wamp Server (x64) puede o no utilizar una versión distinta de Microsoft Visual C++ Redistributable. Hay que instalar exactamente la versión que se encuentra en el archivo README puesto que otras versiones probablemente no funcionarán. A lo cual reitero:

SE DEBE REVISAR EL ARCHIVO README SÍ O SÍ.

En dicho archivo, encontré lo siguiente:


README.txt
WampServer 2.5 - 32 and 64 bits

Be sure that you have installed Visual C++ Redistributable for Visual Studio 2012 : VC11 vcredist_x64/86.exe
http://www.microsoft.com/en-us/download/details.aspx?id=30679

Don't Use previous WampServer Extensions/Addons
There are no more compatible with the new wampserver version's (VC11)


Apache : 2.4.9
MySQL : 5.6.17
PHP : 5.5.12
PHPMyAdmin : 4.1.14
SqlBuddy : 1.3.3
XDebug : 2.2.5


Lo cual indica para esta versión, que únicamente debe ser instalada la versión 2012 del famoso Redistributable. Después de descargar este archivo y ejecutar la instalación, se debe ejecutar el Wamp Server y ejecutar desde el menú los siguientes procesos:

Apache -> service -> install Service
Apache -> service -> Start/Resume Service

Además de esto, en caso de tener otro servidor en funcionamiento, se deben configurar el puerto 80 en los siguientes archivos:

Reemplazar todas las conincidencias de la cadena http://localhost y reemplazar por http://localhost:8080 en el archivo wampmanager.tpl.


wampmanager.tpl
http://localhost:8080/

Reemplazar todas las conincidencias de la cadena :80 por :8080 en el archivo httpd.conf. En este caso, quedaría de la siguiente forma:


httpd.conf
Listen 0.0.0.0:8080
Listen [::0]:8080
ServerName localhost:8080


Si todo ha ido bien, tendremos nuestro servidor Apache en correcto funcionamiento y si es el caso el IIS en paralelo.


Referencias

- PHP, Apache, MySQL, Windows : WampServer. (2013, January 25). In Wamp Server Forum. Retrieved 12:23, December 7, 2014, from http://forum.wampserver.com/read.php?2,110511,110966
- PHP, Apache, MySQL, Windows : WampServer. (2014, May 6). In Wamp Server Forum. Retrieved 12:23, December 7, 2014, from http://forum.wampserver.com/read.php?2,123685
- Problema con Apache... desesperación. (2012, Agosto 16). In Foros del Web, comunidad para aprender web. Retrieved 12:23, December 7, 2014, from http://www.forosdelweb.com/f58/problema-con-apache-desesperacion-1008561