try_files digitalocean deploy laravel nginx

digitalocean - Laravel Homestead: 403 prohibido en nginx



laravel nginx windows (12)

Acceda a su navegador

homestead.app/public

Antes de la instalación de laravel / laravel con el compositor en / home / vagabundo / Code / Laravel / public

Acabo de instalar Laravel Homestead según sus instrucciones. Cuando abro http://homestead.app:8000 obtengo la respuesta HTTP prohibida nginx 403.

Intenté configurar permisos de aplicaciones / almacenamiento en 755, pero no funcionó, así que volví a cargar Vagrant. Sin más resultados.

También intenté cambiar la configuración de nginx, pero sin éxito.


Cambiar la configuración de Nginx

Pon esa línea en la sección ''ubicación /'':

try_files $uri $uri/public/index.php?$query_string;

Si no funciona, reemplace su ''público'' con el nombre de la carpeta que contiene ''index.php'',

Eso funcionó muy bien conmigo usando Server Pilot,

¡Buena suerte!.


En mi caso, para fines de prueba, solo tenía el archivo phpinfo.php en el directorio público . El servidor siguió mostrando 403 errores hasta que coloqué un archivo llamado index.php en la carpeta pública.


En su caso, está recibiendo nginx 403 la respuesta HTTP prohibida debido a la configuración incorrecta de los sitios en Homestead.yaml , si lo configura correctamente, debería funcionar.

Cómo resolver el problema paso a paso:

1) Vaya a su caja vagabunda y cree la aplicación laraval

$vagrant ssh $cd ~/code $#lets create basic blog $laravel new blog Crafting application... Loading composer repositories with package information ........ $cd blog $ll # You should be able to see public folder in this dir. # this is the entry point for your application. # this is your public dir: ~/code/blog/public # more explicitly: /home/vagrant/code/blog/public $exit # exit ssh

2) Actualice Homestead.yaml con la información del sitio adecuada

- map: homestead.app to: /home/vagrant/code/blog/public # should be same as in step1

3) Vuelva a aprovisionar a su vagabundo

$vagrant reload --provision

Debería poder acceder ahora usando http://homestead.app ¡ Gracias!


He estado golpeando mi cabeza contra la pared tratando con este mismo problema, y ​​acabo de resolverlo para mi caso.

Estaba seguro de haber configurado el archivo yaml correctamente, pero seguí recibiendo el error 403, y al experimentar con algunas rutas recibí "archivo de entrada no especificado".

Mi solución vino de http://laravel.com/docs/4.2/homestead e involucraba el uso del comando servir. No agregaba sitios adicionales, solo intentaba hacer algo para que el primer sitio se ejecutara.

SSH''ing en mi caja vagabunda y usando el comando "serve my_app_name.app / home / vagrant / Code / path / to / public" hizo el trabajo. Tenga en cuenta que ya había puesto una entrada en mi archivo de hosts para esta aplicación.

Espero que esto ayude a alguien.


Me encontré con esto cuando intenté crear mi primer sitio manualmente. ¡La respuesta de @GregD me ayudó a descubrir el problema! Por lo general, Vagrant / Homestead / Laravel hará que todo funcione sin problemas si usa las funciones incorporadas.

El archivo de configuración de Homestead viene preconfigurado para un sitio, ubicado en /Code/Laravel/ . Algunos pasos para poner en funcionamiento este banco de pruebas:

  1. Instale Homestead (recuerde establecer su archivo hosts)
  2. vagrant up y conectarse a su máquina virtual a través de ssh ( Chrome Secure Shell es excelente si no tiene un terminal en su máquina)
  3. Descargue y configure el paquete PHAR
  4. cd ~/Code
  5. laravel new Laravel .
  6. Vaya a http://homestead.app:8000

Esto creará su primer sitio con los permisos apropiados. Puede modelar futuros sitios después de los permisos de este, o simplemente usar el nodo "sitios" de Homestead.yaml y laravel new <site> para crear nuevos sitios en el futuro.


OK, recibí la respuesta a la question después de algunas horas de búsqueda y depuración.

El problema:

  1. Tengo GET route / admin
  2. También tengo / public / admin / folder con activos dentro.
  3. Y tengo 403 acceso denegado desde nginx causa de esta duplicación;

Por lo tanto, si no va a cambiar el nombre de la ruta o la carpeta de activos, todo lo que tiene que hacer es reemplazar

location / { try_files $uri $uri/ /index.php?$query_string; # ^^^^^ }

con este:

location / { try_files $uri /index.php?$query_string; }

Si pudiera cambiar el nombre de su ruta o carpeta de activos sin ningún refactor, podría hacerlo sin la configuración de nginx config.

Esperamos que esto sea útil.


Otra razón para esta respuesta puede ser la duplicación de su enrutamiento con carpetas en el directorio público. Por ejemplo, puede tener homestead.app/lists GET ruta y lists carpetas en su directorio /public . Esto causará el mismo error 403 (el servidor supondrá que está intentando acceder /public/lists directory en lugar de su ruta /lists ).


Para algunas personas, esto puede ser tan simple como haber clonado git en una carpeta pública existente, por ejemplo:

- map: hello-world.dev to: /home/vagrant/Code/Laravel/public/hello-world

La estructura correcta de la carpeta es:

- map: hello-world.dev to: /home/vagrant/Code/hello-world/public

Otra buena nota es ignorar los documentos laravel en el archivo de hosts de edición, usando git shell, o cygwin (windows) para instalar hostsupdater vagabundos, y simplemente agregar entradas para hosts y alias al archivo ~ / .homestead / Homestead.yaml.


Sugeriría verificar los registros de nginx: use sudo tail /var/log/nginx/homestead.app-error.log


Tuve el mismo problema y, para mí, la causa fue que en el archivo Homestead.yaml, he escrito incorrectamente esto:

sites: - map: homestead.app to: /home/vagrant/Code

En lugar de la sintaxis correcta:

sites: - map: homestead.app to: /home/vagrant/Code/path/to/public


Aquí están los pasos completos de la solución:

  1. ejecutar homestead edit

  2. agregar /public al final de su directorio

sites: - map: homestead.app to: /full/path/to/the/laravel-app/public

  1. ejecutar homestead halt && homestead up --provision