validar try retornar personalizar ocultar mensajes manejo excepciones errores error custom catch apache laravel

apache - retornar - try catch laravel



Error en el controlador de excepciones.-Laravel (6)

Es una pregunta relacionada con la instalación de Laravel. Tengo una configuración de servidor Unix pública:

<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/mydomain" ServerName mydomain.org ServerAlias www.mydomain.org ErrorLog "/var/log/mydomain.org-error_log" CustomLog "/var/log/mydomain.org-access_log" common </VirtualHost>

Puedo publicar documentos en / var / www / mydomain, es decir, http://mydomain.org/test.php con test.php que contiene:

<?php echo ''test'';

funciona bien.

En bash, con Laravel instalado a través de Composer y mirando los archivos:

# ls /var/www/mydomain/my-laravel-project .gitattributes CONTRIBUTING.md artisan composer.json phpunit.xml readme.md vendor .gitignore app bootstrap composer.lock public server.php

Entonces, cuando navego a:

http://mydomain.org/my-laravel-project/public/

¿Por qué mi aplicación informa?

Error in exception handler.

en el navegador - en una pantalla blanca en blanco? Estoy esperando ver la pantalla de bienvenida de Laravel.

Además, los archivos de registro tampoco revelan nada.


El carro ha pasado hace mucho tiempo, pero todavía tengo otro consejo con respecto a "Error en el controlador de excepciones".

Esto me sucedió cuando ejecuté "php artesanal", que es una buena forma de evaluar si su entorno funciona en general.

Lo ejecuté y me dio ese error, y no pude identificar el problema hasta que edité el archivo artesanal en el directorio raíz de mi proyecto y agregué una declaración try catch:

try { $artisan = Illuminate/Console/Application::start($app); } catch (Exception $e) { dd($e->getMessage()); }

En ese momento, finalmente vi un mensaje esclarecedor:

string(41) "Connection refused [tcp://127.0.0.1:6379]"

que en mi caso era una mala configuración de redis, pero en tu caso podría ser cualquier cosa.

Espero que esto ayude a alguien, o al menos la próxima vez que llegue aquí encontraré mi propia respuesta.


Eliminé las sesiones anteriores dentro de la carpeta app/storage/sessions y otorgo un permiso 775 a la app/storage después de que funciona como un incendio.

chmod -R 775 app/storage

¡Buena suerte!


La forma más rápida de resolver esto es comenzar a trabajar artesanalmente con sudo. Esto le dará al artesano todos los permisos que necesita y no creará ningún problema de seguridad.

así que, en cambio, comenzar a servir artesanalmente con:

$ php artisan serve

Intenta usar:

$ sudo php artisan serve

por lo tanto, no tendrá que hacer ningún cambio de permiso


La opción más segura sería cambiar el grupo de directorios de almacenamiento a su grupo de servidores web (generalmente apache o www-data , pero esto puede variar entre los diferentes sistemas operativos) y mantener los permisos en el directorio como 775 .

chgrp -R www-data app/storage

O con chown .

chown -R :www-data app/storage

Luego asegúrese de que los permisos del directorio sean 775 .

chmod -R 775 app/storage

Desde el sitio web de Laravel :

Laravel puede requerir que se configure un conjunto de permisos: las carpetas dentro de la aplicación / almacenamiento requieren acceso de escritura por parte del servidor web.


Tengo el mismo problema, solo cambio el permiso de la aplicación de directorio / almacenamiento a 775 con la línea de comando chmod


Laravel 5.2

Almacenamiento chmod -R 777

Laravel chmod 777 app / storage / * anterior

Tenga en cuenta que si tiene un servidor dedicado razonablemente bloqueado sin cuentas de usuario que no sean las suyas, 777 no debería representar más riesgo de seguridad que cualquier otra cosa. Tendría que haber alguna otra vulnerabilidad para que un usuario malintencionado se aprovechara de eso, y en ese punto, el permiso 777 probablemente sea discutible de todos modos. Sin embargo, si se encuentra en un servidor compartido con otros usuarios en los que no confía, necesitará buscar permisos más complicados o verificar si su proveedor de hosting ya ha proporcionado aislamiento.

Realmente deberían poner esto en los documentos de inicio rápido y proporcionar ejemplos para varias configuraciones. También es posible que deba ejecutarlo nuevamente después de la primera carga a medida que se crean más directorios automáticamente. Busque en sus registros errores de escritura.

También su DocumentRoot debe ser / ruta / a / laravel-project / public