CÓMO CONFIGURAR APACHE PARA UN DOMINIO
Hace poco cree una aplicación cloud, hecha en php y haciendo self hosting y quiero explicar como configurar el apache.para que el dominio apunte al servidor y a la carpeta correcta:- Supongmos que el dominio es "tudominio.com" y que se tiene la IP estática: "203.0.113.10" y que tenemos linux y apache instalado.
- Crear la carpeta donde irá el código del proyecto web, por ejemplo, "/var/www/tudominio/".
- Crear el VirtualHost en la ruta "/etc/apache2/sites-available/tudominio.conf". Pegar el código:
<VirtualHost *:80> ServerName tudominio.com ServerAlias www.tudominio.com DocumentRoot /var/www/tudominio <Directory /var/www/tudominiol> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/tudominio-error.log CustomLog ${APACHE_LOG_DIR}/tudominio-access.log combined </VirtualHost> - Una vez creado el fichero hay que activar el VirtualHost con los comandos:
sudo a2ensite tudominio.com.conf sudo a2dissite 000-default.conf # (opcional: desactiva el sitio por defecto) sudo systemctl reload apache2 - Activar las DNS en el proveedor del dominio. Puede tardar hasta 48h en propagarse (normalmente 5-30 min).
- Es aconsejable Activar HTTPS por ejemplo con Let’s Encrypt
Es necesario seguir las isntrucciones y elegir "redirigir HTTP → HTTPS".sudo apt install certbot python3-certbot-apache -y sudo certbot --apache -d tudominio.com -d www.tudominio.com
Problemas comunes
- Si sale el error "403 Forbidden" se soluciona con "sudo chown -R www-data:www-data /var/www/tudominio".
- Si sale "Could not reliably determine the server's fully qualified domain name" no hay que hacer nada, no afecta.
- Si no carga el sitio hay que verificar la DNS con "dig tudominio.com".
- Si el puerto 80 bloqueado hay que hacer "sudo ufw allow 80" y "sudo ufw allow 443".
Observaciones
En la configuración del VirtualHost se ha puesto:
<VirtualHost *:80>
ServerName tudominio.com
ServerAlias www.tudominio.com
DocumentRoot /var/www/tudominio
<Directory /var/www/tudominiol>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/tudominio-error.log
CustomLog ${APACHE_LOG_DIR}/tudominio-access.log combined
</VirtualHost>
Pero se podría poner de la siguiente manera:
<VirtualHost tudominio.com:80>
ServerName tudominio.com
ServerAlias www.tudominio.com
DocumentRoot /var/www/tudominio
<Directory /var/www/tudominiol>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/tudominio-error.log
CustomLog ${APACHE_LOG_DIR}/tudominio-access.log combined
</VirtualHost>
La diferencia es que en la primera opción es buena cuando se tiene una ip y la segunda opción es cuando se tienen varias ips.
Es mejor la primera opción con ips dinámicas, balanceadores contenedores.
<VirtualHost *:80>
ServerName tudominio.com
ServerAlias www.tudominio.com
DocumentRoot /var/www/tudominio
<Directory /var/www/tudominiol>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/tudominio-error.log
CustomLog ${APACHE_LOG_DIR}/tudominio-access.log combined
</VirtualHost>
<VirtualHost tudominio.com:80>
ServerName tudominio.com
ServerAlias www.tudominio.com
DocumentRoot /var/www/tudominio
<Directory /var/www/tudominiol>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/tudominio-error.log
CustomLog ${APACHE_LOG_DIR}/tudominio-access.log combined
</VirtualHost>
Es mejor la primera opción con ips dinámicas, balanceadores contenedores.