【メモ】Vagrant上のAdminerで「不正なCSRFトークン。再送信してください」エラー

adminer.png


Vagrant上に入れたAdminerでデータベース操作をしようと思ったら以下のエラーが。


不正なCSRFトークン。再送信してください



まあセッションの権限に問題あるよねということで調べると、セッションディレクトリ「/var/lib/php/session」の権限は以下のようになってました。

Access: (0770/drwxrwx---)  Uid: (    0/    root)   Gid: ( 1000/ apache)

WordPressなど共有ディレクトリの権限問題を解決するために、このローカルサーバのApacheは、

User: vagrant
Group: vagrant

で動いています。

途中で変えたので、このセッションディレクトリのように権限が上手く行っていない場所があるんですね。なるほど。


vagrantユーザーをapacheグループに追加して解決

解決策としてはこのディレクトリの所有権を変更してやれば解決するんですが、しかし同じような設定は他にもあるかも知れないし、もしそうだとすると今後都度ハマり続けることになります。それはめんどい。ということで「vagrantユーザーをapacheグループに追加」して対処することにしました。

$ sudo gpasswd -a vagrant apache

この変更だけだと旧パーミッションで作成されたセッションファイルを読みに行ってしまって上手く行かないので、このあとセッションファイルを一括削除。

$ sudo rm /var/lib/php/session/sess_*

ローカル環境だからこそ出来る強引な手法ですが、ともあれこれで無事Adminerで編集が出来るようになりました。


Vagrantのパーミッション周りは面倒くさいなあ。


参考

Adminerで「不正なCSRFトークン。再送信してください」と言われる時のチェックリスト – Qiita