Configurar un servidor virtual en Apache

Sigue éstos pasos para agregar un host virtual a tu servidor Apache sobre Ubuntu/Debian, puedes usar éstas instrucciones para tu servidor de desarrollo y también para producción.

Permisos de la carpeta

Localiza la ruta completa de la carpeta donde se están los archivos que quieres publicar en el host virtual:

/home/ivancp/projects/proyectophp

 
En Ubuntu apache se ejecuta bajo el usuario www-data , entonces es necesario que los archivos sean accesibles para ese usuario o grupo. Tenemos dos opciones:

1. Agregar usuario propietario de los archivos (en mi caso es ivancp) al grupo www-data.

sudo usermod -a -G www-data ivancp

2. Establecer como propietario de todos los archivos al usuario www-data, aunque no es recomendado es una salida usual.

sudo chown www-data:www-data /home/ivancp/projects/proyectophp -R

También es necesario cambiar los niveles de acceso a 755 para las carpetas y 644 para los archivos, si estás en una carpeta con numerosos archivos puedes realizar esa tarea con los siguientes comandos:

cd /home/ivancp/projects/proyectophp
find . -type d -print0 | xargs -0 chmod 0755
find . -type f -print0 | xargs -0 chmod 0644

Crear el archivo de configuración

Agregar un nuevo archivo a la carpeta de sitios disponibles:

sudo touch /etc/apache2/sites-available/dev.proyectophp.conf

Agregar el siguiente contenido según la versión de Apache:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   ServerName dev.proyectophp.com
   DocumentRoot /home/ivancp/projects/proyectophp
   <Directory /home/ivancp/projects/proyectophp>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
   </Directory>
</VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   ServerName dev.proyectophp.com
   DocumentRoot /home/ivancp/projects/proyectophp
   <Directory /home/ivancp/projects/proyectophp>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride all
      Allow from all
   </Directory>
</VirtualHost>

 

Habilitar el sitio con el comando a2ensite y reiniciar el servidor

sudo a2ensite dev.proyectophp.conf 
sudo service apache2 restart

 

Ese archivo .conf puede contener más de una configuración de host virtual, dependerá de sus necesidades.

Finalmente deberían agregar la siguiente línea al archivo /etc/hosts para que el dominio esté disponible desde el navegador solo en caso de que éste no exista

127.0.0.1 dev.proyectophp.com

Luego de ello podrán acceder desde el navegador http://dev.proyectophp.com

Ya esta listo el nuevo dominio, es recomendable que el dominio de desarrollo sea diferente al de producción o al de otros desarrolladores, ya que las configuraciones pueden variar.

 

Dejar una Respuesta