sábado, 29 de noviembre de 2014

Configurando el servidor web

Después de instalar Yii, podemos acceder a través de la url http://hostname/basic/web/index.php pero seguramente queremos que la url de acceso sea similar a http://hostname/index.php. Para ello, debemos realizar la configuración de manera que el documento raíz apunte al directorio basic/web. Recordemos que basic es el nombre de nuestro proyecto. También podemos necesitar ocultar el archivo index.php

Al configurar la ruta basic/web como la raíz, también prevenimos que los usuarios finales accedan al código privado de nuestra aplicación y archivos sensibles. El negar el acceso a éste directorio es una mejora de seguridad.

Si estamos ejecutando nuestra aplicación en un ambiente de hosting compartido y no tenemos permiso para modificar la configuración del servidor web, debemos considerar ajustar la estructura de nuestra aplicación para tener una mejor seguridad. En la entrada Ambiente de hosting compartido tendremos más detalles. (próximamente).

Configuración Apache recomendada

Modificando el archivo httpd.conf de Apache podemos cambiar la manera de acceder a nuestra aplicación.

En este archivo, debemos buscar  DocumentRoot (que no esté comentado con #) y actualizar el path al nuestro apuntando a basic/web.

En mi caso, localmente utilizo EasyPHP 14.1. Modifiqué
DocumentRoot "${path}/data/localweb"
por
DocumentRoot "${path}/data/localweb/projects/basic/web"

También hay un añadir un tag <Directory> con el siguiente contenido:
<Directory "${path}/data/localweb/projects/basic/web">
    # use mod_rewrite for pretty URL support
    RewriteEngine on
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Otherwise forward the request to index.php
    RewriteRule . index.php
</Directory>

Es posible que tengamos que modificar VirtualHost que también tiene DocumentRoot y Directory. Solo hay que actualizarlos con el path apuntando a nuestro directorio basic/web.
Nos queda algo similar a lo siguiente:
<VirtualHost 127.0.0.1>
DocumentRoot "${path}/data/localweb/projects/basic/web"
ServerName 127.0.0.1
<Directory "${path}/data/localweb/projects/basic/web">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
Allow from 127.0.0.1
Deny from all
Require all granted
</Directory>
</VirtualHost>



También te puede interesar:
Instalando Yii 2
Funcionamiento y Arquitectura de Yii 2
Yii Framework 2

1 comentario:

Nota: sólo los miembros de este blog pueden publicar comentarios.