2017-05-02 6 views
0

CSRFトークンの不一致が発生していますが、根本的な問題ではありません。私がページに例外を追加すると、私は500エラーが発生します。Laravel 5.3がApache経由でセッションを保存しない

これは、セッションの作成中に問題が発生していることが判明しました。

私はすべてうまく動作します。私はそれをプロダクションに入れると、セッションを作成することができません。

誰もこの問題を経験したことがありますか?

エラー私が受けています:

1/1 
TokenMismatchException in VerifyCsrfToken.php line 68: 
in VerifyCsrfToken.php line 68 
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64 
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104 
at Pipeline->then(object(Closure)) in Router.php line 655 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 629 
at Router->dispatchToRoute(object(Request)) in Router.php line 607 
at Router->dispatch(object(Request)) in Kernel.php line 268 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104 
at Pipeline->then(object(Closure)) in Kernel.php line 150 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117 
at Kernel->handle(object(Request)) in index.php line 53 

は、それから私は、CSRFの例外にログインルートを追加し、私は500エラーを取得します。

namespace App\Http\Middleware; 

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; 

class VerifyCsrfToken extends BaseVerifier 
{ 
    /** 
    * The URIs that should be excluded from CSRF verification. 
    * 
    * @var array 
    */ 
    protected $except = [ 
     // 
     '/login/', 
    ]; 
} 

Google Chromeのエラーメッセージ:

This page isn’t working 

'address' is currently unable to handle this request. 
HTTP ERROR 500 
+0

どのセッションドライバを使用していますか? – user3158900

+0

私はファイルとデータベースを試していません。 –

+0

エラーが発生しているコードを教えてください。 – suecarmol

答えて

0

はCentOSの7.0を実行してSELinuxはストレージへの書き込みからApacheのユーザーを防止ました。このディレクトリにchmod 777が設定されていても、ストレージディレクトリに書き込むことはできません。

保存フォルダはセッションが保存されている場所で、セッション変数をオフにして比較することはないため、csrfトークンの不一致がスローされます。

これは構成上の問題であり、ラーベルの問題ではないことを強調したいと思います。私はインターネットではるかに幅広く検索し、これが最終的に私の問題を解決しました。

setenforce 0 

これは書き込みを許可しますが、追加されたセキュリティサーバー全体を無効にしています。それは良くないね。 SELinuxを戻す

setenforce 1 

最後にSELinuxを使用して、プロジェクトルートディレクトリからこのコマンドを使用してファイルを書き込むことができます。

chcon -R -t httpd_sys_rw_content_t storage 

コメント欄の皆様に感謝したいと思います。お客様の疑問に答えて解決策を見つけてください。

関連する問題