Crear un subdominio en Linux requiere acceso al servidor web (como Apache o Nginx) y al sistema de archivos del servidor. Aquí te explico cómo hacerlo paso a paso 🧑💻:
1. Crear el directorio del subdominio
bash
sudo mkdir -p /var/www/subdominio.midominio.com/public_html
2. Asignar permisos
bash
sudo chown -R $USER:$USER /var/www/subdominio.midominio.com/public_html
3. Crear el archivo de configuración del subdominio
bash
sudo nano /etc/apache2/sites-available/subdominio.midominio.com.conf
4. Agregar contenido al archivo
apache
<VirtualHost *:80>
ServerAdmin admin@midominio.com
ServerName subdominio.midominio.com
DocumentRoot /var/www/subdominio.midominio.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
5. Activar el sitio
bash
sudo a2ensite subdominio.midominio.com.conf
6. Reiniciar Apache
bash
sudo systemctl restart apache2
7. Configurar DNS
En tu proveedor de dominio, crea un registro tipo A o CNAME apuntando subdominio.midominio.com a la IP de tu servidor.
Crear un subdominio en Linux usando Nginx 🐧:
1. Crear el directorio del subdominio
bash
sudo mkdir -p /var/www/subdominio.midominio.com/html
2. Asignar permisos
bash
sudo chown -R $USER:$USER /var/www/subdominio.midominio.com/html
3. Crear el archivo de configuración
bash
sudo nano /etc/nginx/sites-available/subdominio.midominio.com
4. Agregar contenido al archivo
nginx
server {
listen 80;
server_name subdominio.midominio.com;
root /var/www/subdominio.midominio.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
5. Activar el subdominio
bash
sudo ln -s /etc/nginx/sites-available/subdominio.midominio.com /etc/nginx/sites-enabled/
6. Probar la configuración
bash
sudo nginx -t
7. Reiniciar Nginx
bash
sudo systemctl restart nginx
8. Configurar el DNS
En el panel de tu proveedor de dominio, crea un registro tipo A apuntando subdominio.midominio.com a la IP de tu servidor.
script automatizado en Bash para crear subdominios en Nginx fácilmente. Solo necesitas ejecutar este script en tu servidor Linux y seguir las instrucciones:
Script: crear_subdominio_nginx.sh
bash
#!/bin/bash
echo "🔧 Creación automática de subdominio en Nginx"
read -p "Introduce el nombre del subdominio (ej. blog): " SUBDOMINIO
read -p "Introduce el dominio principal (ej. midominio.com): " DOMINIO
FULL_DOMAIN="$SUBDOMINIO.$DOMINIO"
ROOT_DIR="/var/www/$FULL_DOMAIN/html"
# Crear directorio
sudo mkdir -p $ROOT_DIR
sudo chown -R $USER:$USER $ROOT_DIR
# Crear archivo de configuración
CONFIG_FILE="/etc/nginx/sites-available/$FULL_DOMAIN"
sudo tee $CONFIG_FILE > /dev/null <<EOF
server {
listen 80;
server_name $FULL_DOMAIN;
root $ROOT_DIR;
index index.html index.htm;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
# Activar sitio
sudo ln -s $CONFIG_FILE /etc/nginx/sites-enabled/
# Probar y reiniciar
sudo nginx -t && sudo systemctl restart nginx
echo "✅ Subdominio $FULL_DOMAIN creado y activado."
echo "📁 Puedes subir contenido a: $ROOT_DIR"
¿Qué hace este script?
- Te pide el nombre del subdominio y el dominio principal.
- Crea el directorio raíz del subdominio.
- Genera el archivo de configuración de Nginx.
- Lo activa y reinicia Nginx.
Versión automatizada para Apache, similar a la que hicimos para Nginx. Con este script podrás crear subdominios en tu servidor Linux con Apache de forma rápida:
Script: crear_subdominio_apache.sh
bash
#!/bin/bash
echo "🔧 Creación automática de subdominio en Apache"
read -p "Introduce el nombre del subdominio (ej. blog): " SUBDOMINIO
read -p "Introduce el dominio principal (ej. midominio.com): " DOMINIO
FULL_DOMAIN="$SUBDOMINIO.$DOMINIO"
ROOT_DIR="/var/www/$FULL_DOMAIN/public_html"
# Crear directorio
sudo mkdir -p $ROOT_DIR
sudo chown -R $USER:$USER $ROOT_DIR
# Crear archivo de configuración
CONFIG_FILE="/etc/apache2/sites-available/$FULL_DOMAIN.conf"
sudo tee $CONFIG_FILE > /dev/null <<EOF
<VirtualHost *:80>
ServerAdmin admin@$DOMINIO
ServerName $FULL_DOMAIN
DocumentRoot $ROOT_DIR
ErrorLog \${APACHE_LOG_DIR}/$FULL_DOMAIN-error.log
CustomLog \${APACHE_LOG_DIR}/$FULL_DOMAIN-access.log combined
</VirtualHost>
EOF
# Activar sitio
sudo a2ensite $FULL_DOMAIN.conf
# Probar y reiniciar
sudo apache2ctl configtest && sudo systemctl reload apache2
echo "✅ Subdominio $FULL_DOMAIN creado y activado."
echo "📁 Puedes subir contenido a: $ROOT_DIR"
¿Qué hace este script?
- Te pide el nombre del subdominio y el dominio principal.
- Crea el directorio raíz del subdominio.
- Genera el archivo de configuración de Apache.
- Lo activa y reinicia Apache.