さくらインターネットでPHPでダイジェスト認証できるプログラムを入れてみたのですが

$_SERVER['PHP_AUTH_DIGEST']と$_SERVER['HTTP_AUTHENTICATION']が取得できず実装できません。
apacheのどこかで設定が必要なのでしょうか。

どの設定が必要なのか、またその場合さくらの共用サーバープランで
設定は可能であるかどうかもわかる範囲でお願いします。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/02/10 02:31:43
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント60pt

phpのマニュアルより

http://www.php.net/manual/ja/features.http-auth.php

Apache モジュールとして実行した時のみ 有効で、CGI 版では利用できません。


さくらレンタルサーバの機能比較ページとマニュアルページより

http://www.sakura.ne.jp/plans.html

http://support.sakura.ad.jp/support/manual/rs/tech_cgi.shtml

ビジネスプロでphp5のみモジュール版の利用が可能。

スタンダード/プレミアム/ビジネス/はCGIモードでの使用のみ可能。

ライトはphp使用不可。


今の契約がビジネスプロ以外の契約の場合は契約変更か、

モジュール版対応の他のサーバに乗り換えるかになります。

id:dedara

もし自前のサーバ(さくらと同じFreeBSD)でやろうとする場合、そのあたりの制御はどこらへんの設定になるのでしょうか。

ちなみにxamppで動かすと$_SERVER['PHP_AUTH_DIGEST']と$_SERVER['HTTP_AUTHENTICATION']ともに取得できています。

参考までにわかる範囲で教えていただけないでしょうか。


引き続き上記の質問をしばらく受け付けたいと思います

2010/02/08 02:14:50
  • id:kn1967
    >自前のサーバ(さくらと同じFreeBSD)でやろうとする場合

    検索のみの手抜きでスミマセン。

    下記が参考になるかと思います。(動作はモジュールモードです。)
    http://www.kishiro.com/FreeBSD/php5.html
  • id:rouge_2008
    Xamppでしたら標準でモジュール版のPHPで動作しています。
    どの辺りが分からないのでしょうか?

    自分でインストールする場合
    ・Apacheのhttpd.confの設定
    http://www.y2sunlight.com/ground/?Apache2%2FB.%B4%F0%CB%DC%C7%A7%BE%DA%A4%C8%A5%C0%A5%A4%A5%B8%A5%A7%A5%B9%A5%C8%C7%A7%BE%DA
    ※「--enable-so」をつけてコンパイル・インストールした場合、後からこのように必要なモジュールを有効に出来ると思いました。

    ・PHPのインストール
    http://www.phppro.jp/phpmanual/install_linux.php

    http://blog.yellowback.net/archives/396-20091223.html
    こちらが参考になるかも・・・
    モジュール版をインストールする場合、「--with-apxs2=/usr/local/apache2/bin/apxs」を指定します。
    ※場所は自分がインストールしたApacheのapxsを指定
    自動でモジュール版の設定も行われるはずですが、PHPのモジュールが読み込まれない場合は、kn1967さんが提示しているページの設定やXamppの設定を参考にしてください。
  • id:dedara
    すみません。理解しました。
    モジュール版とはCGIモジュールではなくApacheモジュールのことですね。ごっちゃになって混乱していました。
    さくらであっても自前でモジュール版としてインストールしなおせばOKそうですね
    ありがとうございました。
  • id:kn1967
    誤解しておられるようです。
    (1)Apacheのモジュールとして動作するphp
    (2)ApacheからCGIとして呼ばれて動作するphp
    (3)あなたの作ったphpファイル
    これらはそれぞれ、まったくの別物です。

    (1)の稼動しているサーバーに(3)を置けば動く、
    もしくは(2)の稼動しているサーバーに(3)を置いても動きます。

    ビジネスプロ は(1)(2)両方存在し、ユーザーが選択できます。
    スタンダード/プレミアム/ビジネスは(2)のみ存在します。
    ライトはどちらも無しだからphpは一切使えません。

    Apacheモジュール版のインストールにはサーバー管理者権限が必要ですが、
    さくらの共用サーバは、いずれの契約においても管理者権限はありません。
    すなわちモジュール版phpを自力インストールなど出来ないです。
    スタンダード/プレミアム/ビジネスの場合は、お望みの機能は使えないという事です。

    ご理解いただけたかしら?
  • id:rouge_2008
    ちょっと時間が経ちましたが、コメントの追加・修正をします。

    上で『「--enable-so」をつけてコンパイル・インストールした場合、後からこのように必要なモジュールを有効に出来る』と書きましたが、この場合、有効にしたいモジュールも個別に指定してApacheをコンパイルする必要があります。(※Apacheと別個に配布されているモジュールは、後で追加インストール可能です。)
    替わりに「--enable-mods-shared=all」オプションをつけてインストールしてください。
    ※ほとんどすべてのモジュールがDSOモジュールとしてインストールされます。
    ※このオプションを指定した場合、「--enable-so」も自動的に有効になります。
    ※「--enable-mods-shared='auth-digest headers rewrite'」のようにモジュール名のリストで指定する事も出来ます。

    http://httpd.apache.org/docs/2.1/ja/programs/configure.html


    kn1967さんが書かれている通り、さくらの共用プランではインストールできません。
    自前サーバもしくは専用サーバ等にインストールする場合の参考にしてください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません