El término servidor web puede referirse tanto al hardware como al software, o ambos trabajando juntos. Para el propósito de esta guía, nos enfocaremos en el lado del software y veremos cómo puedes alojar un sitio web en tu caja Linux.
A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.
A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.
El contenido dinámico es contenido que cambia frecuentemente o se actualiza constantemente. Para servir contenido dinámico, un servidor web también debe trabajar junto a un servidor de base de datos y lenguajes de scripting del lado del servidor.
Esta guía demostrará cómo configurar un servidor web Apache para alojar un sitio web en tu sistema Linux de forma gratuita.
Tabla de Contenidos
Requisitos
Para seguir esta guía, asegúrate de tener lo siguiente en su lugar.
- A dedicated Public IP address can be obtained from your ISP.
- A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.
Echa un vistazo a algunas guías que pueden darte ideas sobre cómo instalar un servidor Linux.
- Cómo instalar un servidor mínimo de Debian 11 (Bullseye)
- Cómo instalar un servidor mínimo de Debian 10 (Buster)
- Cómo instalar Ubuntu 20.04 Server
- Cómo instalar Rocky Linux 9 Server
- Cómo instalar AlmaLinux 9 Server
- Cómo instalar RHEL 9 gratis
También necesitas un servidor LAMP instalado, que es un acrónimo de Linux, Apache y MySQL (también puede ser MariaDB). Aquí tienes algunas guías sobre cómo instalar el conjunto LAMP en Linux.
- Cómo instalar LAMP en el servidor Debian 10
- Cómo instalar LAMP Stack en Ubuntu 20.04
- Cómo instalar LAMP en Rocky Linux 9/8
- Cómo instalar LAMP Stack en AlmaLinux 9/8
- Cómo instalar LAMP en RHEL 9/8
- Cómo alojar un sitio web en un servidor Linux
En esta sección, procederemos a discutir los componentes principales de un servidor web.
¿Qué es Apache?
Apache es un popular servidor web de código abierto multiplataforma que se publica bajo la Licencia Apache 2.0. Es uno de los servidores web más utilizados, representando casi el 32,2% del mercado de servidores web.
Para verificar la última versión de Apache disponible y si está instalado en tu servidor, ejecuta el comando:
# apt-cache policy apache2 (On Debian-based OS)
Del resultado, puedes ver el parámetro Instalado: (ninguno), lo que implica que aún no está instalado. También obtienes información sobre la última versión ofrecida por el repositorio de Debian / Ubuntu, que en este caso es 2.4.52.

En distribuciones modernas de Red Hat, puedes verificar la disponibilidad de Apache utilizando el siguiente comando dnf de la siguiente manera.
# dnf search httpd

Del resultado anterior, puedes ver que el paquete Apache httpd está disponible para su descarga. Si Apache no está instalado en tu sistema, utiliza los gestores de paquetes ‘apt‘ o ‘dnf‘ para instalar Apache como se muestra.
En sistemas basados en Debian:
$ sudo apt install apache2 -y $ sudo systemctl start apache2 $ sudo systemctl enable apache2 $ sudo systemctl status apache2

En sistemas basados en Red Hat:
# dnf install httpd -y # systemctl start httpd # systemctl enable httpd # systemctl status httpd

¿Qué es MariaDB?
A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.
Para instalar MariaDB, En sistemas basados en Debian:
$ sudo apt install mariadb-server mariadb-client -y $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl status mariadb
El siguiente resultado muestra que MariaDB está instalado y funcionando como se esperaba.

Para instalar MariaDB, En sistemas basados en RHEL:
# dnf install mariadb-server -y # systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb

