apache_logo

He alojado mis propios sitios web desde hace muchos años. Desde que cambié de OS /2 a Linux hace más de 20 años, utilicé Apache como mi software de servidor. Apache es sólido, conocido y bastante fácil de configurar para una instalación básica. En realidad, no es mucho más difícil de configurar para una configuración más compleja, como varios sitios web.

La instalación y configuración del servidor web Apache se debe realizar como root. La configuración del firewall también debe realizarse como root. El uso de un navegador para ver los resultados de este trabajo debe realizarse como un usuario no root.

Instalación
Nota: Utilizo una máquina virtual (VM) usando Fedora 27 con Apache 2.4.29. Si tienes una distribución diferente o una versión diferente de Fedora, sus comandos y las ubicaciones y el contenido de los archivos de configuración pueden ser diferentes. Sin embargo, las líneas de configuración que necesitas modificar son las mismas.

El servidor web Apache es fácil de instalar. En mi servidor CentOS 6.x, solo toma un simple comando yum. Instala todas las dependencias necesarias si falta alguna. Usé el comando dnf a continuación en una de mis máquinas virtuales de Fedora. La sintaxis para dnf y yum es la misma excepto para el nombre del comando en sí.

dnf -y install httpd

La VM es una instalación de escritorio muy básica que estoy usando como banco de pruebas para escribir un libro. Incluso en este sistema, solo se instalaron seis dependencias en menos de un minuto.

Todos los archivos de configuración para Apache se encuentran en /etc/httpd/conf y /etc/httpd/conf.d. Los datos para los sitios web se encuentran en /var/www de forma predeterminada, pero puedes cambiarlos si lo deseas.

Configuración
El archivo de configuración principal de Apache es /etc/httpd/conf/httpd.conf. Contiene una gran cantidad de instrucciones de configuración que no es necesario cambiar para una instalación básica. De hecho, solo se deben realizar algunos cambios en este archivo para tener un sitio web básico en funcionamiento. El archivo es muy grande, así que, en lugar de saturar este artículo con muchas cosas innecesarias, mostraré solo las directivas que debe cambiar.

Primero, tómate un poco de tiempo y navega por el archivo httpd.conf para familiarizarte con él. Una de las cosas que me gusta de las versiones de Red Hat de la mayoría de los archivos de configuración es la cantidad de comentarios que describen las diversas secciones y las directivas de configuración en los archivos. El archivo httpd.conf no es una excepción, ya que está bastante bien comentado. Usa estos comentarios para comprender qué estás configurando en el archivo.

El primer elemento a cambiar es la instrucción Listen, que define la dirección IP y el puerto en el que Apache escuchará las solicitudes de página. En este momento, solo necesitas hacer que este sitio web esté disponible para la máquina local, así que usa la dirección del localhost. La línea debería verse así cuando termines:

Listen 127.0.0.1:80

Con esta directiva establecida en la dirección IP del host local, Apache escuchará únicamente las conexiones del host local. Si deseas que el servidor web escuche las conexiones de los hosts remotos, debes usar la dirección IP externa del host.

La directiva DocumentRoot especifica la ubicación de los archivos HTML que componen las páginas del sitio web. No es necesario cambiar esa línea porque ya apunta a la ubicación estándar. La línea debería verse así:

DocumentRoot "/var/www/html"

El RPM de instalación de Apache crea el árbol de directorios  /var/www. Si deseas cambiar la ubicación donde se almacenan los archivos del sitio web, este elemento de configuración se utiliza para hacer eso. Por ejemplo, es posible que desees utilizar un nombre diferente para el subdirectorio www para que la identificación del sitio web sea más explícita. Eso podría verse así:

DocumentRoot "/var/misitio/html"

Estos son los únicos cambios de configuración de Apache necesarios para crear un sitio web simple. Para este pequeño ejercicio, solo se realizó un cambio en el archivo httpd.conf: la directiva Listen. Todo lo demás ya está configurado para producir un servidor web en funcionamiento.

