¡Ahora estamos casi listos para que nuestra aplicación skeleton viva! La
última cosa que tenemos que hacer es configurar el sitio virtual de Apache.
El termino sitio virtual significa que podemos ejecutar varios sitios web en
la misma computadora. Los sitios virtuales se diferencian por el nombre de
dominio (como site.mydomain.com
y site2.mydomain.com
) o por el número de
puerto (como localhost
y localhost:8080
). Los sitios virtuales funcionan
de manera transparente para los usuarios, esto significa que los usuarios
no tienen la menor idea de si el sitio esta funcionando sobre la misma o sobre
diferentes computadoras.
Actualmente tenemos a la aplicación skeleton dentro del directorio home
.
Para que Apache lo sepa, necesitamos editar el archivo de configuración
del sitio virtual.
El archivo para el sitio virtual puede estar localizado en diferentes rutas dependiendo del sistema operativo. Por ejemplo, en Ubuntu GNU/Linux está ubicado en
/etc/apache2/sites-available/000-default.conf
. Para información sobre sitios virtuales específicos por sistema operativo podemos revisar el Apéndice A. Configuración del Entorno de Desarrollo Web.
Vamos a editar el sitio virtual por defecto para dejarlo de la siguiente manera (asumimos que usamos Apache 2.4):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/username/helloworld/public
<Directory /home/username/helloworld/public/>
DirectoryIndex index.php
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
En la línea 1 se indica a Apache que escuche por todas las direcciones IP (*) y por el puerto 80.
La línea 2 define el correo electrónico del administrador web. Si algo malo pasa en el sitio. Apache envía una alerta por correo electrónico a esta dirección. Podemos colocar nuestra dirección de correo electrónico aquí.
La línea 4 define el directorio raíz de documentos (APP_DIR/public
). Todos
los archivos y carpetas dentro del la raíz de documentos serán accesibles
para los usuarios web. Debemos colocar allí la ruta absoluta a la carpeta
public
de la aplicación skeleton. Así, las carpetas y archivos dentro
de public
(como index.php
, css
, js
, etc.) serán accesibles mientras
que las carpetas y archivos por encima de la carpeta public
(como config
,
module
, etc.) no serán accesibles para los usuarios web, con esto aumentamos
la seguridad de nuestro sitio web.
Las líneas 6-10 definen las reglas para la carpeta raíz de documentos (APP_DIR/public
).
Por ejemplo, la directiva DirectoryIndex
le dice a Apache que el archivo
index.php
debe ser usado como el archivo index por defecto. La directiva
AllowOverride All
permite definir reglas en el archivo .htaccess
. La
directiva Require all granted
permite a cualquiera visitar la página web.
Zend Framework 3 utiliza el módulo de reescritura de URL de Apache para redirigir a los usuarios web al punto de entrada de nuestro sitio web. Debemos asegurarnos que el servidor web tiene el módulo
mod_rewrite
habilitado. Para instrucciones sobre como habilitar el módulo podemos revisar el Apéndice A. Configuración del Entorno de Desarrollo Web.
Después de editar el archivo de configuración no debemos olvidar reiniciar Apache para que se apliquen los cambios.