2016-03-22 13 views
0

初めて問題が投稿されましたが、ここで助けを求めるのも良い考えだと思いました。
私はまっすぐに行くと思います。私は開発環境でローカルに作業していたサイト用のサーバーにベータ版を導入しました。私はCapifonyとDoctrineMigrationsを使用しました。私はFOSUBを継承しているカスタムUserBundleでFOSUserBundleを使用しています。いくつかのフィールドはUserクラスなどに追加されます。私はメインビューをオーバーライドしていないので、{{form_rest(form)}}が欠落しているかどうかは心配しないでください。[symfony2.8] [FOSUserBundle] CSRFトークンが無効で、ベータプロードデプロイメントで書かれたセッションファイルがありません

すべてはローカルで動作しますが、予想どおり、サーバー上では同じではありません。 app/logs/prod.logは何も返しません。レベル:debugをMonolog config(app/config/config_prod.yml)に書き込もうとしましたが、何も変更されませんでした。セッションに関するアプリ/設定/ config.ymlの

パート:

session: 
     handler_id: session.handler.native_file 
     save_path: "%kernel.root_dir%/sessions/" 

[TL; DR]このサイトアプリ/セッションでも、どこか他でもない程度のサーバーには、セッションファイルはありません。私は、CSRFトークンが無効であるという問題は、セッションの問題から来ると考えています。

アクセス権の問題はありません.app/sessionsはchownされた777です(app/logsとapp/cacheと同じです)。 web/config.phpは設定に問題はありません。私はこの問題の原因をローカルで完全に動作するように見つける方法を知らず、ログに何もない場合、プロダクト環境でデバッグすることはできません。

+0

セッションディレクトリにファイルを作成し、エラーをスローするかどうかを確認する小さなコントローラテストスクリプトを作成することができます。ログやセッションがないということは、アプリケーションがアクセス権やパス設定などのファイルシステムでファイルを作成できないことを意味します。 – Karolis

+0

@Karolis:私はtry/catchでやった。それは、私がfopen w +の後に試して入れた応答を表示するので、うまくいきましたが、そうではありません。アプリケーション/セッションではサーバー上にファイルは作成されず、ローカルでは動作します。 fopenはfalseを返しますが、残念なことに何もありません。私はもっ​​と情報を得るために他の何かを使う必要があると思う。 – Harest

+0

@Karolis:5分後に編集できません。しかし、私はちょうどerror_get_last()を使ってエラーを受け取りました。それは本当にパーミッションに関連しています...: 'ストリームを開くことに失敗しました:許可が拒否されました[ファイル] ' 私は777であり、 /グループ。編集:さて...シンボリックリンク上で777だった、本当のdirは755だった。私は気が狂っている。問題は私が推測する。 – Harest

答えて

0

したがって、実際にはアクセス許可に問題がありました。この問題は、Capifonyに関連していました。 shared_childrenはシンボリックリンクです。シンボリックリンクをchmodすると、何もchmodしません。だからここでは、共有された/ app/sessionsディレクトリは755でまだ十分ではありませんでした。

同様の問題がある場合は、あなたのCapプロジェクトディレクトリのshared_childrenの権限/すべてがよく設定されていることを確認してください。

関連する問題