Flarumという掲示板アプリをつかって、takibiweb.comという照明制御の掲示板を運営しています。(友人につくってもらいました)
ところが、本日、問題が発生。
エラーが発生
“フルバージョンの読込中にエラーが発生しました。スーパーリロードを行ってください。”
だそうな。
友人からの報告
先ほどサーバに入ってみたところファイルがいくつか消えてるようでして、
もしかしたら管理画面でなにか操作を行うとファイルが消えてしまうのか・・・・と推測してるところです。
何れにせよ、どうにかしないといけないので、ファイルの復旧を進めます。
エラーの件ですが解消いたしました。
これは下記ファイルのパーミッションのせいでした。
/var/www/deploy-production-forum/shared/public/assets/rev-manifest.json
Flarumは管理画面でプラグインの設定を変更したりすると
/var/www/deploy-production-forum/shared/public/assets/
の下にあるJSのファイルなどを一度削除し再作成するようなのですが、
その際にrev-manifest.jsonへの書き込みを行うみたいで、
今回はそこで書き込みができず処理が途中で終わっていたようでした。
まとめると
- 管理画面で設定変更
- /var/www/deploy-production-forum/shared/public/assets/のJS削除
- rev-manifest.jsonへの記述<===今回はこれが書き込みできずに後続処理が終わっていた
- /var/www/deploy-production-forum/shared/public/assets/にJSを再作成。これが作成されず。エラーの出た端末にはJSがNotFoundになっていた。
という流れてです
私や中畑さんのブラウザにはJSのキャッシュが残っていたので、表示されてたようでした。
原因を見つけるまで、何をやったかを教えてもらいました
エラーが発生したときに、どんな手順でそれを見つけたかを教えてもらうととても勉強になります。
なので、原因を見つけるまでのステップを教えてもらいました。
1.PC(Chrome)で見てたらフロントが表示される
2.スマホで見たらエラー
スマと特有の処理ってあったかなぁ・・・特に思い当たるフシがない(think)
3.PC(FireFox)で閲覧→エラー
コンソールからJSのファイルの読み込みで404になっていることを確認
4.サーバの状況を見る
昨日デプロイしたファイルが存在しない
これを意図的に消すことはないはず・・・(think)
となるとシステム側で消すタイミングがある?(think)
5.ローカル環境の管理画面からプラグインの非活性・活性を試す
JSのファイルが消えてる
6.フロントのページにアクセスする
JSが再作成されている
管理画面からJSの削除、フロントでJSの再作成処理が行われることを知る:o
7.作成トリガーはrev-manifest.jsonであることを知る
ただし、rev-manifest.jsonはデプロイ時に実行されるユーザとwebアプリケーション実行ユーザが異なるため
パーミッションの問題が出ていることがわかる
webユーザからrev-manifest.jsonを更新できていなかった。
このため、JSの削除のみが実行され、再作成が行われず、3の404が発生していた
ということでした。
Flarum公式の掲示板にもこの事例が
Page Is Not Loading Correctly – Flarum Community
こちらに同様の事例が報告されていました。
友人からのコメントは、
まさにこれですね!
記事内にはrev-manifest.jsonがなければ作成されるとありますね・・・
いま手元の環境で確認したら、rev-manifest.jsonを削除するとたしかに再作成されました。
なので、この手順が正しいですね。
デプロイのときはrev-manifest.jsonをサーバにgitから配置するのではなく、
削除してあげるとサーバ側で
rev-manifest.jsonが再作成され
関連するJSも作成されるようでした!
とのことでした。
まとめ
Flarumは日本語の情報が少ないので、日本にもユーザーグループできるといいですね。