¿Qué es PHP?
PHP es un acrónimo recursivo para PHP Hypertext Preprocessor, que es un lenguaje de scripting general popular que se usa principalmente en el desarrollo web.
Para instalar PHP, En sistemas basados en Debian:
$ sudo apt update $ sudo apt upgrade $ sudo apt install ca-certificates apt-transport-https software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt update $ sudo apt install php8.0 libapache2-mod-php8.0
Para instalar PHP, En sistemas basados en RHEL, primero debe habilitar el repositorio EPEL.
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9] $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
A continuación, habilite el repositorio Remi, que ofrece la última versión de PHP en sistemas basados en RHEL.
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8] $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
Una vez que EPEL y Remi los repositorios están habilitados en el sistema, puede instalar PHP como se muestra.
# dnf module list php # dnf module enable php:remi-8.0 -y # dnf install php php-cli php-common
Con todos los componentes instalados, ahora puede construir su sitio web utilizando el CMS de WordPress, que es un software que facilita el desarrollo y la administración de un sitio web sin necesariamente tener conocimientos de lenguajes de diseño web como HTML, CSS, PHP y Javascript.
Creación de un Sitio Web Simple con WordPress en Linux
Para la demostración, instalaremos WordPress en sistemas Debian 11 y RHEL 9, lo que proporcionará un sitio web de muestra que puede ser personalizado a su gusto.
Esta sección asume que ya tiene instalado el stack LAMP.
Paso 1: Instalar Módulos PHP Adicionales
Para continuar, instale módulos PHP adicionales que sean requeridos por WordPress tal como se muestra.
Para instalar módulos PHP, En sistemas basados en Debian:
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
Para instalar módulos PHP, En sistemas basados en RHEL:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
Paso 2: Crear una Base de Datos para WordPress
Escrito en PHP, WordPress es un sistema de gestión de contenido gratuito y de código abierto. Una base de datos es un componente esencial de WordPress.
La base de datos se utiliza para almacenar todos los artículos de blog, páginas, categorías, comentarios, temas, complementos y archivos de configuración de WordPress.
Para crear una base de datos para WordPress, inicie sesión en el servidor de bases de datos MariaDB:
$ sudo mysql -u root -p
A continuación, cree una base de datos como se muestra
CREATE DATABASE wordpress_db;
A continuación, cree un usuario de base de datos y asigne todos los privilegios al usuario en la base de datos.
GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
Entonces, finalmente, recargue las tablas de asignación de permisos para guardar los cambios realizados y salga de la base de datos.
FLUSH PRIVILEGES; QUIT;
Paso 3: Descargar WordPress
Con la base de datos en su lugar, proceda a descargar el archivo tarball de WordPress más reciente utilizando el comando wget.
$ wget https://wordpress.org/latest.tar.gz
Una vez descargado, extraiga el archivo comprimido utilizando el comando tar.
$ tar -xvzf latest.tar.gz
El comando extrae el contenido del archivo en una carpeta llamada wordpress. Mueva o copie la carpeta en la Document Root para el servidor web Apache.
$ sudo mv wordpress/ /var/www/html/
A continuación, asigne los siguientes permisos y derechos de propiedad.
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
Paso 4: Crear un Host Virtual de Apache para WordPress
El término host virtual se refiere a la práctica de alojar múltiples sitios web en un solo servidor. Si tiene la intención de alojar múltiples sitios web en un solo servidor, debe crear un host virtual para cada sitio web.
En este caso, debe crear un host virtual para el sitio web de WordPress de la siguiente manera.
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian] # vi /etc/httpd/conf/httpd.conf [On RHEL]
Pegue las siguientes líneas de código para definir el host virtual. Para la directiva ServerName, proporcione la dirección IP del servidor o el Nombre de Dominio Totalmente Calificado, que debería apuntar a la dirección IP pública dedicada.
<VirtualHost *:80> ServerAdmin admin@your_domain.com DocumentRoot /var/www/html/wordpress ServerName 192.168.0.100 <Directory /var/www/html/wordpress> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
Guarde los cambios y salga del archivo.
Para conectarse a la base de datos, se necesitan algunas modificaciones adicionales. Por lo tanto, navegue hasta la carpeta wordpress.
$ cd /var/www/html/wordpress/
A continuación, actualice el archivo wp-config.php con el contenido del archivo wp-config-sample.php.
$ cp wp-config-sample.php wp-config.php $ sudo nano wp-config.php
A continuación, actualice el nombre de la base de datos, el nombre de usuario de la base de datos y las directivas de contraseña con los detalles de la base de datos.
A continuación, habilite el nuevo sitio de WordPress de la siguiente manera en sistemas basados en Debian.
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf $ sudo a2ensite wordpress $ sudo a2enmod rewrite $ sudo a2dissite 000-default
Para efectuar los cambios, reinicie Apache.
$ sudo systemctl restart apache2 [On Debian] # systemctl restart httpd [On RHEL]
Paso 4: Completa la Configuración de WordPress en un Navegador
Para completar la configuración, navegue a la dirección IP de su servidor web como se muestra:
http://server-ip
Debería obtenerse la página de bienvenida de WordPress mostrada como se indica. Seleccione su idioma preferido y haga clic en ‘Continuar’ (‘Continue‘).

A continuación, complete los detalles del sitio.

Luego haga clic en ‘Instalar WordPress’ (‘Install WordPress‘) para completar la configuración de WordPress.

Si todo salió bien, recibirá una confirmación de que la instalación fue exitosa. Para iniciar sesión, haga clic en el botón ‘Iniciar sesión’ (‘Log In‘).

Esto te lleva al panel de control de WordPress como puedes ver. En este punto, puedes experimentar con varios temas para mejorar la apariencia de tu sitio web de muestra.

Paso 5: Accede a WordPress Usando Reenvío de Puertos
Dado que estás alojando tu servidor web desde un sistema Linux en casa o tu Red de Área Local (LAN), el siguiente paso es hacerlo accesible para usuarios externos o usuarios fuera de tu LAN (Red de Área Local). Aquí es donde entra el reenvío de puertos.
El reenvío de puertos, también conocido como mapeo de puertos, es una técnica que permite a dispositivos externos acceder a servidores o recursos dentro de una red privada a través de Internet. La idea principal es acceder a redes privadas desde el exterior, sin lo cual sería imposible ya que los dispositivos externos no pueden comunicarse con direcciones IP internas.
En tu configuración, necesitas reenviar el puerto en el que el servidor web está escuchando, (en la mayoría de los casos, este es el puerto 80 para el tráfico HTTP o 443 para HTTPS) así como la dirección IP privada estática del servidor web.
Por lo tanto, inicia sesión en tu enrutador y dirígete a la sección de reenvío de puertos. En nuestro ejemplo, estamos utilizando el enrutador DLink para reenviar los puertos del servidor web (80 y 443) y la IP privada (192.168.0.100) a la IP Pública Dedicada asignada por el proveedor de servicios de Internet.
En tu caso, especifica los puertos y la IP privada del servidor web y guarda los cambios.

Para guardar los cambios, es posible que necesites reiniciar el enrutador. Así que adelante y haz exactamente eso.
Una vez que el reenvío de puertos se haya realizado correctamente, ahora podrá acceder a su servidor web fuera de su red a través de la dirección IP pública.
Conclusión
En esta guía, hemos demostrado cómo puede alojar su propio servidor web utilizando Apache en un equipo Linux. Agradecemos sus comentarios sobre esta guía.