前提・実現したいこと
PHP(FuelPHP)で書かれたAPIサーバーの修正したいのですが
コントローラファイルを修正しても反映されません
開発環境は docker という仮想コンテナ上で動いていて
curl -X POST http://<api_server>/xxx/yyy
を叩くとコンテナ上にログが出力されてるのでそこにアクセスしているのは確実なのですが
/fuel/app/classes/controller/xxx.php を書き換えても反応がないのです
最初はログの出力をあちこちに挟んで見たのですが反応がなく
わざと syntax エラーが出るような変な ( や { を挟んで見てもエラーを履かずに 200 を返してきます
コンテナ上からソースファイルを見てもソースが変更されてるのは確認しました
apache 上で PHP CGI を書いたことはあるのですが
Fuel PHP が初めてなので根本的にわかってないことがあるんだと思います
考えられる可能性がありましたら教えていただきたいです
問題が発生するまでの流れ・手順
docker コンテナで開発環境を作っているので全てホストPC上で完結しています
ホスト上でコンテナフォルダ内のファイルを sublime エディタで編集して保存しただけで
docker コンテナ上から見えるファイルも変更されるみたいです
docker もまだよくわかっていなくて仕様なのかNFS的なものを設定してるのかはわかりません
以前さわったことがある Rails サーバーのコンテナ上のファイルを変更した時は即反映していましたし
一応 API サーバーのコンテナ上のシェルに入って less で該当のファイルを見てみたら変更はされていました
そもそもそのファイルにルーティングされていない可能性が一番疑わしいのですが
Fuel のドキュメントを読む限り
http://<api_server>/xxx/yyy/ とかくと
/fuel/app/classes/controller/xxx.php の get_yyy なり post_yyy が呼ばれると思っているのですが…
/fuel/app/config/route.php 以外にも例外的なルート設定があったりするのでしょうか
はかれるログやメッセージを見る限りは該当ファイルのものと一致しているので編集が反映されていないと考えるのがいちばん現象としてはしっくりきます
あるいは Fuel PHP サーバーの設定が複数あって全く別のフォルダのサーバーが起動している
という可能性もあるのですが調べる方法がもしあれば教えていただけるとありがたいです
追記
色々調べているうちにどうも1つのコンテナ上で2つのバージョンの fuel フォルダが存在しているので
同時に動いている可能性が出てきました
ただどうやったら目的のコントローラーに処理を渡せるのかがわかりません
マルチドメインでドメインによってルートディレクトリを振り分けているのか
同じURLを見張っていて fuel の中の処理で振り分けてるのかもわからず
config/config.php にはそれらしい記述は見当たりませんでした
複数の fuel ディレクトリに処理を振り分けているとしたらどこを見れば設定が書かれているんでしょうか
回答1件
あなたの回答
tips
プレビュー