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.
Visitas:30