VMware + Debian jessieでウェブサーバ その3
投稿日: 投稿者:ktm@s
いよいよApache2.4をインストールする。
この設定が完了すると、とりあえずの目標は達成したことになる。
続き物なので趣旨や準備などを確認したい場合はこちらを先に読んで欲しい。
VMware + Debian jessieでウェブサーバ その1
目次
事前の準備
Apache2をインストールする前にDHCP固定リースとポート開放をやっておく。
DHCP固定リースは結局のところ必要になるからやった方が良いと思うが、ポートに関しては外部に公開するときに設定してもよいだろう。
スポンサーリンク
DHCP固定リース
大体の家庭ではルータから端末ごとにプライベートIPアドレスが割り振られていると思うけど、これが毎回変わるようでは、外部に公開はおろか、自分で使うにしてもかなり不便になる。
まずは毎回決まったプライベートIPアドレスをもらえるように設定する。
まずは現在のプライベートIPアドレスを調べてみる。
inet addrの値を見ればよい。
テスト環境では192.168.10.9だった。
ifconfig -v eth0|grep inet
次に固定リース設定を行うために、NICのMACアドレスを取得する。
(なんとなーく隠してあるけど赤で囲った範囲全部だよ)
dmesg|grep eth0
ルータの設定画面にアクセスして、このMACアドレスはこのプライベートIPアドレスでお願いします!的設定を行う。
設定の呼び名も設定方法もルータによって違いすぎるので説明は省く。
そもそもルータのアドレスがわからない場合は、Windowsマシンの方でコマンドプロンプトを開いて「ipconfig」と打てば「デフォルトゲートウェイ」というのが出てくるのでそれだ。
テスト環境ではルータが192.168.10.1で、既に1台のPCが192.168.10.2に固定設定済み。
流れ的にも若い順番で固定したいので、192.168.10.3に設定することにした。
ルータ側で設定が終わったらネットワークの再起動をしよう。
何も考えずにrebootしてしまったけど、今みたら/etc/init.d/内にnetworkingというのがあるので、おそらく以下でいける気がする。
/etc/init.d/netwoking restart
ネットワークの再起動が終わったら再度プライベートIPアドレスを確認してみよう。
無事設定したアドレスになっていれば設定は問題ないと思う。
ifconfig -v eth0|grep inet
ポート開放
サーバを外部に公開したい、つまり世界中の皆様に見ていただきたい場合はポート開放も行う。
Apacheの設定でポートを変更する予定がなければTCPの80番を開ければよい。
変更予定の場合は予定のポートを開放しよう。
この設定もルータによって様々なので具体的には書かないが、前項で固定にしたプライベートIPアドレスと開放したいポート番号を入力してどうたら~というのが定跡の流れだ。
お外から来た人がポート80へ繋ぎたがってたら、ルータさんが指定したプライベートIPに投げてくれるみたいな設定だね。
具体的に説明しようがないのでこの辺で。
Apacheのインストール
ここからの設定よりここまでの設定の方が面倒だった人も多いかもしれない・・・。
最後にApache2を再起動して一括適用する形にしているけど、部分部分で変更確認したい人は小まめにApache2を再起動してよい。
/etc/init.d/apache2 restart
Apache2.4をインストールする
WorkerとPreforkがあるけど今回はPreforkをインストールする。
(たしかapt-get install apache2みたいにしたらWorkerが入っちゃうんだっけかな)
apt-get -y install apache2-mpm-prefork
インストールが完了したらホスト側のPCでブラウザを起動して、先ほど固定設定をしたプライベートIPアドレスをアドレスバーに入れてみよう。
It Works!っておなじみのページが出たらApache2はちゃんと稼動してる。
ポート80を解放した人はこの段階で世界に公開されている。
Apache2.4の初期設定
起動が成功したところで設定に移っていく。
設定する項目は以下の通りで、全体的に/etc/apache2/以下に設定ファイルが存在する。
- 文字コードの設定
- 過度な情報を渡さない設定
- ポート変更設定
文字コードの設定は/etc/apache2/conf-available/charset.confを編集する。
UTF-8をデフォルトにする設定がコメントアウトされているので外す。
vi /etc/apache2/conf-available/charset.conf AddDefaultCharset UTF-8
過度な情報を渡さない設定は、エラーページなどにサーバのバージョンを書かなかったり、クライアントに送り返す情報を減らしたりする設定。
vi /etc/apache2/conf-available/security.conf ServerTokens OS → Prod #クライアントに送り返すサーバ情報を最低限にしておく ServerSignature On → Off #サーバが生成するドキュメントのフッタに情報を載せない
ポート変更する場合、/etc/apache2/ports.confを80から8080など任意の番号に変更する。
#Listen 80 Listen 8080
公開するフォルダを変更する設定
現状ではApache2デフォルトの/var/www/内が公開されているけど、場所的に不便だし共有設定したフォルダを公開したいので変更する。
/etc/apache2/sites-available/内に000-default.confという設定ファイルが存在するんだけど、判りづらいし雛形として置いておきたいのでktms.confとして設定していく。
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ktms.conf vi /etc/apache2/sites-available/ktms.conf ServerAdmin 連絡の付くメールアドレス DocumentRoot /home/ktms/share
ktms.confを有効にして、000-default.confを無効にする
a2ensite ktms.conf a2dissite 000-default.conf
apache2.confの設定
ここまでの設定変更を行った後にApache2を再起動すると403エラーになる。
/etc/apache2/apache2.confも合わせて変更してやる必要があるからだ。
<Directory /var/www/>みたいな行があるので、これをktms.confのDocumentRootに変える。
index.htmlなどが存在しないときにファイルリストを出力したくないのであれば、OptionsのIndexesを削除する。
AllowOverRideはNoneからAllに変えたらよいだろう。
FollowSymLinksは残すように。
vi /etc/apache2/apache2.conf <Directory /home/ktms/share/> Options Indexes FollowSymLinks AllowOverride All Reguire all granted </Directory>
Apache2.4の再起動と動作確認。
Apacheを再起動させてこれまでの変更を反映させる。
/etc/init.d/apache2 restart
エラーもなく再起動できたら特に問題は起きていないはず。
仮にエラーでApacheが起動しない場合は設定ファイルの書き間違いだね。
ホストOS側の共有フォルダに何かファイルを入れたら、以下のURLでアクセスできるはずだ。
http://プライベートIPアドレス/共有フォルダに入れたファイル名
外部に公開した場合は、ポート開放が正常に出来ていれば、以下のようなURLになる。
自分のグローバルIPアドレスがわからない人は、これ。
http://グローバルIPアドレス/共有フォルダに入れたファイル名
ポート変更した場合はIPアドレスの後ろに:ポート番号をつけなければならない。
http://プライベートIPアドレス:8080
http://プライベートIPアドレス/ みたいなアドレスは、:80が省略された形なわけだね。
つまり、このような形でもアクセスできることになる。
http://プライベートIPアドレス:80/
あとがき
Apache2.4の簡単な設定が終わって、当初の目標は達成できたことになる。
phpやMySQLのインストールやドメインとDDNSの設定などもオマケとして書けたらな思う。