レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
Apache(httpd)でホームページ(Web)関連の設定を行うNo4
(BASIC認証、バーチャルホスト)

<概要>


さてさて、引き続き、Aapache(httpd)に必要な設定をみていきますね。
今回は、BASIC認証とバーチャルホストの設定です。


BASIC認証とは、特定のディレクトリにID、パスワードでログイン制限をかけることです。
一般的によく見かける機能ですね。Apacheを利用すれば、便利で簡単です。


バーチャルホストとは、特定のドメインで、このサーバーに接続が来た時に、
そのドメインが使用するディレクトリを指定することです。
この設定をすることにより、一つのサーバーで複数のドメインを管理することができます。


ではいってみます。

<BASIC認証:パスワードファイルの作成>


まずは、ログインに必要なパスワードファイルというものをつくります。
パスワードファイルは、ログイン時のIDとパスワードをまとめたものです。
以下の、2パターンでつくります。


1.初めてパスワードファイルをつくる場合
 /usr/bin/htpasswd -c ファイル名 ユーザ名


2.既にパスワードファイルが存在していて、IDの追加、パスワードの変更を行う場合
 /usr/bin/htpasswd ファイル名 ユーザ名
 
 ※ -cオプションが必要ありません。

パスワードファイル/var/www/.htpasswd をつくって、ユーザー(xxx) をつくってみます。
-cオプションなしで、yyy というユーザーもつくってみます。

<実行例:BASIC認証:パスワードファイルの作成>

# /usr/bin/htpasswd -c /var/www/.htpasswd xxx ←xxxというユーザーを.htpasswdファイルに作成
New password: ←パスワード入力
Re-type new password: ←パスワード再入力
Adding password for user xxx



# /usr/bin/htpasswd /var/www/.htpasswd yyy ←cオプションなしで、yyyというユーザーを.htpasswdファイルに作成
New password:
Re-type new password:
Adding password for user yyy



]# vi /var/www/.htpasswd ←ファイルを確認してみる。パスワードは暗号化されていますね。
xxx:sNmUGEJ8UaoUQ
yyy:J/52vLd6aghbM

<BASIC認証:Apache設定ファイルの変更>


次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)
を変更して、上でつくったパスワードファイルと連携するようにします。


●まず、BASIC認証が必要となるディレクトリをサーバー側につくります。
私は、/var/www/html/basic_test というディレクトリを作成してみました。


●設定は簡単で、設定ファイル(/etc/httpd/conf/httpd.conf)の最下行に、以下を追加するだけです。

<Directory /var/www/html/basic_test>
AuthUserFile /var/www/.htpasswd
AuthType Basic
AuthName ByPassword
Require valid-user
</Directory>

※require user ユーザ名 とすると、特定ユーザーだけの認証にもできる。

●再起動して、http://192.168.0.102/basic_test/ にアクセスして、認証画面が出てくれば成功です。

<実行例:BASIC認証:Apache設定ファイルの変更>

# vi /etc/httpd/conf/httpd.conf

<Directory "/var/www/html">
・・
中略(最後の行)


<Directory /var/www/html/basic_test> ←httpd.confの最下行に以下の6行を追加
AuthUserFile /var/www/.htpasswd
AuthType Basic
AuthName ByPassword
Require valid-user ←パスワードファイルに登録されたユーザー対象。
</Directory>

# /etc/rc.d/init.d/httpd restart ←再起動
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]

<画面:BASIC認証:Apache設定ファイルの変更>



このような認証画面が出てくれば、成功です。

<バーチャルホストの設定>


次に、バーチャルホストの話です。


試しに、
http://www.test.com/ でアクセスがあった場合に、
/var/www/html/test/ のディレクトリが、その表示対象となるように設定をしてみます。


●設定は簡単で、設定ファイル(/etc/httpd/conf/httpd.conf)のNameVirtualHost *:80のコメントアウトを外し、最下行に、以下の4行を追加するだけです。

<VirtualHost *:80> 
DocumentRoot /var/www/html/test
ServerName www.test.com
</VirtualHost>

※ 80番ポートがhttpdのデフォルトポート番号です。よくわからない場合は、*:80をつけておきましょう


●さて、次に、ブラウザから、http://www.test.com/にアクセスするわけですが、
http://www.test.com/ → 192.168.0.102 というドメイン解決をネームサーバーに登録する必要があります。


しかし、ここでは、あなたのPCからのテストなので、hostsファイルを変更することにより実験しましょう。

windows XP だったら、以下にhostsファイルがあると思います。
C:\WINDOWS\system32\drivers\etc\hosts

見つからない場合は、hostsでマシンの中を検索してみてください。


で、hostsファイルの最下行に、
192.168.0.102 www.test.com と追加してみてください。


これで、
http://www.test.com/ → 192.168.0.102 というドメイン解決ができます。


●最後に、サーバー側に、テスト用のhtmlファイルをおきましょう。

以下をコピペして、index.htmlファイルをつくり、/var/www/html/test/index.html に置いてみましょう。

<html>
テスト成功です
</html>



●ブラウザで、テストしてみましょう。http://www.test.com/ してみてください。
下の画面のように表示されましたか?



バーチャルホストの設定をすると、IPアドレスでのアクセスができなくなります。
(うまく設定をすれば、まあ、できるのですが。使用する場合は、そのあたりを気をつけていきましょう)

<実行例:バーチャルホストの設定>

# vi /etc/httpd/conf/httpd.conf

#NameVirtualHost *:80

↓変更

NameVirtualHost *:80 ←80番ポートの接続は、バーチャルホストを使う


<Directory "/var/www/html">
・・
中略(最後の行)


<VirtualHost *:80> ←httpd.confの最下行に以下の4行を追加
DocumentRoot /var/www/html/test
ServerName www.test.com
</VirtualHost>




# /etc/rc.d/init.d/httpd restart ←再起動
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]


<画面:バーチャルホストの設定>



URLがhttp://www.test.com/ ですね。
このURLで接続できれば、テスト成功です。

クラウドで伸びる人沈む人 ||Copyright © 2005-2020 SearchMan,All Rights Reserved.