Httpd, PHP, Tomcat, Mod_JK, Java y MySQL en Windows y NetBeans (I)


Httpd, PHP, Tomcat, Mod_JK, Java y MySQL en Windows y NetBeans

Ya había instalado Apache Httpd 2.2.17 y PHP 5.3.1, sin embargo quería hacer una actualización.  Tenía en Windows Vista NetBeans 6.8 con Apache Tomcat 6.0.20 preinstalado, MySQL 5.1.42 y el JDK de Java 6 Update 17. Pero se me dió por actualizar (desinstalando y volviendo a instalar) algunas de estas  herramientas de Software.
En esta publicación omitiré la desinstalación de la herramienta respectiva para volverla a instalar, en caso de que haya algún error, mostraré como se resuelve con imágenes en lo posible. Empecemos…

Instalando Apache Httpd 2.2.17 descargar el archivo según la versión que se requiera… Yo descargué el instalador .msi y procedí a ejecutar el instalador, aparece la ventana de bienvenida, y presionamos el botón Next.Aceptamos el acuerdo de Licencia y presionamos el botón Next…Nuevamente se presiona el botón Next…Elegimos la información adecuada, teniendo en cuenta el valor del puerto que se desea utilizar no esté siendo usado por otra aplicación…Elegimos la configuración personalizada,  seleccionando el botón de radio “custom” y luego presionando el botón Next.Elegimos el sitio donde queremos que se realice la instalación, es muy importante que esta no sea dentro de la carpeta “Archivos de Programa” o “Program Files”.  Para este manual la instalación se realizó dentro de una carpeta llamada ServerWeb.Luego de haber selecccionado las opciones de instalación, el asistente de Httpd permite cambiarlas posteriormente. Si no hay que hacer algún cambio procedemos a realizar la instalación presionando el botón “Install”. Se empieza hacer la instalación…Luego de que la instalación se ha completado presionamos el botón Finish.Si al arrancar Httpd por primera vez o luego de haberlo detenido, se presenta este mensaje de error: “httpd: Could not reliably determine the server’s fully qualified domain name, using… IP … for ServerName“.Ajustamos el archivo de configuración de Httpd llamado httpd.conf, localizado en la carpeta \conf dentro de su carpeta de instalación, descomentando la línea correspondiente a ServerName.Posteriormente podemos verificar los resultados.Hacemos prueba de funcionamiento… http:/localhost/

Instalando PHP 5.3.3 … Descargué el instalador (No el .zip, sino .msi) versión VC6 debido a que es el adecuado para el servidor Httpd de Apache en Windows.  La documentación llamada php_manual_en.tar.gz El instalador .msi funciona perfectamente para Windows Vista Home Basic.Luego de aceptar los términos del acuerdo de Licencia marcando la casilla de verificación se presiona el botón Next.Se elige la carpeta de instalación, para este manual se seleccionó dentro de la carpeta llamada ServerWeb, es imperativo que la instalación se haga fuera de la carpeta “Archivos de Programa” o “Program Files”.Seleccionamos el tipo de Servidor, en nuestro caso Apache 2.2.x Module y se presiona el botón Next.Seleccionamos el directorio donde se ubica el archivo de configuración de Apache Httpd llamado httpd.conf. Este archivo está en el subdirectorio \conf de Apache Httpd.Aparte de seleccionar las opciones que se desean, como las MySQL.  Debemos asegurar que se seleccione la opción Register *.php file extension. Si no hay más cambios que hacer se presiona el botón Install.Aparecerá el proceso de instalación.
Una vez finalizado el proceso, presionamos el botón Finish.

Como se van a editar los archivos .php en NetBeans, será muy útil hacer uso de la librería php_xdebug-2.1.0-5.3-vc6.dll la cual se debe copiar dentro del directorio \ext dentro de la carpeta de instalación de PHP y luego editar el archivo php.ini de PHP agregando las líneas que permiten su uso.Verificamos que no haya error en ese proceso reiniciando el servidor Apache Httpd.Posteriorment creamos el típico archivo de prueba llamado test.php dentro del subdirectorio \htdocs del directorio de instalación de Apache Httpd.Verificamos que PHP esté funcionando en la dirección http://localhost/test.php

