如何让nginx显示错误日志?

10 浏览
0 Comments

如何让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;

}

}

0
0 Comments

nginx错误发生在PHP之中,因此你在浏览器中无法看到这些错误。

您可以在/var/log/nginx/文件夹中检查nginx日志以查找错误,并清空storage/logs文件夹,以确保其中没有新的错误。

一旦您修复了nginx错误,您可以根据https://stackoverflow.com/a/5438125/50475的说明,配置PHP将所有错误显示到浏览器中。

0
0 Comments

问题的出现原因:502 Bad Gateway错误是由于错误的web服务器配置造成的。您的请求由Nginx处理,但它无法将其重定向到PHP或Laravel。这个错误的原因很可能是在Nginx配置中缺少或错误的代理转发到PHP。

解决方法:这些错误只会记录在Nginx错误日志(/var/log/nginx/error.log)中,而不会记录在Laravel日志中,因为您的应用程序和PHP并未处理该请求。因此,以前提到的"当前唯一的方法是检查storage/logs,这是可以的"让我困惑了,但是一个错误的网关从来不会由PHP或Laravel处理,所以他永远不会在存储日志目录中看到任何问题的记录,相信我 😉

噢,好的,那样说得通。我忘记了应用程序中的这种异常会触发502错误。但是感觉Nginx的配置仍然不正确。您的代理的nginx配置是什么?您能贴出来吗?

0