Blog de Gonzalo

CREAR HOST VIRTUALES Y DEFINIR ENTORNO

Cuando se empieza un proyecto PHP. Lo normal es guardar el proyecto en la carpeta pública del servidor local y que es accesible escribiendo en el navegador localhost/nombre-carpeta-proyecto/. Pero con APACHE se puede cambiar de carpeta y / o cambiar el dominio de acceso. Para poder hacer éso, es necesario hacer un VirtualHost y modificar el fichero host ya sea Windows o Linux.
También se puede definir el entorno de una manera sencilla y desde PHP controlar si se está en desarrollo o producción.
Os pongo un ejemplo sencillo: Primero hay que definir en el archivo HOST, cada S.O. lo tiene definido en un directorio diferente, el nombre del proyecto.


127.0.0.1 nombre-nuevo.local

-Linux:

nombre-nuevo.local
<VirtualHost *:80>
ServerName nombre-nuevo.local
DocumentRoot /xampp/htdocs/miproyecto
<Directory "/xampp/htdocs/miproyecto">
AllowOverride All
</Directory>
SetEnv APPLICATION_ENV development
</VirtualHost>;

Hay que añadir el código anterior en la carpeta /etc/apache2/sites-available copiar el fichero 000-default.conf y renombrarlo como el virtualhost a crear y poner el código anterior. Despúes de configurarlo hay que activar el nuevo sitio con el comando sudo a2ensite virtualhostfile.conf -Windows:

<VirtualHost *:80>
ServerName nombre-nuevo.local
DocumentRoot "C:/xampp/htdocs/miproyecto"
<Directory "/xampp/htdocs/miproyecto">;
AllowOverride All
</Directory>;
SetEnv APPLICATION_ENV development
</VirtualHost>
Hay que añadir el código anterior en el fichero httpd.conf sino se encuentra la sección de apache de Virtual Hosts hay que añadirlo al fichero http-vhosts que se encuentra en el directorio extra. Después de crear el virtualhost es necesario reiniciar apache.

DocumentRoot Es la ruta donde se guarda nuestra página web.
ServerName. Que es el nombre del host que previamente agregamos al archivo host de nuestro S.O.
SetEnv APPLICATION_ENV. Define la variable del entorno del proyecto, no es necesario simplemente para controlar que es desarrollo o producción y obtener una configuracíonde bb.dd, u otra, las rutas, etc....
Cuando se está programando en PHP hay que hacer lo siguiente para saber el entorno está la aplicación para hacer los ajustes necesarios:

//getenv obtiene el valor de la variable de entorno
getenv('APPLICATION_ENV');

No hay que olvidar reiniciar el APACHE después de cada modificación.

Compartir en twitter