GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar un servidor web Apache

He alojado mis propios sitios web durante muchos años. Desde que cambié de OS/2 a Linux hace más de 20 años, he usado 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.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

La instalación y configuración del servidor web Apache debe realizarse 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 hacerse como usuario no root. (Uso el usuario student en mi servidor virtual).

Instalación

Nota:Este artículo ha sido actualizado usando Fedora 33 con Apache 2.4.46. Si usa 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 debe modificar son las mismas independientemente de la distribución.

El servidor web Apache es fácil de instalar. Con un comando, puede instalarlo y todas las dependencias necesarias:

$ dnf install httpd

Todos los archivos de configuración de Apache se encuentran en /etc/httpd/conf y /etc/httpd/conf.d . Los datos de los sitios web que ejecutará con Apache se encuentran en /var/www de forma predeterminada, pero puede cambiar eso si lo desea.

Configuración

El archivo de configuración principal de Apache es /etc/httpd/conf/httpd.conf . Contiene muchas declaraciones de configuración que no necesitan cambiarse 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 necesita cambiar.

Primero, tómese un poco de tiempo y explore el httpd.conf archivo para familiarizarse con él. Una de las cosas que me gustan 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 directivas de configuración en los archivos. El httpd.conf file no es una excepción, ya que está bastante bien comentado. Use estos comentarios para comprender qué está configurando el archivo.

El primer elemento a cambiar es el Listen instrucción, que define la dirección IP y el puerto en el que Apache escuchará las solicitudes de página. En este momento, solo necesita hacer que este sitio web esté disponible para la máquina local, así que use el localhost dirección. 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 localhost , Apache solo escuchará las conexiones del host local. Si desea que el servidor web escuche las conexiones de hosts remotos, debe usar la dirección IP externa del host.

El DocumentRoot directiva 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 /var/www árbol de directorios. Si desea cambiar la ubicación donde se almacenan los archivos del sitio web, este elemento de configuración se utiliza para hacerlo. Por ejemplo, es posible que desee utilizar un nombre diferente para el www subdirectorio para hacer más explícita la identificación del sitio web. Eso podría verse así:

DocumentRoot "/var/mywebsite/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 httpd.conf archivo—el Listen directiva. 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. Uso iptables como cortafuegos, así que cambio /etc/sysconfig/iptables para agregar una declaración que permita el protocolo HTTP. El archivo completo se ve así:

# 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 abajo, que permite el tráfico entrante en el puerto 80. Ahora vuelvo a cargar la configuración alterada de iptables.

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

Cree el archivo index.html

El index.html El archivo es el archivo predeterminado que un servidor web ofrecerá cuando acceda al sitio web usando solo el nombre de dominio y no un nombre de archivo HTML específico. En el /var/www/html directorio, cree un archivo con el nombre index.html . Agregue el contenido Hello World . No necesita agregar ningún marcado HTML para que esto funcione. El único trabajo del servidor web es servir un flujo de datos de texto, y el servidor no tiene idea de cuál es la fecha o cómo representarla. Simplemente transmite el flujo de datos al host solicitante.

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

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

Iniciar Apache

Apache es muy fácil de iniciar. Las versiones actuales de Fedora usan systemd . Ejecute los siguientes comandos para iniciarlo y luego verifique 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 su servidor. En los sistemas Linux que usan secuencias de comandos de inicio de 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 tiene un navegador web como Firefox o Chrome en su host, puede usar la URL localhost en la línea URL del navegador para mostrar su página web, por simple que sea. También puede usar un navegador web en modo texto como Lynx para ver la página web. Primero, instale Lynx (si aún no está instalado).

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

Luego use 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 gran parte del espacio vacío de la página.

  Hello World

<snip>


Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

A continuación, edite su index.html archivo y agregue un poco de marcado HTML para que se vea así:

<h1>Hello World</h1>

Ahora actualice el navegador. Para Lynx, utilice 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 encabezados si su terminal admite color, y ahora está centrado. En un navegador GUI, el texto estaría en una fuente grande.

                                   Hello World

<snip>


Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Pensamientos de despedida

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

Pero hay más porque Apache es muy flexible y poderoso. El próximo mes hablaré sobre el alojamiento de varios sitios web con una única instancia de Apache.

Este artículo se publicó originalmente en 2018 y el editor lo actualizó.


Linux
  1. Cómo configurar varios sitios web con el servidor web Apache

  2. Cómo instalar el servidor web Apache en Centos 8

  3. Cómo instalar el servidor web Apache en Ubuntu

  4. Cómo instalar y configurar el servidor web Apache en Ubuntu 13.10

  5. ¿Cómo compruebo los errores de sintaxis en la configuración de mi servidor web Apache?

Cómo instalar el servidor web Apache en Alpine Linux

Cómo instalar el servidor web Apache en Debian 11

Cómo instalar el servidor web Apache en Ubuntu 18.04

Cómo instalar el servidor web Apache en Ubuntu 20.04

¿Cómo optimizar el servidor web Apache?

Cómo instalar y configurar un servidor web LAMP en Ubuntu 18.04