Instalando Apache Tomcat 6.0.29 descargué la versión de instalador para Windows, siempre se recomienda la comprimida en .zip para NetBeans, pero es porque la versión de instalación .exe de Windows no incluye algunos archivos .bat necesarios para gestionar el servidor desde NetBeans. La documentación llamada apache-tomcat-6.0.29-fulldocs.tar.gz
Ejecutamos el instalador y presionamos el botón Next.…Presionamos el botón “I Agree” para el acuerdo de Licencia Recomiendo utilizar el tipo de instalación completa “Full” por la documentación y ejemplos, etc.Elegimos la carpeta de instalación, que quede por fuera de “Archivos de Programa” o “Program Files”. Para este manual se seleccionó el subdirectorio ServerWeb.Como en este caso el puerto 8080 está disponible no hay problema en utilizarlo, indicamos el nombre de usuario y el password.
De ser necesario modificarse posteriormente este se hallará en  el Tag <user name=”usuario” password=”clave” roles=”admin,manager”/>, que en mi caso es joseluisbz, del archivo tomcat-users.xml dentro de  la carpeta \conf.
Posteriormente indicamos el directorio de instalación del JDK o del JRE de Java y luego presionamos el botón “Install”. Comenzará el proceso de instalación…Luego que finalice el proceso, indicamos si arranca Apache Tomcat y Presionamos el botón Finish.Como se dejó seleccionada la opción de iniciar a Apache Tomcat, aparece su ventana de arranque.Posteriormente verificamos que Apache Tomcat esté ejecutándose en el puerto 8080… http:/localhost:8080/

Como a futuro se va a trabajar con MySQL es necesario tener el conector de éste con Java el cual es un archivo llamado mysql-connector-java-5.1.13-bin.jar que viene incluido en el archivo comprimido mysql-connector-java-5.1.13.zip; este conector .jar debe copiarse en el subdirectorio \lib del directorio de instalación de Apache Tomcat.

Ahora se va a configurar Mod_jk-1.2.30-httpd-2.2.3.so, después de descargarlo se copia en el subdirectorio \modules del directorio de instalación de Apache Httpd, con el nombre mod_jk.so.

Editamos el archivo server.xml que se encuentra dentro del subdirectorio \conf del directorio de instalación de Apache Tomcat.  Insertamos las líneas resaltadas despues de: “<Server port=”8005″ shutdown=”SHUTDOWN”>“.  Recomiendo tener en cuenta que en Apache Tomcat para delimitación de carpetas no se usa “\” como en Windows, sino “/”.En el mismo archivo server.xml nuevamente insertamos las líneas resaltadas después de: “<Host name=”localhost”  appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>“.Reiniciamos Apache Tomcat y luego Apache Httpd.
Puede hacerse así: Inicio->Panel de Control->Herramientas Administrativas->Servicios. (Otra opción es: Inicio->Ejecutar, escriba services.msc y presione Enter) Ordene por Nombre para que Tomcat y Httpd queden juntos.  Con click derecho puede iniciar, reiniciar, detener entre otras opciones.
Posteriormente verifique que se hayan creado las carpetas \auto y \jk dentro de la carpeta \conf del directorio de Instalación de Apache Tomcat.  Dentro del subdirectorio \auto se debe haber creado un archivo llamado mod_jk.confAhora creamos el archivo workers.properties dentro del subdirectorio \jk del directorio de instalación de Apache Tomcat con el contenido indicado.Reiniciamos nuevamente Apache Tomcat y Apache Httpd en ese mismo orden.  Puede hacerse de la manera anterior o también a través de Consola “CMD“, escribiendo en ella “NET START” para ver los servicios que se están ejecutando; para detener a Apache Tomcat “NET STOP Tomcat6” e iniciarlo “NET START Tomcat6“; para detener a Apache Httpd “NET STOP Apache2.2” e iniciarlo “NET START Apache2.2“.
Posteriormente verificamos la siguiente dirección.. http://localhost:8080/examples/Ahora agregamos la línea resaltada referente al archivo mod_jk.conf de Apache Tomcat en el archivo httpd.conf del subdirectorio \conf de la carpeta de instalación de Apache Httpd.Ahora creamos un archivo de prueba llamado test.jsp dentro de la carpeta \examples del subdirectorio \webapps de la carpeta de instalación de Apache Tomcat.Verifiquemos que el módulo Mod_jk esté configurado http://localhost/examples/test.jspAhora copiamos el archivo test.jsp en el mismo directorio \webapps con la intención de abrir directamente la dirección http://localhost/test.jsp, que por supuesto no funcionará.Para lograrlo primero vamos a comentar o a eliminar las líneas que permiten la creación del archivo de autoconfiguración de Apache Tomcat y que se agregaron anteriormente en el archivo server.xml haciendo referencia a “org.apache.jk.config.ApacheConfig“.También comentamos la otra referencia a “org.apache.jk.config.ApacheConfig“.Ahora que ya desactivamos la creación automática del archivo de configuración de Apache Tomcat mod_jk.conf, hacemos los cambios que necesitemos en él para obtener el comportamiento deseado.  En este caso que se pueda acceder al archivo test.jsp en la dirección en http://localhost/test.jsp, por eso agregamos en el archivo mod_jk.conf la línea resaltada a continuación.Reiniciamos nuevamente Apache Tomcat y Apache Httpd, luego verificamos la dirección que deseamos http://localhost/test.jsp.Ahora vamos a designarle a Apache Tomcat que su directorio base sea el mismo de Apache Httpd, y abra los archivos .jsp en el mismo donde se abren los .php, .htm y .html para eso modificamos nuevamente el archivo server.xml agregando las líneas resaltadas.Creamos en el subdirectorio \htdocs del directorio de Apache Httpd un archivo de prueba llamado test-htdocs.jsp con el siguiente contenido.Ahora Reiniciamos en el mismo orden a Apache Tomcat y Apache Httpd, posteriormente verificamos el funcionamiento en la dirección http://localhost/test-htdocs.jspBueno espero les sea de utilidad…

