php - storage_path - Apache alias para Laravel y Lumen
route view laravel (3)
Índice de directorio prohibido por la directiva de Opciones: / data / user / service / public
Apache no ha encontrado el archivo especificado por DirectoryIndex
- por defecto en index.php
index.html
y no puede mostrar los indexes
siguiendo su configuración ¿Está seguro de que hay uno de estos archivos en /data/user/service/public
?
Asegúrese de esto y agregue y .htaccess
en su directorio público
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
de http://lumen.laravel.com/docs/installation#pretty-urls
o agregue un bloque de directorio al nivel primario (si hay algún enlace symb)
<Directory /data/user>
Options -Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
Estoy tratando de hacer un alias en mi servidor que dirija todo el tráfico que viene a example.com/z/
a un directorio diferente al del resto de example.com
, donde example.com
tiene una instalación de Laravel 4.2 y example.com/z/
tiene una instalación de Lumen que ejecuta un servicio.
Este es mi vhost original:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/user/public_html/public
<Directory /data/user/public_html/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>
Y este es el vhost con el /z/
alias agregado en:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/user/public_html/public
Alias /z/ /data/user/service/public
<Directory /data/user/service/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
<Directory /data/user/public_html/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>
Cuando exmaple.com/z/
a exmaple.com/z/
obtengo una página 403 y en los registros este error:
Directory index forbidden by Options directive: /data/user/service/public
Y si voy a cualquier otra cosa bajo /z/
(ejemplo: /z/abcd
) obtengo una página 404, pero se parece a la página Laravel 404 en lugar de a la página Lumen 404.
¿Alguna idea sobre cómo puedo hacer que esto funcione?
El mensaje te dice que no agregaste la opción Indexes
<Directory /data/user/service/public>
Options +FollowSymlinks +Indexes
AllowOverride All
</Directory>
Tu alias probablemente tendrá que ser
Alias /z /data/user/service/public
o
Alias /z/ /data/user/service/public/
Sin probar, pero agregar Require all granted
debería eliminar algunas de las restricciones de uso compartido.
La otra cosa a considerar es asegurar que su carpeta sea realmente propiedad del propietario de Apache (www-data, apache, o incluso su nombre de usuario o algo más, dependiendo de su instalación). Si Apache no puede leer la carpeta, se generará un error.
También cambié el Directorio para referirme al Alias en lugar de a la ruta del archivo.
<VirtualHost *:80>
ServerName example.com
DocumentRoot /data/user/public_html/public
Alias /z /data/user/service/public
<Directory /z>
Options +FollowSymlinks +Indexes
AllowOverride All
Require all granted
</Directory>
<Directory /data/user/public_html/public>
Options +FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>