プロが教えるわが家の防犯対策術!

学校の課題でMySQL、PHP、Apache2を用いてウェブの認証画面が作成する必要があります。

サーバーのOS は Debian Linux を利用しております。

http://www.debianhelp.co.uk/mysqlapache.htm

上記サイトを見ながら、手順に従ってやろうと思ったのですが、最初の apt-get で躓きました。

libapache2-mod-php
libapache2-mod-auth-mysql

この2つのファイルが見つからずにインストールができません…。

また、上記サイトの説明と私が持っているApache2の参考書だと説明が異なり、困っております。

参考書ではmod_auth_mysqlをコンパイルする必要があるとなっているのですが…。

どなたか、MySQL,PHP,Apache2を利用したWeb認証画面の作成方法で、参考となるサイトがありましたら、ご教授願います。

よろしくお願いいたします。

A 回答 (8件)

MySQLにDES_ENCRYPT()という関数があります。


ただし、SSLが組み込まれている必要があります。

MySQL 4.1 リファレンスマニュアル
6 MySQL SQL言語リファレンス
6.3 SELECT 節と WHERE 節で使用する関数
6.3.6 その他の関数
6.3.6.2 その他の各種関数
http://dev.mysql.com/doc/refman/4.1/ja/miscellan …
    • good
    • 0
この回答へのお礼

ありがとうございます。頂いた参考URLをもとに取り組んでみたいと思います。

今回は本当にありがとうございました。

お礼日時:2006/10/15 13:46

.htaccessファイルにある



>AuthMySQL_Encryption_Types Crypt_DES



AuthMySQL_Encryption_Types Plaintext Crypt_DES

に変えるとはじかれないようになったりしませんか?

ちなみにApacheのログに何か出力されていませんか?
    • good
    • 0
この回答へのお礼

ありがとうございます!!
ビンゴでした!!
Plaintextを追加したら、できました!!

ただ、Plaintextでパスワードをやり取りするのは不本意なのですが、DESで暗号化したいのですが…これは何か別モジュールが必要なのでしょうか…。

お礼日時:2006/10/14 06:58

>Restart Apache 2



>#apache2ctl restart

と書いてあるように、apache2.confを設定を変更した後Apacheの再起動をしていますか?

><Directory "/var/​www/members/">​
>Options +Indexes FollowSymlinks MultiViews
>AllowOverride AuthConfig Options FileInfo Limit
>Order allow,deny
>Allow from all
></Directory>

これは、httpd.conf(apache2.conf)で設定した内容を.htaccess ファイル内で設定した内容で上書きするための設定をしています。
ところで"/var/​www/members/"と空白が入っているのですが実際にも空白が入っているのですか?

この回答への補足

いつも回答ありがとうございます。
Apacheの再起動は行いました。また空白の件ですが、実際のものには入っておりませんでした。
サーバー自体を再起動した後、稼動し始めましたが、MySQLで設定したユーザ名、パスワードを入力してもはじかれてしまいます。

> Auth_MySQL_Info localhost 'auth_user' 'password'

この部分の 'auth_user' と 'password'ですが、参考書を見るとこのusername+passwordの組み合わせは他のシステムのユーザアカウントと同じであってはならないとなっておりますが、それが原因なのでしょうか…。うっかり同じにしてしまいました…。

補足日時:2006/10/13 22:23
    • good
    • 0
この回答へのお礼

お蔭様で一歩一歩近づいている気がします。
本当にありがとうございます。

お礼日時:2006/10/13 22:31

>2.したいこと


>質問とちょっと変わるのですが、MySQLにて、ウェブへログインする際のユーザID,パスワード管理を行いたいです。(PHPは不要)

質問の所にご自分でお書きになられたURLのページにデータベースの作成、テーブルの作成、ユーザのテーブルへの追加、Apacheでの設定方法と全て書いてあると思うのですが。

この回答への補足

再度失礼いたします。

http://www.debianhelp.co.uk/mysqlapache.htm

必要モジュールもインストし、基本的に上記手順に従って設定を行いました。

■ MySQL設定内容

-----------------------------------------------

CREATE TABLE wwwusers (
username varchar(25) NOT NULL primary key,
passwd varchar(25) NOT NULL
);

insert into wwwusers (username, passwd)
values ('username' , 'password');

-----------------------------------------------

■ /etc/apache2/apache2.conf設定内容
下記をファイル最下部に追加しました。

--------------------------------------------------

Auth_MySQL_Info localhost 'auth_user' 'password'
Auth_MySQL_General_DB wwwusers

<Directory "/var/www/members/">
Options +Indexes FollowSymlinks MultiViews
AllowOverride AuthConfig Options FileInfo Limit
Order allow,deny
Allow from all
</Directory>

---------------------------------------------------
※'auth_user''password'は私が grant privileges on ...の記述をしたときに
指定した物を記述しています。
※参考書を見るとhttpd.confへ下記2行を追記するよう書いてあり、どちらが正しいのか混乱しています。

Auth_MySQL_Info localhost 'auth_user' 'password'
Auth_MySQL_General_DB wwwusers



■ .htaccess ファイル設定
.htaccess ファイルは上記で指定した/var/www/members/の下に置きました。
下記内容は上記URLとは別に参考書も参考にしました。

--------------------------------------------
AuthMYSQL on

AuthName "Members Only"
AuthType Basic
require valid-user

AuthMySQL_DB auth
AuthMySQL_Password_Table wwwusers
AuthMySQL_Username_Field username
AuthMySQL_Password_Field passwd

