COMO CREAR HOST VIRTUALES Y DEFINIR ENTORNO CON APACHE
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
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>
<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.
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');