Lumen Passport return 500 除了成功登录请求
Lumen Passport return 500 except successfully log in request
我已经在本地和免费的 Heroku 中创建了 Lumen Passport 并成功创建了它。现在我正在数字海洋中创建我的生产流明 VPS。我的所有应用程序都工作正常,并且在应该是失败响应时给出良好的错误响应格式,除了我的登录。在我的登录中,当正确的电子邮件和密码时,它会通过良好的响应,但在其他情况下 returns 500。
这是我在 LoginService.php
中的代码
public function generate_token($email, $password){
// $token = Http::post(config('service.passport.login_endpoint'), [
// 'grant_type' => 'password',
// 'client_id' => config('service.passport.client_id'),
// 'client_secret' => config('service.passport.client_secret'),
// 'username' => $email,
// 'password' => $password,
// ]);
// return $token->json();
$http = new Client;
try {
$response = $http->post(config('service.passport.login_endpoint'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => config('service.passport.client_id'),
'client_secret' => config('service.passport.client_secret'),
'username' => $email,
'password' => $password,
]
]);
return [true, $response->getBody()];
} catch (ClientException $e) {
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
return [false, Psr7\str($e->getResponse())];
// return $responseBodyAsString;
}
}
public function login($email, $password){
$login = $this->generate_token($email, $password);
// if(isset($login['error'])){
// $response = [
// "success" => false,
// "message" => (object)[
// "errorInfo" => [
// "status" => 401,
// "reason" => $login['error'],
// "server_code" => 401,
// "status_detail" => $login['error_description']
// ]
// ],
// "status" => 401
// ];
// } else {
// $response = [
// "success" => true,
// "data" => [
// "message" => "success generate token",
// "token" => $login['access_token']
// ],
// "status" => 200
// ];
// }
if($login[0]){
$response = [
"success" => true,
"data" => json_decode($login[1]),
"status" => 200
];
} else {
$response = [
"success" => true,
"data" => $login[1],
"status" => 200
];
}
return $response;
}
这是我服务器的错误日志
2022/02/08 09:11:58 [error] 61359#61359: *4187 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/html/ims/storage/logs/lumen-2022-02-08.log" could not be opened in append mode: failed to open stream: Permission denied in /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111
Stack trace:
#0 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(121): Monolog\Handler\StreamHandler->write()
#1 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\Handler\RotatingFileHandler->write()
#2 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(317): Monolog\Handler\AbstractProcessingHandler->handle()
#3 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(539): Monolog\Logger->addRecord()
#4 /var/www/html/ims/vendor/illuminate/log/Logger.php(174): Monolog\Logger->error()
#5 /var/www/html/ims/vendor/illuminate/log/Logger.php(87): Illuminate\Log\Logger->writeLog()
#6 /var/www/html/...PHP message: PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/html/ims/storage/logs/lumen-2022-02-08.log" could not be opened in append mode: failed to open stream: Permission denied in /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111
Stack trace:
#0 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(121): Monolog\Handler\StreamHandler->write()
#1 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\Handler\RotatingFileHandler->write()
#2 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(317): Monolog\Handler\AbstractProcessingHandler->handle()
#3 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(539): Monolog\Logger->addRecord()
#4 /var/www/html/ims/vendor/illuminate/log/Logger.php(174): Monolog\Logger->error()
#5 /var/www/html/ims/vendor/illuminate/log/Logger.php(87):
这是我的存储和日志中的权限和用户列表
root@mighty-app-1:/var/www/html/ims# ll
total 444
drwxr-xr-x 14 root www-data 4096 Feb 7 23:30 ./
drwxr-xr-x 4 root root 4096 Feb 3 17:17 ../
-rw-r--r-- 1 root root 220 Feb 7 07:14 .editorconfig
-rwxr-xr-x 1 root root 586 Feb 7 23:30 .env*
-rw-r--r-- 1 root root 293 Feb 7 07:14 .env.example
drwxr-xr-x 8 root www-data 4096 Feb 8 07:12 .git/
-rw-r--r-- 1 root root 87 Feb 7 07:14 .gitignore
-rw-r--r-- 1 root root 71 Feb 7 07:14 .styleci.yml
drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 .vscode/
-rw-r--r-- 1 root root 121 Feb 7 07:14 Procfile
-rw-r--r-- 1 root root 1585 Feb 7 07:14 README.md
drwxr-xr-x 13 root www-data 4096 Feb 7 07:14 app/
-rwxr-xr-x 1 root root 1094 Feb 7 07:14 artisan*
drwxr-xrwx 2 root www-data 4096 Feb 7 07:14 bootstrap/
-rw-r--r-- 1 root root 1463 Feb 7 07:14 composer.json
-rw-r--r-- 1 root root 355645 Feb 7 07:14 composer.lock
drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 config/
drwxr-xr-x 5 root www-data 4096 Feb 3 17:01 database/
-rw-r--r-- 1 root root 756 Feb 7 07:14 phpunit.xml
drwxr-xr-x 3 root www-data 4096 Feb 8 07:12 public/
drwxr-xr-x 3 root www-data 4096 Feb 3 17:01 resources/
drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 routes/
drwxr-xrwx 5 root www-data 4096 Feb 7 07:14 storage/
drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 tests/
drwxr-xr-x 60 root root 4096 Feb 4 03:49 vendor/
root@mighty-app-1:/var/www/html/ims# cd storage
root@mighty-app-1:/var/www/html/ims/storage# ll
total 36
drwxr-xrwx 5 root www-data 4096 Feb 7 07:14 ./
drwxr-xr-x 14 root www-data 4096 Feb 7 23:30 ../
-rw-r--r-- 1 root root 6148 Feb 7 07:14 .DS_Store
drwxr-xrwx 2 root www-data 4096 Feb 7 07:14 app/
drwxr-xrwx 4 root www-data 4096 Feb 7 07:14 framework/
drwxr-xrwx 2 root www-data 4096 Feb 7 10:24 logs/
-rw-r--r-- 1 root root 3292 Feb 7 23:30 oauth-private.key
-rw-r--r-- 1 root root 812 Feb 7 23:30 oauth-public.key
root@mighty-app-1:/var/www/html/ims/storage# cd logs/
root@mighty-app-1:/var/www/html/ims/storage/logs# ll
total 108
drwxr-xrwx 2 root www-data 4096 Feb 7 10:24 ./
drwxr-xrwx 5 root www-data 4096 Feb 7 07:14 ../
-rw-r--r-- 1 root root 14 Feb 7 07:14 .gitignore
-rwxr-xrwx 1 root root 93743 Feb 4 11:13 lumen-2022-02-04.log*
root@mighty-app-1:/var/www/html/ims/storage/logs#
我已经尝试了一些方法来检查回复是否无法读取或其他什么的,但似乎缺少一些我无法得到的东西。
除了这个,我没有发现其他与我的案例相似的案例,但这也不能解决我的问题。
谁能给我一些提示?提前致谢
经过一段时间的寻找答案,问题是因为我的存储文件夹有root用户权限。它通过使用这样的命令授予用户和组对 www-data 的权限来解决
sudo chown -R www-data:www-data /var/www/<project_name>/storage
特别感谢@Peppermintology 给我很多提示
我已经在本地和免费的 Heroku 中创建了 Lumen Passport 并成功创建了它。现在我正在数字海洋中创建我的生产流明 VPS。我的所有应用程序都工作正常,并且在应该是失败响应时给出良好的错误响应格式,除了我的登录。在我的登录中,当正确的电子邮件和密码时,它会通过良好的响应,但在其他情况下 returns 500。
这是我在 LoginService.php
中的代码public function generate_token($email, $password){
// $token = Http::post(config('service.passport.login_endpoint'), [
// 'grant_type' => 'password',
// 'client_id' => config('service.passport.client_id'),
// 'client_secret' => config('service.passport.client_secret'),
// 'username' => $email,
// 'password' => $password,
// ]);
// return $token->json();
$http = new Client;
try {
$response = $http->post(config('service.passport.login_endpoint'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => config('service.passport.client_id'),
'client_secret' => config('service.passport.client_secret'),
'username' => $email,
'password' => $password,
]
]);
return [true, $response->getBody()];
} catch (ClientException $e) {
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
return [false, Psr7\str($e->getResponse())];
// return $responseBodyAsString;
}
}
public function login($email, $password){
$login = $this->generate_token($email, $password);
// if(isset($login['error'])){
// $response = [
// "success" => false,
// "message" => (object)[
// "errorInfo" => [
// "status" => 401,
// "reason" => $login['error'],
// "server_code" => 401,
// "status_detail" => $login['error_description']
// ]
// ],
// "status" => 401
// ];
// } else {
// $response = [
// "success" => true,
// "data" => [
// "message" => "success generate token",
// "token" => $login['access_token']
// ],
// "status" => 200
// ];
// }
if($login[0]){
$response = [
"success" => true,
"data" => json_decode($login[1]),
"status" => 200
];
} else {
$response = [
"success" => true,
"data" => $login[1],
"status" => 200
];
}
return $response;
}
这是我服务器的错误日志
2022/02/08 09:11:58 [error] 61359#61359: *4187 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/html/ims/storage/logs/lumen-2022-02-08.log" could not be opened in append mode: failed to open stream: Permission denied in /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111 Stack trace: #0 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(121): Monolog\Handler\StreamHandler->write() #1 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\Handler\RotatingFileHandler->write() #2 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(317): Monolog\Handler\AbstractProcessingHandler->handle() #3 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(539): Monolog\Logger->addRecord() #4 /var/www/html/ims/vendor/illuminate/log/Logger.php(174): Monolog\Logger->error() #5 /var/www/html/ims/vendor/illuminate/log/Logger.php(87): Illuminate\Log\Logger->writeLog() #6 /var/www/html/...PHP message: PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/html/ims/storage/logs/lumen-2022-02-08.log" could not be opened in append mode: failed to open stream: Permission denied in /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111 Stack trace: #0 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(121): Monolog\Handler\StreamHandler->write() #1 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(42): Monolog\Handler\RotatingFileHandler->write() #2 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(317): Monolog\Handler\AbstractProcessingHandler->handle() #3 /var/www/html/ims/vendor/monolog/monolog/src/Monolog/Logger.php(539): Monolog\Logger->addRecord() #4 /var/www/html/ims/vendor/illuminate/log/Logger.php(174): Monolog\Logger->error() #5 /var/www/html/ims/vendor/illuminate/log/Logger.php(87):
这是我的存储和日志中的权限和用户列表
root@mighty-app-1:/var/www/html/ims# ll total 444 drwxr-xr-x 14 root www-data 4096 Feb 7 23:30 ./ drwxr-xr-x 4 root root 4096 Feb 3 17:17 ../ -rw-r--r-- 1 root root 220 Feb 7 07:14 .editorconfig -rwxr-xr-x 1 root root 586 Feb 7 23:30 .env* -rw-r--r-- 1 root root 293 Feb 7 07:14 .env.example drwxr-xr-x 8 root www-data 4096 Feb 8 07:12 .git/ -rw-r--r-- 1 root root 87 Feb 7 07:14 .gitignore -rw-r--r-- 1 root root 71 Feb 7 07:14 .styleci.yml drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 .vscode/ -rw-r--r-- 1 root root 121 Feb 7 07:14 Procfile -rw-r--r-- 1 root root 1585 Feb 7 07:14 README.md drwxr-xr-x 13 root www-data 4096 Feb 7 07:14 app/ -rwxr-xr-x 1 root root 1094 Feb 7 07:14 artisan* drwxr-xrwx 2 root www-data 4096 Feb 7 07:14 bootstrap/ -rw-r--r-- 1 root root 1463 Feb 7 07:14 composer.json -rw-r--r-- 1 root root 355645 Feb 7 07:14 composer.lock drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 config/ drwxr-xr-x 5 root www-data 4096 Feb 3 17:01 database/ -rw-r--r-- 1 root root 756 Feb 7 07:14 phpunit.xml drwxr-xr-x 3 root www-data 4096 Feb 8 07:12 public/ drwxr-xr-x 3 root www-data 4096 Feb 3 17:01 resources/ drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 routes/ drwxr-xrwx 5 root www-data 4096 Feb 7 07:14 storage/ drwxr-xr-x 2 root www-data 4096 Feb 7 07:14 tests/ drwxr-xr-x 60 root root 4096 Feb 4 03:49 vendor/ root@mighty-app-1:/var/www/html/ims# cd storage root@mighty-app-1:/var/www/html/ims/storage# ll total 36 drwxr-xrwx 5 root www-data 4096 Feb 7 07:14 ./ drwxr-xr-x 14 root www-data 4096 Feb 7 23:30 ../ -rw-r--r-- 1 root root 6148 Feb 7 07:14 .DS_Store drwxr-xrwx 2 root www-data 4096 Feb 7 07:14 app/ drwxr-xrwx 4 root www-data 4096 Feb 7 07:14 framework/ drwxr-xrwx 2 root www-data 4096 Feb 7 10:24 logs/ -rw-r--r-- 1 root root 3292 Feb 7 23:30 oauth-private.key -rw-r--r-- 1 root root 812 Feb 7 23:30 oauth-public.key root@mighty-app-1:/var/www/html/ims/storage# cd logs/ root@mighty-app-1:/var/www/html/ims/storage/logs# ll total 108 drwxr-xrwx 2 root www-data 4096 Feb 7 10:24 ./ drwxr-xrwx 5 root www-data 4096 Feb 7 07:14 ../ -rw-r--r-- 1 root root 14 Feb 7 07:14 .gitignore -rwxr-xrwx 1 root root 93743 Feb 4 11:13 lumen-2022-02-04.log* root@mighty-app-1:/var/www/html/ims/storage/logs#
我已经尝试了一些方法来检查回复是否无法读取或其他什么的,但似乎缺少一些我无法得到的东西。
除了这个
谁能给我一些提示?提前致谢
经过一段时间的寻找答案,问题是因为我的存储文件夹有root用户权限。它通过使用这样的命令授予用户和组对 www-data 的权限来解决
sudo chown -R www-data:www-data /var/www/<project_name>/storage
特别感谢@Peppermintology 给我很多提示