Instalación de Httpd 2.2.21 en Windows XP, siguiendo este manual se puede instalar, sin embargo encontré en una máquina que el Apache no arrancaba, y me salía un error acerca del uso del puerto 80.

Primero verificamos el uso del puerto 80. Esto lo podemos hacer a través de CMD ingresando la instrucción: netstat -ano |find /i “listening” así vemos quienes están escuchando en los puertos.

Buscando quien usa el puerto 80 vemos que es el proceso 5156, el cual debemos identificar, para eso nos ayudamos con el administrador de tareas:

Podemos ver que en mi caso es inetinfo.exe, averiguando en internet vi que el problema del uso del puerto 80 está relacionado con el servicio de IIS y que debo detener para eliminar el conflicto.

Al detenerlo intenté reiniciar el servidor Httpd Apache y funcionó.

Como pueda que el uso del puerto 80 no esté relacionado con inetinfo.exe puede ser Skype u otra aplicación. Podemos chequear con una instrucción en CMD más específica como la siguiente:
netstat -ano |find /i “listening” |find /i “:80”.

En el próximo post tengo pensado hacer las explicaciones de MySQL, Java, NetBeans que me quedaron pendientes y que por lo extenso será mejor en otra entrada.

Anuncios

Acerca de joseluisbz

Hasta ahora, espero actualizarlo después, ahora no.
Esta entrada fue publicada en Apache, Bases de datos, databases, databases, Httpd, Java, JSP, MySQL, Netbeans, Server, Servidores Web, Software, Tomcat, Windows y etiquetada , , , , , , , , , , , . Guarda el enlace permanente.

