Laravel EC2 上的护照 500 内部服务器错误

Laravel passport 500 internal server error on EC2

我正在构建一个应用程序,使用 Angular 2(不称为 4)作为前端,Laravel 5.4 作为 API 后端。我正在使用 Laravel 的护照密码授予功能来验证用户对 API 的访问权限。

前端没有直接访问 oauth 路由。我的自定义身份验证控制器正在与 oauth/token 通信以获取授权值。

此设置在我的本地环境中运行良好,但在 AWS EC2 中它抛出 500 内部服务器错误。

我认为这可能与GuzzleHttp\Client有关,但事实并非如此。即使我尝试直接从 Postman 访问 oauth/token,它仍然会抛出 500 内部服务器错误。

private function getPasswordGrant($username, $rawPassword) {
    $http = new HttpClient();
    $url = url('/') . "/oauth/token";
    return $http->post($url, [
        "form_params" => [
            "grant_type"    => "password",
            "client_id"     => config("auth.oauth_password_grant_client_id"),
            "client_secret" => config("auth.oauth_password_grant_client_secret_key"),
            "username"      => $username,
            "password"      => $rawPassword,
            "scope"         => "*",
        ],
    ]);
}

这是我的自定义 Auth Controller 中的函数,它在用户通过另一种方法(登录和注册)进行身份验证后请求授予密码。

最令人惊讶的是 laravel 或 apache 日志中没有任何记录。

好的,经过大量的努力和调试。原来是apache无法写入storage/logs/laravel.log导致这个问题。在给予存储/文件夹适当的权限后,一切都按预期工作。