upgrade シェルを使ってアップグレードを行いました。
その後、
app/webroot/index.php上書き
core.phpやbootstrap.php、database.phpなども環境に合わせました。
とりあえず、上記まで行い、アクセスしてみると以下のエラーが出力されております。
Call to a member function is() on a non-object in [/var/www/html/lib/Cake/Controller/Component/SecurityComponent.php, line 388]
対象コードはいかになりますが、CakerequestにもISはあったのですが、、、なぜエラーとなるかが、、、、わかりません。
388 if (!$this->request->is('ssl')) {
389 if (!$this->blackHole($controller, 'secure')) {
390 return false;
391 }
392 }
cakephp1.3から2.x系にアップグレードしたいだけですが、、、
もしどなたか何か、情報があればお願いします。
また、アップグレード手順が違う!!!というのであれば、手順も教えていただければ幸いです。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
エラーの内容は、non-objectはis()関数をコールできないというものです。
原因は$this->requestがnullだからだと思います。componentはrequestを直接参照できないと思います。
※cakephp1ではできたのかもしれません(そこは調べていないです)
controllerを経由して参照すればいいと思います。
参考:CakePHP2でComponentからHTTPリクエストのクエリパラメータを取得する方法
(追記:コメント欄のまとめ)
問題はSecurityComponentでした。Cakephpのコード見てみたところ、requestがnullになるケースはわからなかった。該当する問題やバグがないか調べたところ、類似している以下の問題を見つけて、実際にコンストラクタをオーバライドしているのが影響していたようです。
http://d.hatena.ne.jp/cakephper/20130108/1357633417
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.09%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2017/01/20 15:09
エラーに関しては理解しましたが、
このエラーの場所は/lib/Cakeの部分で、2.6のlibを持ってきたものですが、
こちらを直接修正するということですか??
2017/01/20 15:15
詳細なバージョンを教えてください。2.6.?でしょうか。あとCakephp側のコードも見てみます。
2017/01/20 15:16
お手数おかけしますが、よろしくお願いします!
2017/01/20 17:03
2017/01/20 17:14 編集
ちなみに、エラーがでるのはSecurityComponentを使っているコントローラからですか?
あとSSLに強制するrequireSecureオプションを使っていますか?
2017/01/20 17:18
http://d.hatena.ne.jp/cakephper/20130108/1357633417
コントローラのコンストラクタとかを継承していないか確認してみてください。
2017/01/20 18:15
2017/01/20 19:10