12 respuestas a Httpd, PHP, Tomcat, Mod_JK, Java y MySQL en Windows y NetBeans (I)

  1. TMT dijo:

    Increíble artículo. Muy completo y perfectamente explicado, incluso con posibles errores y soluciones.
    Muchísimas gracias y enhorabuena.

  2. Fer dijo:

    Hola, estoy siguiendo tu tutorial y tengo un problema.
    Cuando agrego la línea referente al archivo mod_jk.conf en httpd.conf del subdirectorio \conf de la carpeta de instalación de Apache Httpd, no se inicia el servicio de apache. Si elimino la línea se inicia sin problemas.
    Estoy buscando soluciones por los foros pero no encuentro nada.

  3. alcira dijo:

    http://php-java-bridge.sourc/eforge.net/pjb/
    Una forma de trabajar Java y PHP consiste en descargar la documentación en http://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_6.2.1/php-java-bridge_6.2.1_documentation.zip/download
    Extraer el JavaBridge.war y copiarlo en webapps de tomcat, para el caso del ejemplo sería donde está docBase incluido en appBase que se definió en el archivo server.xml.

  4. darwin dijo:

    Hola… pues no acostumbro a dejar comentarios, pero este tuto es la excepcion pues…
    muy bueno y sigue asi; Jose Luis

  5. Alex dijo:

    No me corre el tomcat al modificar el server.xml; y por lo tanto tampoco me crea las carpetas jk y auto.
    Me podrías indicar como hago esto con tomcat 7.0.22 y httpd.2.2.21

    • joseluisbz dijo:

      En tomcat 7 toca crear el archivo mod_jk.conf de manera manual. Este procedimiento no funciona porque ha sido deshabilitado.

      Te pongo el archivo que utilicé (ajustado desde Tomcat 6) en mi última instalación para Tomcat 7 para que lo ajustes a tus requerimientos, no podré dar un soporte mayor por ocupaciones.

      ########## Auto generated on Thu Oct 28 23:17:57 COT 2010##########

      LoadModule jk_module “c:/ServerWeb/Httpd_2.2.17/modules/mod_jk.so”

      JkWorkersFile “c:/ServerWeb/Tomcat_7.0.19/conf/jk/workers.properties”
      JkLogFile “C:/ServerWeb/Tomcat_7.0.19/logs/mod_jk.log”

      JkLogLevel emerg

      ServerName localhost

      #################### localhost:/manager ####################

      # Static files
      Alias /manager “C:/ServerWeb/Tomcat_7.0.19/webapps/manager”

      Options Indexes FollowSymLinks
      DirectoryIndex index.html index.htm index.jsp

      # Deny direct access to WEB-INF and META-INF
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      #
      # Use Directory too. On Windows, Location doesn’t work unless case matches
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      JkMount /manager/*.jsp ajp13
      JkMount /manager/html/* ajp13
      JkMount /manager/deploy ajp13
      JkMount /manager/*.jspx ajp13
      JkMount /manager/serverinfo ajp13
      JkMount /manager/undeploy ajp13
      JkMount /manager/resources ajp13
      JkMount /manager/remove ajp13
      JkMount /manager/start ajp13
      JkMount /manager/save ajp13
      JkMount /manager/findleaks ajp13
      JkMount /manager/sessions ajp13
      JkMount /manager/reload ajp13
      JkMount /manager/status/* ajp13
      JkMount /manager/list ajp13
      JkMount /manager/stop ajp13
      JkMount /manager/install ajp13
      JkMount /manager/jmxproxy/* ajp13
      JkMount /manager/expire ajp13
      JkMount /manager/roles ajp13

      #################### localhost:/docs ####################

      # Static files
      Alias /docs “C:/ServerWeb/Tomcat_7.0.19/webapps/docs”

      Options Indexes FollowSymLinks
      DirectoryIndex index.html index.htm index.jsp

      # Deny direct access to WEB-INF and META-INF
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      #
      # Use Directory too. On Windows, Location doesn’t work unless case matches
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      JkMount /docs/*.jsp ajp13
      JkMount /docs/*.jspx ajp13

      #################### localhost:/examples ####################

      # Static files
      Alias /examples “C:/ServerWeb/Tomcat_7.0.19/webapps/examples”

      Options Indexes FollowSymLinks
      DirectoryIndex index.html index.htm index.jsp

      # Deny direct access to WEB-INF and META-INF
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      #
      # Use Directory too. On Windows, Location doesn’t work unless case matches
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      JkMount /examples/jsp/security/protected/j_security_check ajp13
      JkMount /examples/servlets/servlet/RequestInfoExample/* ajp13
      JkMount /examples/jsp/jsp2/misc/config.jsp ajp13
      JkMount /examples/*.jsp ajp13
      JkMount /examples/servletToJsp ajp13
      JkMount /examples/servlets/servlet/SessionExample ajp13
      JkMount /examples/*.jspx ajp13
      JkMount /examples/jsp/chat/chat ajp13
      JkMount /examples/servlets/servlet/RequestHeaderExample ajp13
      JkMount /examples/servlets/servlet/CookieExample ajp13
      JkMount /examples/servlets/servlet/HelloWorldExample ajp13
      JkMount /examples/CompressionTest ajp13
      JkMount /examples/servlets/servlet/RequestParamExample ajp13

      #################### localhost:/host-manager ####################

      # Static files
      Alias /host-manager “C:/ServerWeb/Tomcat_7.0.19/webapps/host-manager”

      Options Indexes FollowSymLinks
      DirectoryIndex index.html index.htm index.jsp

      # Deny direct access to WEB-INF and META-INF
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      #
      # Use Directory too. On Windows, Location doesn’t work unless case matches
      #

      AllowOverride None
      deny from all

      AllowOverride None
      deny from all

      JkMount /host-manager/*.jsp ajp13
      JkMount /host-manager/html/* ajp13
      JkMount /host-manager/stop ajp13
      JkMount /host-manager/list ajp13
      JkMount /host-manager/add ajp13
      JkMount /host-manager/*.jspx ajp13
      JkMount /host-manager/remove ajp13
      JkMount /host-manager/start ajp13

      JkMount /*.jsp ajp13

      Espero te sirva.

  6. Cesar C dijo:

    Excelente artículo. Muy completo y perfectamente explicado.
    Muchísimas gracias y Felicitaciones.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s