Hola qué tal? Les hago una consulta, resulta tengo un sitio desarrollado en Symfony2 que se encuentra alojado en un micro servidor T2 de amazon. El mismo ya tiene un dominio vinculado y todo.
En el servidor hay dos sitios, uno hecho en Joomla y otro en Symfony. El dominio que apunta al servidor, inicia correctamente la web en Joomla, pero para acceder al proyecto en Symfony, no logro configurar correctamente un virtualhost para que se pueda ingresar al mismo.
Estructura de proyectos en el servidor:
/var/www/html/main/Joomla Files. /var/www/html/administracion/ Symfony Files
Actualmente para poder ingresar al proyecto de Symfony desde un navegador hago:
www.MiDominio.com/administracion/web/app.php/sesion/login
Cuando lo que yo quisiera sería:
www.MiDominio.com/admin/sesion/login
Lo que dice: sesion/login es una ruta configurada en el routing.yml
. Para configurar los VirtualHost, cree un archivo llamado /etc/httpd/conf.module.d/httpd-vhost.conf que contiene lo siguiente:
<VirtualHost *:80> # Nombre del dominio virtual ServerName admin # Correo electrónico de Administrador. ServerAdmin [email protected] # Directorio raíz del sitio. DocumentRoot "/var/www/html/administracion/web" <Directory "/var/www/html/administracion/web"> # éstas opciones no se si están bien para linux, las saque de una conf en windows. # Pero interpreto que dicen algo como: # Para todas las opciones, Permitir la sobre escritura para todos y Permiti el acceso a todos. Options All AllowOverride All allow from all </Directory> # Archivo de log o registro de errores para éste sitio. ErrorLog "/var/log/admin_error_log" # Archivo de log o registro de acceso para éste sitio. CustomLog "/var/log/admin_access_log" common </VirtualHost>
¡Hay algo mal con la configuración del archivo? Ya revisé y tengo los puertos abiertos y todo.
El error que obtengo cuando en mi navegador pongo:
www.MiDominio.com/administracion
es:
The requested URL /administracion was not found on this server.
¿Alguna idea? Desde ya gracias, por cualquier ayuda brindada! :)
Respuestas
No me queda claro si son dos sitios y dominios diferentes o si los dos sitios (Joomla y Symfony) se sirven bajo el mismo dominio. En cualquier caso, lo primero que deberías hacer es configurar la directiva ServerName
para que apunte al dominio en vez de a admin
:
ServerName ejemplo.com
Lo segundo que tendrías que hacer es configurar la directiva DirectoryIndex
que le dice a Apache cuál es el archivo que hay que ejecutar como entrada al sitio. En el caso de Symfony tienes que usar lo siguiente:
DirectoryIndex app.php
Por último, tienes que configurar la redirección de URLs para que no tengas que escribir app.php
en todas las URLs de tu aplicación Symfony. Si usas Apache 2.2, esta es la configuración:
<Directory "/var/www/html/administracion/web"> AllowOverride None Allow from All <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory>
Si usas Apache 2.4, cambia un poco la parte de Allow
:
<Directory "/var/www/html/administracion/web"> AllowOverride None Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory>
Si lo necesitas, puedes echar un vistazo también a este artículo: Cómo configurar bien Apache para las aplicaciones Symfony2.
@javiereguiluz
Muchas gracias por responder Javier, te comento he realizado la configuración que indicas, pero aún así no logro hacerlo andar, pero si el error cambió, ahora directamente cuando ingreso en
www.MiDominio.com.ar/administracion
El navegador me muestra:
Index of /administracion Name Last modified Size Description [PARENTDIR] Parent Directory -
Donde dice: [PARENTDIR], hay una flecha para volver al directorio padre. el listado de archivos no muestra nada, y cuando clic en la flecha para volver al directorio padre, el navegador vuelve a mostrar la página en Joomla.
tengo instalado Apache 2.4.16
Ambos sitios el de Joomla y el de Symfony, se encuentran alojados en el mismo servidor y solo poseo un dominio que apunta a dicho servidor es decir:
www.MiDominio.com.ar // Único Servidor linux en amazon: /var/www/html/main/* (Joomla Files) /var/www/html/administracion/app /var/www/html/administracion/src /var/www/html/administracion/web ... /var/www/html/administracion/*
la configuración que estoy usando es:
# Con respecto a este virtual host, hay algo raro, el mismo lo cree para que se pueda acceder a la página hecha en Joomla, lo raro es que el ServerName es main, pero con que en el navegador ingrese: www.MiDominio.com.ar, automáticamente ingresa a la pág. hecha en Joomla. <VirtualHost *:80> # Nombre del dominio virutal ServerName main # Correo electrónico de Administrador. ServerAdmin [email protected] # Directorio raiz del sitio. DocumentRoot "/var/www/html/main" # Permisos para el directorio raiz. <Directory "/var/www/html/main"> Options All AllowOverride All allow from all </Directory> # Archivo de log o registro de errores para éste sitio. ErrorLog "/var/log/error_log" # Archivo de log o registro de acceso para éste sitio. CustomLog "/var/log/custom_log" common </VirtualHost> # Éste es el Virtual host que me da problemas, el mismo lo necesito para poder acceder al proyecto en symfony sin tener que usar: app.php en la url del dominio. <VirtualHost *:80> # Nombre del dominio virutal ServerName dominio.com.ar/administracion ServerAlias www.dominio.com.ar/administracion # Correo electrónico de Administrador. ServerAdmin [email protected] # Directorio raiz del sitio. DocumentRoot "/var/www/html/administracion/web" <Directory "/var/www/html/administracion/web"> AllowOverride None Require all granted <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> # Archivo de log o registro de errores para éste sitio. ErrorLog "/var/log/admin_error_log" # Archivo de log o registro de acceso para éste sitio. CustomLog "/var/log/admin_custom_log" common </VirtualHost>
La verdad no entiendo cual es el error! :S
Si ahora ingreso en el nevagador: www.MiDominio.com.ar/administracion/app.php o www.MiDominio.com.ar/administracion/web/app.php
El navegador muestra:
Not Found The requested URL /administracion/app.php/ was not found on this server.
@MrXXX0323
El problema que veo en la configuración es que estás definiendo dos virtual host diferentes pero no tienes dos dominios (o subdominios) diferentes. En la segunda aplicación has puesto esto:
ServerName dominio.com.ar/administracion
Pero no te va a funcionar porque /administracion
es un directorio. Te funcionaría si fuera algo así, ya que tendrías un dominion diferente (subdominio en este caso):
ServerName administracion.dominio.com.ar
Lo que te aconsejo es que fusiones las dos configuraciones en un único VirtualHost y uses la directiva <Directory>
para distinguir las dos aplicaciones.
@javiereguiluz
Claro eso es lo que no entiendo. ¿un virtualHost es un subdomnio?
Yo interpreto lo siguiente:
cuando uno tiene un dominio como: example.com, y lo redirecciona a los DNS de un servidor, éste automáticamente lo linkea con el directorio configurado por defecto en el servidor, en mi caso instalé LAMP, y mi configuración de apache en el DocumentRoot dice: "/var/www/html"
Entonces cuando desde un navegador se ingrese a: example.com, el servidor lo redirecciona a la carpeta /var/www/html/,
Lo que no entiendo (que si funciona en Windows, pero que no logro hacer andar en Linux) es porque cuando yo configuro un virtual host como:
<Virtualhost *:80> ServerName main DocumentRoot "/var/www/html/main" <Directory "/var/www/html/main"> Options All AllowOverride none allow from all </Directory> </Virtualhost> ##################################################### <Virtualhost *:80> ServerName administracion DocumentRoot "/var/www/html/administracion" <Directory "/var/www/html/administracion"> Options All AllowOverride none allow from all </Directory> </Virtualhost>
Éstas configuraciones deberían funcionar si ingreso: example.com/main o example.com/adminisrtacion ??? En este momento ninguno de los dos virtualhost está funcionando. Lo que sí la página si esta funcionando pero se que es porque como comentaste Javier el servidor automaticamente busca un archivo index.html o index.php para cargar
@MrXXX0323