Crear Virtual hosts con Apache
13/10/2016
|Por Yoné Rocha
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #crear usuario sin shell, para encapsular el vhost sudo useradd -d /missitios/dominio.com/ -M -s /bin/false www-miusuario sudo mkdir /missitios/dominio.com sudo chown -R www-miusuario:www-miusuario /missitios/dominio.com sudo chmod -R 755 /missitios/dominio.com #Para que los archivos creados por Apache sólo pueda leerlos modificarlos y borrarlos el usuario de la web #Añadir umask 0027 en el siguiente archivo nano /etc/apache2/envvars #Instalar para asignar vhost por usuario sudo apt-get install libapache2-mpm-itk sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/dominio.com.conf sudo nano /etc/apache2/sites-available/dominio.com.conf |
Configuración del Virtual Host
Vim
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <VirtualHost *:80> ServerAdmin micorreo@midominio.com ServerName midominio.com ServerAlias www.midominio.com DocumentRoot /missitios/dominio.com ErrorLog ${APACHE_LOG_DIR}/error-midominio.log CustomLog ${APACHE_LOG_DIR}/access-midominio.log combined <Directory "/missitios/dominio.com"> #Order allow,deny #Obsoleto #Allow from all #Obsoleto AllowOverride All Require all granted #Sustituye a Order y Allow en Apache > 2.4 </Directory> #Para asignar el usuario al vhost <IfModule mpm_itk_module> AssignUserId www-miusuario www-miusuario </IfModule> </VirtualHost> |
Shell
1 2 3 4 5 6 | cd /etc/apache2/sites-available/ #Activar el vhost. Si quiero desactivar usar; a2dissite sudo a2ensite dominio.com.conf #Recargar apache para que tengan efecto los cambios sudo systemctl reload apache2 |
Virtual Host para Symfony
Vim
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <VirtualHost *:80> #Para asignar en estas variables la config de la db en lugar de en parameters.yml SetEnv SYMFONY__DATABASE__USER "..." SetEnv SYMFONY__DATABASE__PASSWORD "..." ServerAdmin micorreo@midominio.com ServerName midominio.com ServerAlias www.midominio.com DocumentRoot /missitios/dominio.com DirectoryIndex app.php ErrorLog ${APACHE_LOG_DIR}/error-midominio.log CustomLog ${APACHE_LOG_DIR}/access-midominio.log combined <Directory "/missitios/dominio.com"> #Order allow,deny #Allow from all AllowOverride All Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> #Para asignar el usuario al vhost <IfModule mpm_itk_module> AssignUserId www-miusuario www-miusuario </IfModule> KeepAlive On MaxKeepAliveRequests 200 KeepAliveTimeout 5 <IfModule mod_filter.c> AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/rss+xml" \ "application/x-javascript" \ "application/xhtml+xml" \ "application/xml" \ "image/svg+xml" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/xml" </IfModule> <IfModule mod_headers.c> Header append Vary User-Agent env=!dont-vary ExpiresActive On ExpiresDefault "now plus 1 week" ExpiresByType image/x-icon "now plus 1 month" ExpiresByType image/gif "now plus 1 month" ExpiresByType image/png "now plus 1 month" ExpiresByType image/jpeg "now plus 1 month" </IfModule> </VirtualHost> |
APACHE_LOG_DIR => /var/log/apache2/
También puede ser de interés: Crear usuario enjaulado SFTP
Fuente: geektheory.com, digitalocean.com, un usuario diferente para cada vhost en Apache y vhost para symfony