AuthMySQL_Empty_Passwords off
AuthMySQL_Encrypted_Passwords on
AuthMySQL_Encryption_Types Crypt_DES
AuthMySQL_Scrambled_Passwords off
AuthMySQL_Authoritative on
AuthMySQL_Non_Persistent off
---------------------------------------------

設定後、ブラウザで指定したフォルダにアクセスしたら、普通にアクセスできてしまいました…。

一体どこに不備があるのでしょうか…。

補足日時:2006/10/13 13:48
    • good
    • 0

>学校の課題でMySQL、PHP、Apache2を用いてウェブの認証画面が作成する必要があります。



認証にmod_auth_mysqlモジュールを使用しようとしているみたいですが、認証としてはこのモジュールだけで済んでしまいますからPHPを使用する必要はないですよね?
つまり「MySQL、PHP、Apache2を用いて」には当てはまらないですよね?

課題としては、PHPでユーザ名(ID)、パスワードを入力する画面を表示し、入力されたユーザ名(ID)、パスワードに一致するものがMySQLのデータベース上に存在するかPHP自体でMySQLにアクセスして認証を行い、その結果を画面に表示するという事なのではないのでしょうか?

そういうものが求められているなら、下記URLが参考になるかもしれません。
ただし、使用しているのがPostgreSQLですが。

STACK*
>IT技術情報>php>PHP第3回:PHP応用
 6.セッション管理
 ■認証に利用する
 http://www.stackasterisk.jp/tech/php/php03_06.jsp

この回答への補足

失礼しました。確認したら、PHPは要件に含まれていませんでした。
MySQLにてユーザID,パスワード管理だけを行うことになります。

補足日時:2006/10/12 00:57
    • good
    • 0

こんばんは。


Debian/sarge を使っています。

apt-cache コマンドでパッケージ検索してみました。
参考にしてください。


# apt-cache search mod-php
libapache-mod-php4 - server-side, HTML-embedded scripting language (apache 1.3 module)
libapache2-mod-php4 - server-side, HTML-embedded scripting language (apache 2.0 module)


# apt-cache search mod-auth
libapache2-mod-auth-kerb - Apache2 module for Kerberos authentication
libapache2-mod-auth-mysql - Apache 2 module for MySQL authentication
libapache2-mod-auth-pam - module for Apache2 which authenticate using PAM
libapache2-mod-auth-pgsql - Module for Apache2 which provides pgsql authentication
libapache2-mod-auth-plain - Module for Apache2 which provides plaintext authentication
libapache2-mod-auth-sys-group - Module for Apache2 which checks user against system group
    • good
    • 0
この回答へのお礼

apt-cache で出てきた結果からapt-get を行ったら、module のインストができました。ありがとうございました。

お礼日時:2006/10/12 01:06

ソースから入れるのであれば、Debianのパッケージ管理システムの恩恵にあずかれなかったり、問題が生じたりする可能性があります。


まぁ稼働後にトラブルがあっても構わない気概があれば別に止めはしませんが。

>#apt-get install libapache2-mod-php mysql-server php4-mysql libapache2-mod-auth-mysql
まず、この部分ですが、パッケージ名が一部間違ってます。

libapache2-mod-php → libapache2-mod-php4

libapache2-mod-auth-mysqlは、上記パッケージとの兼ね合いで依存関係に問題があってクリアできずにインストールできていないのかもしれません。

必要なパッケージに関しては、うまくいかないときは、apt-cache等でパッケージ検索してみることをお勧めします。

また、質問するときには、
1.環境
2.したいこと
3.何がどううまくいかないのか
を具体的に書かれることをお勧めします。

apache2が必須であることはわかりますが、phpのバージョンはどうでもいいのでしょうか?
など、本人には自明でも、質問を読んでいる側からはわからないことも多々あります。

また、インストールできないとは、どういう状況でしょうか?
apt-get install を実行したときにエラーがでてインストールできないのでしょうか?
実際にエラーメッセージが表示されているのであれば、エラーメッセージを一字一句間違えなく書かれると、
回答するほうは何が問題かはっきりわかります。
(それでわからなければログを教えて欲しいとか、状況を教えて欲しいとかいろいろ補足事項を尋ねるでしょう)

この回答への補足

エラーメッセージはE: Couldn't find package libapache2-mod-php
でしたが、ご回答頂いたようにファイル名の変更、またapt-cache でファイルを検索して行ったら、モジュールのインストはできました。失礼いました。

1.環境
VMwareに Debian をインストして使っております。現在は基本的にデフォルト設定の上に上記4つのモジュールをインスト状態です。

2.したいこと
質問とちょっと変わるのですが、MySQLにて、ウェブへログインする際のユーザID,パスワード管理を行いたいです。(PHPは不要)

補足日時:2006/10/12 01:06
    • good
    • 0

apache2のmod_auth_mysqlはくせがあって面倒ですね。


apache1.3系の方は結構楽チンなんですけど。

ダウンロードは以下
http://sourceforge.net/projects/modauthmysql/

解説は以下あたり参考に
http://www.nognog.com/techmemo/Apache2_MySQL_Aut …
http://srvhat09.anaheim-eng.com/modules/tinyd4/i …

よほどのことがないかぎり一発でセットアップできる
ことはないと思います。
トライアンドエラーでがんばってください
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
>apache2のmod_auth_mysqlはくせがあって面倒ですね。
どこかのサイトにも記載ありました…。できればApache1.3系にしたいのですが、Apache2が要件の1つになっているので…。

何とか参考サイトをもとに Try and Error で頑張って見ます。

お礼日時:2006/10/11 13:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!