httpd de Apache es el nombre conque correctamente deberíamos conocer al servidor web Apache. El más popular en el mercado al momento.
Este servidor web fue derivado de un grupo de parches que se hacían al viejíiiiisimo NCSA. En inglés la frase “un servidor web parcheado” se dice: “A patched Web server”. Si lees rápidamente las primeras dos palabras, suena a “apache”.
Apache es actualmente una fundación que mantiene decenas de decenas de diversas aplicaciones, desde el servidor web que se le conoce como httpd, hasta el spamassassin, el tomcat, perl, OpenOffice, etc.
Según el sitio netcraft que saca estadísticas de uso de varios aspectos de internet, apache domina al día de hoy y ha dominado desde inicios del 1996 el mercado de servidores web. Podemos validarlo en esta URL que cambia mes a mes:
http://news.netcraft.com/archives/category/web-server-survey/
A la fecha actual, Julio del 2013, hay 3 actores dominantes en el negocio de servidores web y estos son:
- httpd de apache
- MicroSoft IIS
- nginx
nginx es también una solución en software libre que está ganando popularidad cada día más.
Qué ha permitido que apache sea tan popular y, sobre todo, haya mantenido esta popularidad durante tantos años?
El apache basa su popularidad, como ya habíamos dicho en:
- Portabilidad: Puede ser instalado en casi cualquier sistema operativo
- Modularidad: Acepta la instalación de módulos realizados por terceras personas para agregarle funcionalidad
- Facilidad de configuración
- Independencia de los lenguajes de generación de páginas: Esto es, los lenguajes que se usan para programar en web son independientes del apache, por lo que cualquier lenguaje que su autor decida, puede ser modularizado (ver punto 2) y usado para generar páginas web.
El apache tiene las siguientes características:
- Soporte de scripts del tipo CGI (Common Gateway Interface).
- Dispone del llamado DSO (Dynamic Shared Object) que permite la carga y descarga de módulos de forma dinámica.
- Soporta lenguajes Perl y Php entre otros.
- Permite autentificación con contraseña.
- Puede manejar varios sitios web, tantos como el sistema operativo pueda aguantar.
- Soporta código XML
- Permite conexiones encriptadas vía SSL
- Permite ejecutar código generado usando la tecnología .NET
Instalando httpd de Apache
Instalar apache es relativamente fácil. Pero debemos tener en cuenta que, al ser modular, podemos instalar diversos módulos adicionales que vienen en forma de paquete. Por ejemplo hay paquetes adicionales como:
- mod_ssl : le instalaremos, pues nos permite manejar encriptación en la transmisión de páginas web
- php : le instalaremos, pues nos permite ejecutar aplicaciones hechas en php
- php-mysql: no le usaremos en nuestros ejemplos. Es un módulo que nos permite acceder desde php a datos guardados en mysql
- mysql-server: no le usaremos en nuestros ejemplos. Es un servidor de BD.
Hay muchos muchos módulos y paquetes más. Pero realmente instalaremos en nuestro ejemplo 3. No es que quiera insinuar que son los únicos o los mejores. Es que por simplicidad y para lograr un objetivo en esta página, instalaremos a estos tres.
Instalar es muy simple, ejecutamos:
yum install httpd mod_ssl php
Y luego de un rato, ya tendremos el servidor httpd instalado y listo para usarse.
Como habíamos indicado en los párrafos anteriores, una de las características de httpd es que tiene una fácil configuración. De hecho podemos probar ya el funcionamiento de nuestro servidor.
Firewalls
El httpd de apache escucha por defecto en el puerto 80/tcp, por lo que deberíamos abrir este puerto en nuestro firewall.
Directorios de interés
httpd de apache tiene varios directorios de interés, entre ellos:
- /var/log/httpd : dentro de este directorio apache guarda su bitácora, en el archivo access_log (o access.log) guarda todos los accesos que van ocurriendo al servidor.
- /var/www/html : es conocido como el DocumentRoot, este es el directorio donde normalmente yo subo mi página web
- /etc/httpd/conf.d : este directorio tiene una serie de archivos de configuración parciales que son incluídos dentro del archivo de configuración principal de mi servidor
- /etc/httpd/conf/httpd.conf : es el archivo de configuración principal de mi servidor. Tiene decenas de parámetros, además incluye los contenidos de todo archivo que se ponga en /etc/httpd/conf.d/*.conf
Es a este archivo de configuración /etc/httpd/conf/httpd.conf al que acudiremos en otro post para hacer un par de ajustes. Pero de momento les comento que está tan bien configurado que, en principio, es funcional mi apache con solamente instalar el paquete httpd como ya hicimos.
Probando la instalación
Para probar la instalación lo primero que haremos es crear un archivo llamado
vi /var/www/html/index.html
que contenga algún texto, simplemente algunas letras, por ejemplo tu nombre y ya.
Esta será nuestra página inicial, lógicamente no te pediré que crees una super página html pues solamente vamos a probar si se ve o no. Simplemente le ponemos un texto corto y ya.
Luego procedemos a arrancar el servicio de apache:
service httpd restart chkconfig httpd on
Y entonces abrimos un navegador y escribimos la IP del servidor donde tenemos el apache. Debe verse el texto que escribimos en el index.html
Posibles problemas:
el problema más común es que aquí al final no se muestre la página o se diga conexión rechazada, vuelve a leer todo este documento y presta atención a los siguientes puntos:
- Instalaste apache? fue la parte del yum install….
- Reiniciaste apache? fue la parte del service httpd….
- Tienes abierto el puerto 80/tcp en tu firewall? Prueba apagar todo tipo de firewall con service iptables stop a ver si es problema de que no hayas abierto el 80/tcp en tu firewall
- Pusiste un index.html en el lugar correcto? Debes poner el index.html en /var/www/html como te indiqué.
Esto es todo, ya tenemos apache corriendo. Si deseas sustituye (no dejes a ambos, quita el html y pon el php):
/var/www/html/index.html
por
/var/www/html/index.php
y dentro de /var/www/html/index.php le pones:
<?php phpinfo();
Te saldrá una página de información sobre la instalación de php que tienes.
Cualquier duda, estamos a tu disposición.
que tal ya instale el apache y si puedo verlo de manera local ahora bien que debo hacer si quiero ver mi pagina en otras computadoras que parte debo modificar o cambiar para poder realizar esta acción gracias
Abre el archivo /etc/sysconfig/iptables
Agrega:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
Graba
Reinicia iptables
service iptables restart
Mil gracias por tu artículo, llevo siglos usando apache y no sabía lo del “A patched Web Server” ¡me ha encantado!
Buen dia
Una pregunta estoy configurando una servidor centos 7 con apache (2.4.6) y php (7.3.9), cuando hago el info.php me funciona bien pero cuando su la carpeta con el index.php no me muestra nada sale la pantalla en blanco
Gracias