Host virtuales en ubuntu server 24.04

Quieres trabajar en proyectos locales, no necesitas de tener un dominio externo, solo debes crear tus propios dominios .test para realizar las pruebas.

En esta guía crearemos estos dominios, para realizar nuestras pruebas, antes de subir los proyectos a un hosting externo de paga, o simplemente también puedes armar tu propio server.

Lo primero que debes tener es un servidor local llamado Lamp, te invito, si no tienes uno armado, a que leas este artÍculo, ya debemos tener por lo menos montando apache2 en nuestro distro, para realizar los multi dominios locales.

CREANDO DOMINIO .TEST

Para realizar todos estos pasos, los haremos a través de la terminal de ubuntu, debes abrirla con la combinación de teclas control+alt+t.

Debemos notar que los proyectos, es conveniente siempre crearlos en carpetas organizadas, para mantener las buenas practicas de la programación, y trabajaremos en la carpeta raíz que apache2 nos otorga, que es /var/www.

En este caso crearemos una carpeta llamada php, donde alojaremos nuestros proyectos de php a realizar.

En la terminal debes ingresar lo siguiente para crear la carpeta

sudo mkdir /var/www/php

Ahora lo que haremos es obtener una copia del archivo 000-default.conf, que es el archivo por defecto de apache para mostrar el localhost en el navegador, pero le daremos otro nombre para nuestro proyecto de php.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/php.test.conf

Que es lo que estamos haciendo en este caso, es crear nuestro propio archivo de configuración para que apache reconozca nuestro nueva configuración del dominio que vamos a crear, php.test

Ahora debemos abrir el archivo para realizar las modificaciones y dejarlo optimo para nuestro dominio php.test. Si ves la imagen que viene, te darás cuenta que ya viene una configuración por defecto,que a nosotros no nos sirve, por eso la cambiaremos.

sudo nano /etc/apache2/sites-available/php.test.conf

La modificación consta con el siguiente código que debes pegar y lo iremos explicando paso a paso. Para guardar debes presionar control+x y luego s si estas con español, luego enter.

<VirtualHost *:80>
ServerName php.test
ServerAlias www.php.test
ServerAdmin php@localhost
DocumentRoot /var/www/php

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/php>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>

<VirtualHost *:80> -> Le indicamos a apache 2 que la web se escuche a través del puerto 80, para web con seguridad ssl se usa el 443, pero como es local, no usamos este ultimo puerto.

ServerName php.test
ServerAlias www.php.test -> acá entregamos la información a apache de como se llamará nuestro dominio local, en este caso será php.test, puedes crear el dominio que se te antoje.

DocumentRoot /var/www/php -> esto es lo más importante, porque le decimos a apache en donde tiene que buscar para mostrar el proyecto, cuando pasamos el dominio local a través del navegador, recordemos que creamos la carpeta php dentro de /var/www.

Cambiamos los permisos al archivo de configuración para protegerlo o simplemente para que no tengamos problemas con las configuraciones de la distro.

sudo chmod 644 /etc/apache2/sites-available/php.test.conf

Ahora debemos indicar al sistema que el dominio es local y no externo para que no lo salga a buscar por toda la internet.

Modificamos el archivo hosts de la carpeta /etc.

sudo nano /etc/hosts

Lo único que debes hacer es agregar la linea 127.0.0.1 php.test luego grabar y salir.

Con todos estos pasos ya tenemos configurado nuestro nuevo dominio, si quieres mas dominios, debes solo ir repitiendo los pasos.

Pero a pesar de todo si colocas http://php.test en el navegador no verás nada, por dos razones, la primera, es que no hemos creado ningún archivo dentro de la carpeta de php y tampoco hemos agregado el dominio a la configuración de apache.

Entonces el primer paso haremos un archivo de muestra solo para poder ver algo en pantalla cuando llamemos a nuestro dominio.

sudo nano /var/www/php/index.php

Dentro del archivo index, que es el indice principal, también podría haber sido index.html, pero para agregar la estructura es más largo, solo como index.php agrega lo siguiente:

<?php
echo "Hola Mundo";
?>

Ya con el archivo creado debemos agregar nuestro nuevo dominio a apache con la siguiente instrucción:

sudo a2ensite php.test.conf

Si todo esta correcto deberías ver el siguiente mensaje en la terminal

Ahora reiniciaremos apache2 con

sudo systemctl reload apache2

Abre tu navegador he ingresa la siguiente url http://php.test

Si te aparece esto

Tranquilo, no te asustes, es porque creamos los archivos como usuario root y debemos cambiar los permisos de la carpeta php para que el navegador tenga acceso al contenido.

Como segundo punto, tampoco tenemos acceso a la carpeta de /var/www, porque no somos parte del grupo de apache, asi que realizaremos todos estos cambios.

Primer paso agregamos todo lo que esta dentro de www al grupo de apache

sudo chown -R www-data:www-data /var/www/

Como segundo paso para verificar solamente ocuparemos permisos que usan todos los servidores web

sudo chmod 755 -R /var/www

Si lograste poder ver el Hola Mundo, te felicito, pero no podrás modificarlo, te aconsejo usra permisos 777 aunque te digan que no es recomendable, solo lo usaremos para nuestro servidor local.

En el caso que expongas tu servidor para el exterior, jamás debes usar este tipo de permiso y debes cambiar todo lo que esta en /var/www a 755

sudo chmod 777 -R /var/www/php

En este caso solo cambiamos los permisos a la carpeta php, si quieres aplicar a todos los proyectos de www solo debes quitar /php

Agregar un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos están marcados *