Sin embargo, se necesita otro cambio: abrir el puerto 80 en nuestro firewall. Utilizo iptables como mi firewall, así que cambio /etc/sysconfig/iptables para agregar una declaración que permita el protocolo HTTP. El archivo completo se ve así:

# configuración de muestra para el servicio de iptables
# puede editar esto manualmente o usar system-config-firewall
# por favor no nos pida que agreguemos puertos / servicios adicionales a esta configuración predeterminada.
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT
La línea que agregué es la tercera desde la parte inferior, lo que permite el tráfico entrante en el puerto 80.

[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables

Crea el archivo index.html
El archivo index.html es el archivo predeterminado que servirá un servidor web cuando acceda al sitio web utilizando solo el nombre de dominio y no un nombre de archivo HTML específico. En el directorio /var/www/html, crea un archivo con el nombre index.html. Agrega el contenido Hola Mundo. No necesitas agregar ningún marcado HTML para que esto funcione. El único trabajo del servidor web es servir una secuencia de datos de texto, y el servidor no tiene idea de qué es la fecha ni cómo presentarla. Simplemente transmite la secuencia de datos al host solicitante.

Después de guardar el archivo, establece la propiedad en apache.apache.

[root@testvm1 html]# chown apache.apache index.html

Ejecuta Apache
Apache es muy fácil de comenzar. Las versiones actuales de Fedora usan systemd. Ejecuta los siguientes comandos para iniciarlo y luego para verificar el estado del servidor:

[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-02-08 13:18:54 EST; 5s ago
Docs: man:httpd.service(8)
Main PID: 27107 (httpd)
Status: “Processing requests…”
Tasks: 213 (limit: 4915)
CGroup: /system.slice/httpd.service
├─27107 /usr/sbin/httpd -DFOREGROUND
├─27108 /usr/sbin/httpd -DFOREGROUND
├─27109 /usr/sbin/httpd -DFOREGROUND
├─27110 /usr/sbin/httpd -DFOREGROUND
└─27111 /usr/sbin/httpd -DFOREGROUND

Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server…
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.

Los comandos pueden ser diferentes en tu servidor. En sistemas Linux que usan scripts de inicio SystemV, los comandos serían:

[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018]          [  OK  ]
[root@testvm1 ~]# service httpd status
httpd (pid  14649) is running…

Si tienes un navegador web como Firefox o Chrome en tu host, puedes usar el URL localhost en la línea URL del navegador para mostrar tu página web, tan simple como es. También puedes usar un navegador web en modo texto como Lynx para ver la página web. Primero, instala Lynx (si no está ya instalado).

[root @ testvm1 ~] # dnf -y install lynx

Luego usa el siguiente comando para mostrar la página web.

[root @ testvm1 ~] # lynx localhost

El resultado se ve así en mi sesión de terminal. He eliminado una gran cantidad de espacio vacío en la página.

Hola Mundo

<snip>

Comandos: usa las teclas de flecha para mover, ‘?’ por ayuda, ‘q’ para salir, ‘<-‘ para volver.
Teclas de flecha: arriba y abajo para moverse. Derecho a seguir un enlace; Izquierda para volver.
H) elp O) ptions P) rint G) o M) ain pantalla Q) uit / = search [delete] = lista de historial
A continuación, edita tu archivo index.html y agrega un poco de marcado HTML para que se vea así:

<h1> Hola mundo </ h1>
Ahora actualiza el navegador. Para Lynx, usa la combinación de teclas Ctrl + R. Los resultados se ven un poco diferentes. El texto está en color, que es como Lynx muestra los títulos si tu terminal admite color, y ahora está centrado. En un navegador GUI el texto estaría en una fuente grande.

Como puedes ver en este pequeño ejercicio, es fácil configurar un servidor web Apache. Los detalles variarán según tu distribución y la versión de Apache suministrada por esa distribución. En mi entorno, este fue un ejercicio bastante trivial.

Pero hay más porque Apache es muy flexible y poderoso.

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 23021 invitados y ningún miembro en línea