Pregunta

Estoy construyendo una aplicación web con Zend Framework, y tengo que señalar mi aplicación a la carpeta de "público" de la aplicación:

Así que, básicamente, cuando llamo http://localhost/myapp debe mostrar http://localhost/myapp/public/

He creado un archivo de host virtual llamado miaplicacion en / etc / apache2 / sites-available /:

    <VirtualHost *:80>
DocumentRoot /var/www/myapp/public/
 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>
 <Directory /var/www/myapp/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </Directory>

</VirtualHost>

Pero no funciona. Cuando llamo http: // localhost / miaplicacion , se muestra la estructura de directorios de la aplicación y, cuando haga clic en el carpeta "pública", a continuación, muestra lo que quiero que se mostrará por defecto ... Nunca configurado vhosts antes y eso es por lo que yo tengo con los tutoriales al respecto.

¿Fue útil?

Solución 2

Ok he encontrado una manera de alguna manera ... Yo no creo que sea necesario la derecha / mejor manera, pero ...

en httpd.conf (en la carpeta Apache2):

Listen 10089

<VirtualHost *:10089>

    DocumentRoot "/var/www/myapp/public"

    <Directory "/var/www/myapp/public">

        Order allow,deny

        Allow from all

    AllowOverride all

</Directory>

</VirtualHost>

Mi aplicación es ahora accesible a través de localhost: 10089 Después de habilitar el mod de reescritura de Apache, he añadido el .htaccess necesario, uno en la raíz de mi aplicación, redirigiendo todo para index.php (Zend soporte de la infraestructura de navegación amigable URL y funciona de esa manera):

RewriteEngine on

RewriteRule .* index.php

y un segundo archivo .htaccess dentro de mi carpeta pública para permitir a las personas acceder .jpg, ico, etc archivos y no se redirige al índice para todo:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ /index.php [NC,L]

Esperamos que esto ayude un poco!

Otros consejos

En el primer listado, que tenía un valor diferente para la etiqueta Directorio, dejando fuera 'público' por completo. También había una barra al final después de 'público' en el valor docroot, pero elimina en su segundo intento. No estoy seguro de que hizo una diferencia, pero creo que se recomienda que no se incluye barras al final.

Además, sólo me preguntaba ... ¿estás ejecutando esto en una máquina local? Tuve problemas con Skype que deseen utilizar el puerto 80 si empecé a correr antes de que mi servidor Apache. Skype usará un puerto diferente si el 80 ya se utiliza. Si no es Skype, puede haber otra aplicación que está utilizando el puerto 80 e interfiriendo. Eso podría ser por qué tuvo éxito en otro puerto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top