- ブログネタ:
- Linuxに関する運用 に参加中!
私のページでは主にデスクトップ目的で記事を書いてきましたが、
ついにサーバー管理の記事に挑戦です。
今回は、Webサーバーを立てます。
httpdのインストール
まずは、apacheのインストールです。といってもapacheというパッケージ名はありません。
FedoraやCentOSでは、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]を選択し、
の赤い線で囲まれた箇所[強制]をクリックして、
[無効]とします。
表示のテスト
ここ迄来てWebサーバーが表示できるかチェックしてみましょう。
FirefoxやGoogle Chrome、Opera、w3mなどのURLアドレス欄に
http://localhost
と入力してみてください。
残念ながら、表示されません。
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をバックアップ(コピーで良い)しておいてください。
続いて、root権限(管理者権限)のパスワードが尋ねられるので入力しましょう。
画面が表示されたら下へスクロールし、
[WWW (http)]と[安全なWWW(https)]をクリックします。
[適用]をクリックしてファイヤーウォールのルールを適用します。
(iptablesの再起動が自動で実行されます。)
CUIでの設定
CUIでの設定は直接iptablesをエディタで設定しても良いのですが、
setupコマンドで設定することも出来ます。
GUIの時と同様httpとhttpsを選択すれば良いのですが、[スペースキー]で有効にすることが出来るという点が分かりにくいかもしれませんね。
ついに表示!!
httpdが起動し、ファイヤーウォールでhttpとhttpsのプロトコルだけ許可したらブラウザのURLに
http://localhost
としてみましょう。
のようにサイトが表示されたら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)
のeth0のinet 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パソコンベストムック)