【问题标题】:Laravel artisan serve on remote serverLaravel artisan 在远程服务器上服务
【发布时间】:2026-02-15 12:45:01
【问题描述】:

您好,我已经使用 sudo php artisan serve --host 0.0.0.0 --port 80 在远程服务器上部署了我的 Laravel 应用程序,但是当我登录时,我得到了 TokenMismatchException。该应用程序在我的本地环境中运行良好,我的登录表单确实包含{{ csrf_field() }}

【问题讨论】:

    标签: laravel laravel-artisan


    【解决方案1】:

    首先,您不应该在生产模式下使用php artisan serve 命令。您只需在 laravel 的 public/index.php 文件中指出像 http://or.net/ 这样的 baseUrl。它将使用所有依赖项引导您的 laravel 应用程序。有关在共享服务器上托管 laravel 的更多详细信息,请访问this CW answer

    @sujalPatel 回答了 CSRF 令牌问题的解决方案。你必须添加

    {!! csrf_field() !!} 不是{{ csrf_field() }}

    【讨论】:

    • 无意冒犯,但我确实提到我的表单包含 {{ csrf_field() }} 及其在本地开发环境中的工作。它只是停止在远程服务器上工作。
    【解决方案2】:

    试试这个:

    我假设你添加了 $this->middleware('auth');在控制器的构造函数中以使身份验证正常工作。如果您使用的是 {!!表单::someElement !!}:

    {!! csrf_field() !!}
    

    或者如果您在表单中使用输入标签,只需在标签之后添加:

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    

    TokenMismatchException in VerifyCsrfToken.php Line 67

    【讨论】:

    • 无意冒犯,但我确实提到我的表单包含 {{ csrf_field() }} 及其在本地开发环境中的工作。它只是停止在远程服务器上工作。