Apache HTTP Server es probablemente uno de los programas más usados para servir aplicaciones web, aprenderemos a instalarlo, configurarlo y comprender cómo funciona.
En Linux haremos la instalación directamente del software, pero en Windows u OS x vamos a emularla preferiblemente con WAMP o XAMPP. ¿Porqué emularla y no instalar Apache HTTP directamente sobre Windows? aquí las razones:
- Apache HTTP Server no ofrece binarios para instalar directamente sobre Windows, solo código fuente, podrán ver que en la documentación oficial del programa nos hablan de esto.
- XAMPP o WAMP ya traen un Apache embebido, es decir viene «pre-instalado» dentro del programa y nos servirá para la misma finalidad, la cual es comprender acerca de la arquitectura web.
- El funcionamiento de Apache es el mismo en cualquier plataforma, se rige bajo las mismas normas/estructura y eso es lo que nos interesa estudiar a fondo.
- Si usted estuviese interesado en tener un servidor web productivo en Windows, problablemente sería mejor usar una herramienta nativa como IIS (Internet Information Services) pro dado que nos enfocamos en Apache como Servidor web por la temática del curso es por eso que la instalación en si no es un foco tan importante como la configuración y funcionamiento de Apache en General.
Finalmente XAMPP y WAMP son multiplataforma, podremos emular toda la funcionalidad del servidor web tanto en OSX como Windows.
En sus máquinas virtuales de este curso con Debian MATE y habiendo configurado los repositorios pueden instalar Apache HTTP Server de la siguiente forma:
{Alberta}mortiz~: sudo su - root@Alberta:/home/mortiz# apt-get install apache2
Eso es todo, una vez instalado comprobamos que esta el servicio arriba, en nuestro navegador podremos escribir la I.P de nuestro equipo o simplemente http://localhost y deberíamos ver algo como esto o el mensaje «It works».
Para comprobar adicionalmente, podemos utilizar estos comandos:
{Alberta}mortiz~: sudo su - root@Alberta:/home/mortiz# service apache2 start root@Alberta:/home/mortiz# service apache2 stop root@Alberta:/home/mortiz# service apache2 restart root@Alberta:/home/mortiz# service apache2 reload
Opcionalmente también se puede hacer lo mismo con un script de inicio:
{Alberta}mortiz~: sudo su - root@Alberta:/home/mortiz# /etc/init.d/apache2 start root@Alberta:/home/mortiz#/etc/init.d/apache2 stop root@Alberta:/home/mortiz# /etc/init.d/apache2 restart root@Alberta:/home/mortiz# /etc/init.d/apache2 reload
Para comprobar que Apache se ejecuta podemos ejecutar las herramientas netstat, pgrep o ps aux. Netstat nos debería mostrar tcp6 0 0 :::80 :::* LISTEN 1517/apache2 (Es decir, apache se ejecuta en el puerto 80, ya lo hablamos antes), pgrep nos mostrará el proceso en ejecución y ps aux también mostrará el proceso en ejecución con más detalles.
root@Alberta:/home/mortiz# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1173/rpcbind tcp 0 0 127.0.0.1:28017 0.0.0.0:* LISTEN 686/mongod tcp 0 0 127.0.0.1:5940 0.0.0.0:* LISTEN 1190/teamviewerd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 693/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 30090/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1931/exim4 tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1208/slapd tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 686/mongod tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1582/mysqld tcp6 0 0 :::111 :::* LISTEN 1173/rpcbind tcp6 0 0 :::80 :::* LISTEN 1517/apache2 tcp6 0 0 :::22 :::* LISTEN 693/sshd tcp6 0 0 ::1:631 :::* LISTEN 30090/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1931/exim4 tcp6 0 0 :::389 :::* LISTEN 1208/slapd {Alberta}mortiz~: sudo su - root@Alberta:/home/mortiz# pgrep -fl apache2 1517 apache2 30102 apache2 30103 apache2 30104 apache2 30105 apache2 30106 apache2 30107 apache2 30668 apache2 30673 apache2 30675 apache2 30676 apache2 30677 apache2 root@Alberta:/home/mortiz# ps aux |grep apache root 1517 0.0 0.3 317372 28972 ? Ss Nov20 0:01 /usr/sbin/apache2 -k start root 3373 0.0 0.0 12724 2148 pts/2 S+ 11:29 0:00 grep apache www-data 30102 0.0 0.1 317428 9536 ? S 07:35 0:00 /usr/sbin/apache2 -k start www-data 30103 0.0 0.3 324480 27968 ? S 07:35 0:00 /usr/sbin/apache2 -k start www-data 30104 0.0 0.2 319980 18924 ? S 07:35 0:00 /usr/sbin/apache2 -k start www-data 30105 0.0 0.1 317740 15448 ? S 07:35 0:00 /usr/sbin/apache2 -k start www-data 30106 0.0 0.3 323568 25440 ? S 07:35 0:00 /usr/sbin/apache2 -k start www-data 30107 0.0 0.1 317452 10964 ? S 07:35 0:00 /usr/sbin/apache2 -k start www-data 30668 0.0 0.3 323196 24700 ? S 07:59 0:00 /usr/sbin/apache2 -k start www-data 30673 0.0 0.1 317404 9192 ? S 07:59 0:00 /usr/sbin/apache2 -k start www-data 30675 0.0 0.1 317404 9192 ? S 07:59 0:00 /usr/sbin/apache2 -k start www-data 30676 0.0 0.1 317404 9192 ? S 07:59 0:00 /usr/sbin/apache2 -k start www-data 30677 0.0 0.1 317404 9192 ? S 07:59 0:00 /usr/sbin/apache2 -k start
Recordemos nuevamente, Apache HTTP Server no ofrece binarios para la instalación de Apache en Windows. Por eso vamos a utilizar un software que instala Apache en Windows (de una forma embebida y otras cuantas herramientas más que usaremos más adelante), en este caso podría ser XAMP o WAMP según ustedes elijan. Si bien hay ejecutables ofrecidos por terceros para instalar Apache en Windows, por efectos prácticos del curso XAMPP y WAMP nos ahorrarán horas de pelea con librerías en las diversas versiones de Windows.
Para fines prácticos en este curso se usará XAMPP, el cual podremos instalar en Windows o OS X (en Linux es posible pero seguiremos otros pasos, no instalaremos XAMPP en Linux). Pueden descargar el programa desde aquí.
Consideraciones para instalar XAMPP en Windows:
- Para evitar carteles molestos, deshabilite el AUC (Control de Cuentas de Usuario) Inicio > Panel de Control > Cuentas de Usuario > Control de Cuentas de Usuario
- Cuando se lo indique, habilite Apache para crear una regla en el Firewall
- Verifique que la versión de XAMPP es acorde a la arquitectura de sistema operativo en su equipo 32b o 64b
La instalación en sí es sencilla, sigan el Wizzard paso a paso en Linux u OS X con las opciones por default. Una vez instalado inicien el servicio de Apache como se muestra en esta serie de imágenes.
Una vez hayamos completado la instalación podemos comprobar que apache está en ejecución correctamente escribiendo http://localhost en nuestro navegador:
Opcionalmente podemos revisar el administrador de tareas y buscar por el proceso httpd:
O también a través de CMD con el comando netstat (es válido al igual que en linux) En mi caso observarán que el apache corre en el puerto 80 (primera línea en las conexiones activas TCP 0.0.0.0:80 …..) ¿Recuerdan lo que hablamos del puerto 80?
Ahora ya tenemos un servidor web en nuestro propio PC y vamos a comenzar a entenderlo, configurarlo y ¡aprovechar sus ventajas!
Trackbacks/Pingbacks