Servidor web · 4 min read · Jan 07, 2026
Crea tu propio servidor web con BIND y Apache en CentOS 5 (Simplificado) - Página 2
Saltando de nuevo :) Esta vez un poco más lejos, a la línea 1005, allí deberías ver:
NameVirtualHost *:80La directiva NameVirtualHost le dice a Apache que queremos usar alojamiento virtual basado en nombres, o en términos más simples, un montón de sitios web que utilizan la misma dirección IP. Agrega un par de líneas en blanco debajo de ‘#NameVirtualHost *:80’ y en la línea justo debajo pon NameVirtualHost y tu nombre de host o dirección IP seguido de :80. El ‘:80’ significa que estamos utilizando alojamiento virtual basado en nombres para el protocolo HTTP.
Así que deberías producir algo como esto:
NameVirtualHost host.website.com:80Ahora casi hemos terminado de configurar nuestro archivo httpd.conf. Lo único que queda por configurar es si alguien visita nuestro servidor usando la IP en lugar del nombre de dominio, estableceremos nuestro nombre de host predeterminado para que sea visible para esos usuarios. Podemos insertar esto al final del archivo de configuración
ServerAdmin [email protected]
DocumentRoot /www
ServerName 77.77.197.69
ErrorLog logs/error_log
CustomLog logs/access_log common
Para mantener nuestro
httpd.conf
más fácil de gestionar, deberíamos agregar esta línea al final del archivo:
Include conf/vhosts/*.confLo que significa que incluiremos todas las entradas .conf de /etc/httpd/conf/vhosts donde almacenaremos los hosts virtuales para nuestros sitios web a medida que los agreguemos. Será más fácil de entender a medida que avancemos. Ok, casi hemos terminado, guarda httpd.conf y sigue adelante.
Creando directorios de sitios web
Ahora deberíamos crear la estructura de directorios del sitio web para gestionar nuestros sitios web adecuadamente. Primero, creemos el directorio principal:
mkdir /wwwAhora estamos haciendo que root sea el propietario de /www:
chown root.root /wwwAntes de continuar, necesitamos hacer un ajuste, debemos agregar una zona para host.website.com en nuestro named.conf porque lo usamos como nombre de host en httpd.conf y obtendremos un error si no lo hacemos. Así que deberíamos agregar esto a named.conf
zone "host.website.com" IN {
type master;
file "/var/named/host.website.com.db";
};Y, por supuesto, a continuación está el contenido del archivo:
/var/named/chroot/var/named/host.website.com.db$TTL 14400
@ 86400 IN SOA ns1.website.com. [email protected]. (
2008021501 ; serial, fecha de hoy+hoy
86400 ; refresco, segundos
7200 ; reintentar, segundos
3600000 ; expirar, segundos
86400 ) ; mínimo, segundos
host.website.com. 86400 IN NS ns1.website.com.
host.website.com. 86400 IN NS ns2.website.com.
host.website.com. IN A 77.77.197.69
localhost.host.website.com. IN A 127.0.0.1Puedes agregar tantos registros como desees. Antes de reiniciar named, haz un enlace:
ln -s/var/named/chroot/var/named/host.website.com.db /var/named/host.website.com.dbservice named restartAhora volvemos a la estructura de directorios. Así que hemos agregado una zona para nuestro
website.com
ahora necesitamos un directorio virtual para ello.
cd /www
mkdir website.com
cd website.com
mkdir html
mkdir html/cgi-bin
mkdir databases
mkdir logs
Dado que hemos creado un directorio para nuestro sitio web, todo lo que necesitamos es un usuario que pueda gestionar este nombre de dominio. Podemos hacer eso con:
useradd -d /www/your-domain/ domain_usero si deseas restringir el acceso a la shell al usuario, usa esto:
useradd -d /www/your-domain/ -s /sbin/nologin domain_userDespués de que se haya agregado el usuario, podemos modificar su contraseña con:
passwdEste usuario aún no tiene su lugar “hogar” :) que posee, ahora agregamos esto:
cd /www && chown domain_user:domain_user website.comSi creas un directorio “databases”, entonces necesitarás cambiar el propietario al usuario mysql, de lo contrario MySQL no podrá escribir en los archivos de la base de datos. Todos los directorios, subdirectorios y archivos relacionados con bases de datos deben ser propiedad del usuario mysql y podemos hacer eso con este comando:
cd website.com && chown -R mysql:mysql databasesCon esto completamos la creación de la estructura de directorios del sitio web, ahora lo único que queda por hacer es decirle a Apache dónde está nuestro sitio web y hemos terminado.
Ahora volvamos un poco atrás cuando estábamos configurando httpd.conf, insertamos una línea allí:
Include conf/vhosts/*.confAhora entenderás por qué hicimos eso si no lo sabías ya. Dado que la carpeta aún no existe, deberíamos crearla:
cd /etc/httpd/conf && mkdir vhostsAhora entramos en el directorio vhosts:
cd vhostsy creamos un nuevo archivo para nuestro dominio:
nano website.com.80.confDeberíamos insertar lo siguiente en este archivo:
ServerAdmin [email protected]
ServerName website.com
ServerAlias www.website.com
DocumentRoot /www/website.com/html
ScriptAlias /cgi-bin/ /www/website.com/html/cgi-bin/
ErrorLog /www/website.com/logs/error_log
CustomLog /www/website.com/logs/access_log combined
Finalmente llegamos al punto final ahora cuando le dijimos a apache dónde está el directorio de nuestro sitio web, ahora cada solicitud del navegador para www.website.com se leerá desde /www/website.com/html; allí deberías poner tus archivos, por ejemplo: index.html. Ahora podemos encender nuestro httpd, o reiniciarlo si ya estaba encendido.
service httpd starto
service httpd restartSi experimentas algún problema con este tutorial o con la configuración de Apache o BIND, no dudes en contactarme. Estoy seguro de que tuve esos problemas e incluso peores - estaré encantado de ayudar en mi tiempo libre.
Autor
: Emir Ibrahimbegovic
E:
[email protected]
W:
Gracias a:
Tony Bhimani, Sébastien Wains, Nayyar Ahmad
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.