[CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです

CakePHP

とあるサイトでCakePHPのBasic認証が必要な機会があったので、導入してみました。
Securityコンポーネント使用したり、独自のコンポーネントで出来そうな様子。

CakePHPでBasic認証対応ページを作る – blog.katsuma.tv
http://blog.katsuma.tv/2008/07/cakephp_basic_auth.html

CakePHP 管理者サイトでBasic認証を簡単に行うコンポーネント | Shin x blog
http://www.1×1.jp/blog/2008/01/cakephp_adminauthcomponent.html

どちらもよく出来ていて、開発環境ではバッチリ動作していたのですが、どうもレンタルサーバにアップした途端、動作しない。
調べていくとBASIC認証のダイアログは表示されるものの、認証されない。
というか、入力した値がプログラム中で取得出来ていない。

詳しく調べると、
phpでベーシック認証 – bnote
http://www.bnote.net/php/php/22_basic_auth.shtml

PHPによるHTTP認証のフック
この機能は、Apacheモジュールとして実行した時のみ 有効で、CGI版では利用できません。
仕組みとしては、Apache等がクライアントとのやり取りを行うのと同様のことを php で実現することになります。

ということで、PHPでBASIC認証というのは、PHPがCGI版で動いている場合は使えない手法のようでした。
まさにレンタルサーバのPHPがCGI版のようでした。

PHPに慣れている人には当たり前のことなのかもしれませんが、自分は知りませんでした。

てことは必然的にPHPがCGI版で動いている場合はCakePHPでBasic認証対応ページを作る為には、Apacheの設定でなんとかしないといけないようでした。

幸い今回の場合は.htaccessのBasic認証 + 修正パッチで対応できるようなのでそちらで対応しました。

CakePHP URLマッピング修正パッチ | Shin x blog
http://www.1×1.jp/blog/2006/09/cakephp_url_mapping.html

ネットを検索した結果、こういった情報がどこにもないように思えたので、メモしています。
CakePHPのBasic認証ではまったことのある人、これからCakePHPでBasic認証する機会のある方、参考にして下さい。

※上記以外でその他に参考にしたサイト

CakePHP で ついに見つけた!CakePHP の管理者画面作成ノウハウ(ラボブログ)
http://blog.spicebox.jp/labs/2009/05/post_282.html

CakePHP 1.2 の Basic 認証設定があまりにも簡単すぎる(ラボブログ)
http://blog.spicebox.jp/labs/2009/03/cakephp_12_basic.html

cakePHP1.2でBasic認証|TONTTU.NET 群馬県 太田市
http://www.tonttu.net/tec/cakePHP/cakePHP12_2_BASIC.html

[CakePHP] 管理者画面でIP制限をかけてみる – ElectricBrain Standard
http://www.multiburst.net/ElectricBrain/2009/05/ip-limitation-on-the-admin-routing

コメント

  1. gadget より:

    [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです: とあるサイトでCakePHPのBasic認証が必要な機会があったので、導入してみました。Securityコンポ… http://bit.ly/bfkvMJ

  2. cakephp_jp より:

    [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです « … http://bit.ly/bPG3PC #cakephp

  3. RT @kaburk: [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです http://tinyurl.com/yhasa4f
    さくらサーバーはもろそれだったので苦労した・・・

  4. RT @kaburk: [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです http://tinyurl.com/yhasa4f 
    さくらサーバーはもろそれだったので苦労しました・・・

  5. [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです | [ま]技術雑記: http://goo.gl/XCHeT

  6. RT @cou_z: [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです | [ま]技術雑記: http://goo.gl/XCHeT

  7. [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです | [ま]技術雑記: http://goo.gl/XCHeT もしかしたらこれが解決方法かもしれない。

  8. RT @cou_z: [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです | [ま]技術雑記: http://goo.gl/XCHeT もしかしたらこれが解決方法かもしれない。

  9. 忘れてた。どうすっかな??RT @kaburk: [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです – [ま]技術雑記 http://tinyurl.com/yzwkspp

  10. RT @cou_z: 忘れてた。どうすっかな??RT @kaburk: [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです – [ま]技術雑記 http://tinyurl.com/yzwkspp

  11. […] ®ã ãŒåˆã‚ã¦çŸ¥ã£ãŸã€‚ 参考 [CakePHP] CakePHP(PHP)でのBasic認証はPHPがCGI版で動いている場合は使えないようです […]