En este tutorial podrás crear host virtuales con dominios propios como es el .test, para tus proyectos y realizar pruebas como si fuera un servidor externo.
Siempre hemos necesitado, trabajar con url dinámicas y por lo tanto es imprescindible tener un dominio para ello.
Pero para que comprar un dominio, si solo necesitamos realizar pruebas locales.
Es por ello que podemos crear los nuestros y evitarnos, tener que abrir puertos de nuestro router y asociar el dominio externo a nuestro servidor, exponiendo nuestro sistema que no tiene seguridad, ya que solo es local y no cuenta con ello.
Lo primero, es que si no cuentas con un servidor de apache, te recomiendo que sigas este articulo de creación de servidor local apache, php 8.3, mysql y phpadmin para seguir con este artículo, desde este enlace.
Preparando el server
Lo primero que debemos saber, en donde crearemos nuestro proyecto, por temas de organización y que apache pueda leer la información, esta debe estar en la carpeta raíz, que es /var/www, esta es la que apache entiende que debe leer para mostrar en el navegador.
Por lo tanto crearemos una carpeta dentro de ella que se llamará prueba, que es solo para probar.
Abrimos la terminal de nuestro Ubuntu y colocamos el siguiente comando para dirigirnos a la carpeta del proyecto
cd /var/www
Como ya estamos en la carpeta donde crearemos nuestro proyecto, ingresamos lo siguiente, para crear nuestra carpeta donde apuntaremos a apache para que lea lo que tiene que mostrar en pantalla.
sudo mkdir prueba
Daremos los permisos a esa carpeta para que se pueda escribir en ella, total como lo usaremos de forma local, le daremos todos los permisos.
sudo chmod 777 /var/www/prueba
Ingresa a la carpeta
cd prueba
Ahora puedes ingresar en ella y créate un archivo index.html, lo puedes hacer de forma directa o de esta otra manera.
sudo touch index.html
Ahora puedes usar cualquier editor de texto o usar nano desde la terminal y pegar lo siguiente.
sudo nano index.html
pegar
<!DOCTYPE html>
<html>
<head>
<title>Pagina de prueba</title>
</head>
<body>
<h1>Esta es la página de prueba</h1>
</body>
</html>
Para salir del editor y grabar el archivo debes presionar control+x y luego y + enter.
Aunque quieres acceder a este archivo en el navegador, no lo podrás ver, porque esta fuera de la carpeta /var/www/html que por defecto lee apache, lo que estamos haciendo es como un trampolín a otro lugar pero con dominio propio.
Creando el dominio prueba.test
Apache2, tiene una configuración por defecto, como toda plataforma, donde se alojan archivos que hacen que se ejecute o simplemente que necesita para realizar redirecciones a lo que se quiere ver o procesar.
Para ello, nosotros debemos crear nuestra propia configuración del sitio, para indicarle a Apache2, el nombre de dominio y el lugar donde alojaremos los archivos del proyecto que usaremos.
Por defecto Apache2 usa un archivo llamado 000-default.conf, donde tiene su configuración y lo que muestra cuando instalas los paquetes y esta se encuentra en la siguiente dirección, /etc/apache2/sites-available/
Lo que haremos realmente, es sacar una copia al archivo 000-default.conf, para usar la estructura que se encuentra dentro de ella y modificarla para nuestro dominio.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/prueba.test.conf
se nos ha creado un archivo con el nombre de prueba.test, dentro de la carpeta, así apache tomará en cuenta que ya no solo hay un sitio en el sistema, si no que hay más.
Ahora debemos modificar nuestro archivo prueba.test.conf y usaremos nano para ello, como usuario root usando el sudo
sudo nano /etc/apache2/sites-available/prueba.test.conf
elimina o modifica los campos para que quede algo parecido a lo que te mostraré en el código, fíjate bien que las rutas estén apuntando la carpeta donde crearemos el proyecto que es /var/www/prueba, es muy importante este paso, si queda mal, no funcionará.
<VirtualHost *:80>
ServerName prueba.test
ServerAlias www.prueba.test
ServerAdmin prueba@localhost
DocumentRoot /var/www/prueba
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/prueba
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Salimos del editor con control+x, luego y + enter
Pero a pesar de que creamos la configuración, apache aún no mostraría en pantalla nuestro proyecto, porque debemos modificar otro archivo y agregar en el host de nuestro distro el dominio para que indique , que es local y no externo.
sudo nano /etc/hosts
y agrega la siguiente línea
127.0.0.1 prueba.test
Salimos del editor con control+x, luego y + enter
Ahora agregaremos la configuración del dominio a apache, para que entienda que hay uno nuevo, de la siguiente manera
sudo a2ensite ${titulo}.test.conf
y por ultimo reiniciamos apache para que se incrusten todos los ajustes y podamos ver nuestro archivo index.html en pantalla
sudo service apache2 restart
Ahora prueba en el navegador el nuevo dominio que hemos creado con la siguiente dirección, http://prueba.test