如何让nginx显示错误日志?
如何让nginx显示错误日志?
我正在使用docker开发我的项目,使用了一个安装了nginx的镜像,如果发生任何错误,我只能看到这个:
502 Bad Gateway nginx/1.4.6 (Ubuntu)
目前,唯一能看到发生了什么的方式是检查storage/logs
,这样也可以,但是难道不能在浏览器中看到日志错误,而不仅仅看到502 Bad Gateway
吗?
在我的.env文件中:
APP_ENV=local APP_DEBUG=true
有什么想法吗?
编辑
如果我的应用程序没有错误,我会在浏览器中正常看到它,只有当Laravel应用程序出现错误时,我才会看到502 Bad Gateway
错误。
错误会是:
[2016-02-24 11:59:38] local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'App\Http\Controllers\Redirect' not found' in /share/app/Http/Controllers/NodesController.php:68 Stack trace: #0 /share/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(133): Symfony\Component\Debug\Exception\FatalErrorException->__construct('', '', '', '', '', '', '', '') #1 /share/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(118): Illuminate\Foundation\Bootstrap\HandleExceptions->fatalExceptionFromError('', '') #2 /share/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(0): Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown() #3 /share/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(76): App\Http\Controllers\NodesController->store('') #4 /share/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(76): call_user_func_array('', '') #5 /share/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(146): Illuminate\Routing\Controller->callAction('', '') #6 /share/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(94): Illuminate\Routing\ControllerDispatcher->call('', '', '') #7 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}('') #8 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func('', '') #9 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #10 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func('', '') #11 /share/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(96): Illuminate\Pipeline\Pipeline->then('') #12 /share/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(54): Illuminate\Routing\ControllerDispatcher->callWithinStack('', '', '', '') #13 /share/vendor/laravel/framework/src/Illuminate/Routing/Route.php(174): Illuminate\Routing\ControllerDispatcher->dispatch('', '', '', '') #14 /share/vendor/laravel/framework/src/Illuminate/Routing/Route.php(140): Illuminate\Routing\Route->runController('') #15 /share/vendor/laravel/framework/src/Illuminate/Routing/Router.php(724): Illuminate\Routing\Route->run('') #16 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): Illuminate\Routing\Router->Illuminate\Routing\{closure}('') #17 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func('', '') #18 /share/app/Http/Middleware/LocaleMiddleware.php(48): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #19 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): App\Http\Middleware\LocaleMiddleware->handle('', '') #20 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #21 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #22 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #23 /share/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(64): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #24 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle('', '') #25 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #26 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #27 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #28 /share/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #29 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Illuminate\View\Middleware\ShareErrorsFromSession->handle('', '') #30 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #31 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #32 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #33 /share/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #34 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Illuminate\Session\Middleware\StartSession->handle('', '') #35 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #36 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #37 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #38 /share/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #39 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle('', '') #40 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #41 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #42 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #43 /share/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #44 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Illuminate\Cookie\Middleware\EncryptCookies->handle('', '') #45 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #46 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #47 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #48 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #49 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func('', '') #50 /share/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then('') #51 /share/vendor/laravel/framework/src/Illuminate/Routing/Router.php(699): Illuminate\Routing\Router->runRouteWithinStack('', '') #52 /share/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\Routing\Router->dispatchToRoute('') #53 /share/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): Illuminate\Routing\Router->dispatch('') #54 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}('') #55 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func('', '') #56 /share/vendor/barryvdh/laravel-debugbar/src/Middleware/Debugbar.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #57 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Barryvdh\Debugbar\Middleware\Debugbar->handle('', '') #58 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #59 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #60 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #61 /share/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #62 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle('', '') #63 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array('', '') #64 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}('') #65 /share/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func('', '') #66 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}('') #67 /share/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func('', '') #68 /share/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\Pipeline\Pipeline->then('') #69 /share/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter('') #70 /share/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle('') #71 /share/public/index.php(0): {main}() #72 {main}
编辑2
nginx配置:
server {
client_max_body_size 500M;
listen 80 default_server;
root /share/public/;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
add_header Cache-Control no-cache;
}
}
nginx错误发生在PHP之中,因此你在浏览器中无法看到这些错误。
您可以在/var/log/nginx/
文件夹中检查nginx日志以查找错误,并清空storage/logs
文件夹,以确保其中没有新的错误。
一旦您修复了nginx错误,您可以根据https://stackoverflow.com/a/5438125/50475的说明,配置PHP将所有错误显示到浏览器中。
问题的出现原因:502 Bad Gateway错误是由于错误的web服务器配置造成的。您的请求由Nginx处理,但它无法将其重定向到PHP或Laravel。这个错误的原因很可能是在Nginx配置中缺少或错误的代理转发到PHP。
解决方法:这些错误只会记录在Nginx错误日志(/var/log/nginx/error.log)中,而不会记录在Laravel日志中,因为您的应用程序和PHP并未处理该请求。因此,以前提到的"当前唯一的方法是检查storage/logs,这是可以的"让我困惑了,但是一个错误的网关从来不会由PHP或Laravel处理,所以他永远不会在存储日志目录中看到任何问题的记录,相信我 😉
噢,好的,那样说得通。我忘记了应用程序中的这种异常会触发502错误。但是感觉Nginx的配置仍然不正确。您的代理的nginx配置是什么?您能贴出来吗?