ブログネタ
Linuxに関する運用 に参加中!

私のページでは主にデスクトップ目的で記事を書いてきましたが、
ついにサーバー管理の記事に挑戦です。



今回は、Webサーバーを立てます。



httpdのインストール


まずは、apacheのインストールです。といってもapacheというパッケージ名はありません。


FedoraCentOSでは、httpdというパッケージ名で登録されています。Fedoraをインストールした際にパッケージの選択をしていないもしくはライブCDからインストールしたという方はすでにインストールされています。




rpm -q httpd

と(一般ユーザーでOK)入力して、



httpd-2.2.17-1.fc14.i686

とパッケージ名+バージョン名が入っていればOKです。


もし、



パッケージ httpd はインストールされていません。

と表示された場合は、httpdをインストールしましょう。




su -c "yum install httpd"
(パスワード入力)

とすればインストールされます。



デーモンの起動


httpdのインストールが終了したら、httpdを起動しましょう。


デーモンとはざっくり言うとWindowsでいうところの常駐アプリだと思っていただければ良いと思います。


このhttpdをすぐに起動したい場合は、



su -c "/etc/init.d/httpd start"
(パスワード入力)


Fedoraを再起動した後も自動的にhttpdを起動したい場合は、



su -c "chkconfig httpd on"
(パスワード入力)

とします。

SELinuxをdisabled


SELinuxは、ホワイトリスト型のセキュリティソフトです。
ホワイトリスト型とは、リストに載っているものだけが動かせる、ブラックリスト型であるファイヤーウォールと逆のセキュリティソフトです。ですが、なかなか扱いが難しいのでdisabledにしておきます。
/etc/selinux/configをエディタで以下のように編集します。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

具体的には、SELINUX=enforcingであるところを、SELINUX=disabledにします。

GUIで設定する場合は、

su -c "yum install policycoreutils-gui"

SELinux Managementをインストールします。
GNOMEデスクトップの[システム]→[管理]→[SELinux Management]を選択し、
xen-selinux-on

の赤い線で囲まれた箇所[強制]をクリックして、
xen-selinux-off

[無効]とします。

表示のテスト


ここ迄来てWebサーバーが表示できるかチェックしてみましょう。
FirefoxGoogle ChromeOperaw3mなどのURLアドレス欄に

http://localhost

と入力してみてください。
error

残念ながら、表示されません。
Fedoraでは、デフォルトでiptablesというファイヤーウォールがインストールされているので、表示されないのが正しいのです。面倒ですが、セキュリティ面を考慮し、ここで表示されない事を確認しました。
逆に、httpdを起動したのにページが表示されない場合は、ファイヤーウォールがONになっていて、httpを許可していないという状況がほとんどだと思われます。(あとSELinuxも。)

ですが、私の環境では表示されてしまいました。
ぱぁむさんの指摘で気づいたのですが、Xenをインストールした際に勝手にlo(ループバックインターフェース)のアクセスが許可されていました。
/etc/sysconfig/iptablesの一行に

-A INPUT -i lo -j ACCEPT

という行があったので、

#-A INPUT -i lo -j ACCEPT

としてコメントアウトしておけばOKです。
ただし、Xenを使う際は必要になってくるので、その際は、コメントアウトを外す(#を消す)をしておいてください。

ファイヤーウォールの設定


ファイヤーウォールでhttpを許可しましょう。ついでにhttpsも許可しておきます。

設定アプリケーションのインストール


GUIでファイヤーウォールを設定できるアプリケーションをインストールします。DVDからインストールした場合はインストールされていると思いますが、LiveCDからインストールされた方はインストールされていないかもしれません。

yum install system-config-firewall


GUIでの設定
GNOMEデスクトップの[システム]→[管理]→[ファイヤーウォール]を開きます。ファイヤーウォール(iptables)を手動で設定している場合は、変更が失われる可能性があるが良いか聞いてきます。
もしあれば、/etc/sysconfig/iptablesをバックアップ(コピーで良い)しておいてください。
check

続いて、root権限(管理者権限)のパスワードが尋ねられるので入力しましょう。
password


画面が表示されたら下へスクロールし、
[WWW (http)]と[安全なWWW(https)]をクリックします。
firewall-http_ed


[適用]をクリックしてファイヤーウォールのルールを適用します。
(iptablesの再起動が自動で実行されます。)
firewall-apply_ed


CUIでの設定


CUIでの設定は直接iptablesをエディタで設定しても良いのですが、
setupコマンドで設定することも出来ます。
GUIの時と同様httpとhttpsを選択すれば良いのですが、[スペースキー]で有効にすることが出来るという点が分かりにくいかもしれませんね。
setup-firewall

setup-firewall-http


ついに表示!!


httpdが起動し、ファイヤーウォールでhttpとhttpsのプロトコルだけ許可したらブラウザのURLに

http://localhost

としてみましょう。
test-ok

のようにサイトが表示されたらOKです。

また、WebサーバーにしたPC以外のPCが家庭のLAN環境にある場合は、
IPアドレスをURL欄に入力してみましょう。
WebサーバーのIPアドレスは、

ifconfig

と入力して、

eth0 Link encap:Ethernet HWaddr 00:20:ED:21:B5:27
inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::220:edff:fe21:b527/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
RX packets:113503 errors:0 dropped:0 overruns:0 frame:0
TX packets:91159 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:116901832 (111.4 MiB) TX bytes:13817463 (13.1 MiB)
Interrupt:20 Base address:0xc000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:210 errors:0 dropped:0 overruns:0 frame:0
TX packets:210 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:56808 (55.4 KiB) TX bytes:56808 (55.4 KiB)

eth0inet addr:の後ろ、この場合ですと192.168.1.11です。
他のPCからWebサーバーへアクセスできるか試してみてください。
eth0は、場合によっては、eth1などともしくは無線LANの場合には、wlan0となっていると思われるので気をつけて。
また、携帯電話などからは192で始まるようなIPアドレスな場合はアクセスできませんのでご注意を。ルーターなしの場合は、携帯電話からでも見られるかもしれませんね^^

さて、ここまででとりあえず終了したいと思います。今後は、LAMP環境(Linux + Apache + MySQL + PHP)の構築、httpd.confの設定、Wordpressの導入などを考えております。また、ドメインの取得については筆者がサーバー用のマシンを持っていないので記事を書けるかわかりません。ヒントとしては、固定IPアドレスを持っている方はそのままドメインの取得を、持っていない(プロバイダに申請していない)場合は、ダイナミックDNSの設定、取得をすれば良いと思います。(その際は、httpd.confを設定しないといけませんが。)

とにかく、うまくtestページが表示されたでしょうか?
うまくいかないという方は、コメント、つぶやきへ。

参考資料:
Fedora11スタートアップバイブル
誰でもLinuxサーバーを超簡単に作れる本(DVD-ROM付) (日経BPパソコンベストムック)