やりたい事とか ・RAID ・LPIC-201 ・自転車を買う(買っちゃった~) ・サイト作成

2009年7月22日水曜日

Webサーバ

Webサーバ

環境
・CentOS5.3:CUI環境
・httpd.i386 2.2.3-22.el5.centos.2

こっちのほうが、参考になりそうです。でもこっちはこっちで進めます。
http://www.atmarkit.co.jp/flinux/index/indexfiles/apacheindex.html



まずは必要な環境をインストール
yum groupinstall "Web サーバー"


しかし、
予想以上にいろんなものが入るので、インストールを止める。
普通にアパッチだけいれましょう。そうしましょう。
yum install httpd
#こうじゃないかもしれない。


今回入ったのが
httpd.i386 2.2.3-22.el5.centos.2です。





ファイアウォールに穴を開ける。
system-config-securitylevel-tui
→カスタマイズ→HTTPとHTTPSを選択→OK
#いちおうHTTPSもついでに穴開けしておきましたが、使うかどうかは別にしてと。




httpdを自動起動させる。
[root@localhost init.d]# /sbin/chkconfig --list httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost init.d]# /sbin/chkconfig httpd on ← httpdを自動起動。
[root@localhost init.d]# /sbin/chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost init.d]#



httpdの起動。
[root@localhost init.d]# ./httpd start
httpd を起動中: [ OK ]
[root@localhost init.d]#





ではでは。ブラウザのアドレスバーに下記を入力。
http://マシンのIPアドレス



キタコレしました?
実際どうなるかといいますと、
「Apache 2 Test Page powered by CentOS」
という画面が表示されます。
アパッチで動いとるよ。というページです。







ではでは。次はいよいよ、HTMLページの表示に。
まずは設定ファイルの変更からです。
cd /etc/httpd/conf
vi httpd.conf


まず確認すべきは下記の二つです。
DocumentRoot "/var/www/html"
→実際のHTMLファイルを置く場所。

DirectoryIndex index.html index.html.var
→アクセスがあったときに一番最初に見せるHTMLファイル(TOPページ)

ふ〜ん。
ではでは、確認したところで
手を動かしてみましょ。
cd /var/www/html
vi index.html

下記を記述。#HTMLは適当に用意したものなのであしからず。
#<を<に変換してね。
ーーーー
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test
</head>
<body link="#555555" alink="#555555" vlink="#555555" bg style="color:#ffffff;">
<center>
<basefont style="font-size:85%;">
<br />
Hello, world!
<br />
</center>
</body>
</html>
ーーーー

保存して終了。
もっかい、ブラウザからhttp://マシンのIPアドレスをアドレスバーにぶち込んでみましょ。
だだっぴろい中にHello, world! さんがでましたか?
でましたか。正解。






次にやりたくなることってなんでしょうかねぇ。
認証とかですか?
一気にレベルがあがる感がありますがどうなのでしょうか?
挑戦です。なんせ私はいま暇なんですから。
#転職したいっす。

ここからの参考ページ。ほとんど下記の手順をやっていく感じで。
http://www.atmarkit.co.jp/flinux/rensai/apache10/apache10a.html


とりあえず、認証方式は
ベーシック認証(アカウントを平文でやりとり。小規模一般)
ダイジェスト認証(だれも使ってない認証)
データベース認証(ベーシック認証をテキストで管理ではなく、DBで管理)
みたいな感じです。





だったらとりあえずはベーシック認証で決まりです。
まずはパスワードファイルを作成
htpasswd -c /usr/local/apache/.htpasswd 最初のユーザ名
New password:
Re-type new password:

パスワードファイルの権限を変更
chmod 644 /usr/local/apache/.htpasswd


二人目を追加する場合は、-cを付けないこと。
htpasswd /usr/local/apache/.htpasswd 二人目のユーザ名




ではでは、httpd.confの設定になります。
ファイルのおけつに下記を追記します。
<directory>
AuthUserFile /usr/local/apache/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter Your Password"
AuthType Basic
Require valid-user
</directory>
変態ディレクトリです。いかにもパスワード制限が必要そうです。


表示するものの準備
mkdir /var/www/html/hentai
cp /var/www/html/index.html /var/www/html/hentai/
vi /var/www/html/hentai/index.html
Hello, world!

Hello, Prison!
に変更。
変態ディレクトリにアクセスしたのですから、刑務所にこんにちわです。


メインページの変更
vi /var/www/html/index.html
bodyの部分に下記の一行を追加。
<a href="./hentai/index.html">Hentai


では、httpdを再起動です。
/sbin/service httpd restart



ではでは、ブラウザから
http://マシンのIPで確認。
うまくいきました?



ちなみに、失敗した場合は、/var/log/httpd/error.logに記載されます。
作成していないhogeユーザでログインを試み失敗したときのログ。
[error] [client XXXXXX] user hoge not found: /he
ntai/index.html, referer: http://XXXXXX/






ではではでは。
次はグループでのアクセス管理です。


今は、.htpasswdでユーザごとに管理していますよね?
これをグループで管理するんです。
さっきからおんなじ事言ってる。



聞くより、実行です。
とりあえず、グループとグループのパスワードを追加します。

グループファイル作成
vi /usr/local/apache/.group

中身は適当にこんな感じ
hentai_user:kacho bucho

グループ名:ユーザ名 ユーザ名



で、一応ユーザを作成
htpasswd /usr/local/apache/.htpasswd kacho
htpasswd /usr/local/apache/.htpasswd bucho



vi /etc/httpd/conf/httpd.conf
下記を変更

<Directory "/var/www/html/hentai/">
AuthUserFile /usr/local/apache/.htpasswd
AuthGroupFile /usr/local/apache/.group    ←ここね。
AuthName "Please Enter Your Password"
AuthType Basic
Require group hentai_user ←アクセスを許可するグループを追加。
</Directory>


Requireが肝。
ちょいとひっかかった。
ある限定グループアクセスを認証によるアクセスで許可をしたい場合
Require group グループ名

ある限定ユーザのアクセスだけ認証によるアクセスで許可をしたい場合、
Require user ユーザ名

全員アクセスを認証によって許可したい場合、
Require valid-user

だそうです。



で、httpd再起動
グループに入っていないユーザでアクセスしてみてください。弾かれるはず。
グループに入っているユーザでアクセスしてみると・・・ログインできるはず。

0 件のコメント:

コメントを投稿

フォロワー