Friday,November 11

GCPでウェブサーバ構築(こうちく)チャレンジ・5【(えら)んでよかったDebian】 (6 photos)

GCPでウェブサーバ構築(こうちく)チャレンジ、5ログ()です。
前回(ぜんかい)は「GCPにはFTPサーバはいらない」いうジェネレーションギャップに(おどろ)き、WinSCPにてGCPのインスタンスとファイル転送(てんそう)ができるメドを()てたところまでのお(はなし)でした。

1.apacheのドキュメントルート

さて。
いよいよウェブサーバーの本体(ほんたい)、apaheの設定(せってい)をしてまいります。

デフォルトのままでも使(つか)えるには使(つか)えるのですが、デフォルトのままだとセキュリティに(あま)さが(のこ)るウェブサーバーとなってしまいます。

apaheは自由(じゆう)()(たか)いウェブサーバーで設定(せってい)次第(しだい)でどうにでもなります。そこで、デフォルトを使(つか)わないウェブサーバーの設定(せってい)目指(めざ)してみたいと(かんが)えています。

apaheは基本(きほん)(てき)に、アクセスが()たら特定(とくてい)のファイル情報(じょうほう)公開(こうかい)する、という(はたら)きをします。この特定(とくてい)のファイルまでのパス(道筋(みちすじ))を「ドキュメントルート」と()び、apacheの設定(せってい)(おお)きな(はしら)のひとつが、ドキュメントルートを(さだ)めることです。apacheはデフォルトでもドキュメントルートが1(ほん)存在(そんざい)するので、このままでもウェブページ(html)さえ設置(せっち)すれば外部(がいぶ)から閲覧(えつらん)することができます。

GCPでウェブサーバ構築チャレンジ・5【選んでよかったDebian】_sb_01.png

デフォルトのapacheのドキュメントルート(イメージ)


これはあくまでイメージです。

スタジオムーンリーフでは、将来(しょうらい)(てき)に1つのIPアドレスで複数(ふくすう)のドメインにアクセスさせる「マルチドメイン」を(かんが)えています。apacheはデフォルトの設定(せってい)利用(りよう)したマルチドメインの設定(せってい)可能(かのう)になっています。「マルチドメイン」「ドキュメントルート」で検索(けんさく)できるapacheの設定(せってい)方法(ほうほう)はほとんどデフォルトの設定(せってい)利用(りよう)したものです。

GCPでウェブサーバ構築チャレンジ・5【選んでよかったDebian】_sb_02.png

デフォルトの設定(せってい)利用(りよう)したapacheのマルチドメイン(イメージ)


しかし、この状態(じょうたい)ではデフォルトの設定(せってい)(のこ)ったまま、つまりセキュリティの(あま)さが(のこ)ったままです。

スタジオムーンリーフでは、デフォルトの設定(せってい)使(つか)わず、なおかつマルチドメインに対応(たいおう)した設定(せってい)目指(めざ)すことにしました。

イメージとしてはこうなります。

GCPでウェブサーバ構築チャレンジ・5【選んでよかったDebian】_sb_03.png

目指(めざ)設定(せってい)のイメージ


(あら)たなドキュメントルートを設定(せってい)することになるわけです。

2.RedHat(けい)とDebian(けい)でapacheの構造(こうぞう)(ちが)

ここからはもっと専門(せんもん)(てき)なお(はなし)になります。
参考(さんこう)にしたのはこちらのページ。

Debian(Wheezy)でのApacheバーチャルホスト設定(せってい) サブドメインの(つく)(かた)
http://trip.kobanza.me/debian/apache/virtualhost/

RedHat(けい)のapacheを設定(せってい)するなら「httpd.confを~」ということになるのでしょうけど、Debian(けい)のapacheは構造(こうぞう)がちょっと特殊(とくしゅ)です。

Debian(けい)のapacheは /etc/apache2/sites-available/ 直下(ちょっか)にドメインごとの設定(せってい)ファイルを定義(ていぎ)します。さらにDebianにはa2ensiteというコマンドがあり、それを使(つか)って /etc/apache2/sites-available/ に設定(せってい)ファイルへのシンボリックリンクを()ることでその設定(せってい)有効(ゆうこう)にすればOK。

GCPでウェブサーバ構築チャレンジ・5【選んでよかったDebian】_sb_05.png

Debianのapacheは /etc/apache2/sites-available/ を利用(りよう)します



3.Debian(けい)apacheのバーチャルホスト設定(せってい)

(うえ)紹介(しょうかい)したページのほぼそのままをやります。
(おお)ざっぱに手順(てじゅん)はこう。


1. /etc/apache2/sites-available (ない)設定(せってい)ファイルを作成(さくせい)
2. a2ensite コマンドで作成(さくせい)した設定(せってい)有効(ゆうこう)にする
(/etc/apache2/sites-enabled (ない)にシンボリックリンクが作成(さくせい)される)


コピペで(もう)(わけ)ありませんが、こういうことだそうです。ドメインごとに設定(せってい)ファイルを(つく)れば(つく)っただけ反映(はんえい)される仕組(しく)みになっているようで、なんてラクチン。
ドメインを解除(かいじょ)したいときは、ディレクトリのなかから設定(せってい)ファイルを削除(さくじょ)するだけではダメ。設定(せってい)無効(むこう)にするための a2dissite コマンドを()必要(ひつよう)があるとのことです。


a2ensite ...指定(してい)した設定(せってい)有効(ゆうこう)にする
a2dissite ...指定(してい)した設定(せってい)無効(むこう)にする


ではまず、/etc/apache2/sites-available/ に移動(いどう)して…、あとでちゃんと動作(どうさ)確認(かくにん)できるように000-defaultの設定(せってい)無効(むこう)にしておきます。


sudo a2dissite 000-default


須藤(すどう)さんの(ちから)()りなきゃコマンドが(とお)りませんでした。
(※sudoコマンドを「須藤(すどう)さん」と()ぶのがマイブーム)

では、テスト(よう)ドメインの設定(せってい)ファイルを作成(さくせい)することにしましょう。
(うえ)紹介(しょうかい)しているページではexample.comとしてファイルを作成(さくせい)していますが、拡張子(かくちょうし)が.confでないと設定(せってい)有効(ゆうこう)にするa2ensiteコマンドが(とお)らなかったので、拡張子(かくちょうし)は.confにしておいたほうがいいです。

さらに、このままでは()()権限(けんげん)のないディレクトリを(さわ)ることになるので、またしても須藤(すどう)さんのお(ちから)()ります。

したがって、こうして設定(せってい)ファイルを()()みます。


sudo vi example.conf

viコマンドは、サーバ(じょう)にあるテキストエディタを起動(きどう)するコマンドです。


ほとんど真似(まね)っこになりますが、今後(こんご)のために設定(せってい)ファイルを作成(さくせい)します。
今後(こんご)はこれを調整(ちょうせい)すればいいわけですからね。

GCPでウェブサーバ構築チャレンジ・5【選んでよかったDebian】_sb_08.png

テスト(よう)設定(せってい)。ServerAdminは適当(てきとう)です。ServerNameはインスタンスの外部(がいぶ)IP


設定(せってい)ファイルを保存(ほぞん)したら、設定(せってい)()うようにドキュメントとログファイルを格納(かくのう)するためのディレクトリを(つく)ります。


sudo mkdir /var/log/apache2/test
sudo mkdir /var/www/test


ここでも須藤(すどう)さんのお(ちから)をお()りしました。
須藤(すどう)さまさまです。

そして、/var/www/test/ 直下(ちょっか)適当(てきとう)(つく)った index.html を(ほう)りみました。
TITLE「テストページ」BODY「へのへのもへじ」と()いただけのindex.htmlです。
(WinSCPを使(つか)いました。viで記述(きじゅつ)してもよかったかもしれません)

設定(せってい)有効(ゆうこう)にして、


sudo a2ensite example.conf


apacheを起動(きどう)


sudo apachectl start


ブラウザで確認(かくにん)すれば…。
はいっ!

GCPでウェブサーバ構築チャレンジ・5【選んでよかったDebian】_sb_09.png

インスタンスの外部(がいぶ)IPでアクセス。TITLE「テストページ」BODY「へのへのもへじ」がちゃんと表示(ひょうじ)されました。


おおっ!!
デキター!

ドメインの(かず)だけ設定(せってい)ファイルを(つく)ればいいというのは、直感(ちょっかん)(てき)でわかりやすいです。マルチドメインまでの距離(きょり)がぐっと(ちか)くなったような()がします。Debianを(えら)んでよかったと(おも)いました。

ドキュメントルート(バーチャルホスト)の設定(せってい)方法(ほうほう)もわかったところで、次回(じかい)はPerlCGIの設定(せってい)()めていきたいと(おも)います。

4.まとめ


Debianバーチャルホストの設定(せってい)

1. /etc/apache2/sites-available (ない)設定(せってい)ファイルを作成(さくせい)
2. a2ensite コマンドで作成(さくせい)した設定(せってい)有効(ゆうこう)にする
(/etc/apache2/sites-enabled (ない)にシンボリックリンクが作成(さくせい)される)


a2ensite ...指定(してい)した設定(せってい)有効(ゆうこう)にするコマンド
a2dissite ...指定(してい)した設定(せってい)無効(むこう)にするコマンド

****.confの書式(しょしき)

<VirtualHost *:80>
ポート80でアクセスを()ける場合(ばあい)はこう

ServerAdmin
サーバ管理(かんり)(しゃ)のメールアドレス

ServerName
サーバのドメイン。ドメインの名前(なまえ)解決(かいけつ)をする場合(ばあい)、ここに()かれた名前(なまえ)適用(てきよう)される。IPアドレスでのアクセスの場合(ばあい)は、IPアドレスを記述(きじゅつ)する。GCPのインスタンスであれば外部(がいぶ)IP。

DocumentRoot
ドキュメントルートを記述(きじゅつ)。デフォルトは /var/www/html/ 。
それ以外(いがい)でもぜんぜんかまわないらしい。

<Directory *******>
ドキュメントルートとおなじ場所(ばしょ)
内部(ないぶ)記載(きさい)については調整(ちょうせい)する必要(ひつよう)がある。

ErrorLog **********
エラーログの保管(ほかん)場所(ばしょ)。ドメインごとにディレクトリを(つく)ると(わか)りやすい。

LogLevel warn
あっ、しまった。()(わす)れた。でも(うご)いたけど。
あとでこっそり()()しておこう…。

CustomLog ****** combined
アクセスログの保管(ほかん)場所(ばしょ)。エラーログと(おな)じくドメインごとにディレクトリを(つく)ると(わか)りやすい。

以下(いか)()(うつ)しとなりますが。

404にリダイレクト

存在(そんざい)しないドメインにアクセスがあったとき、一番(いちばん)うえの設定(せってい)ファイルが優先(ゆうせん)(てき)表示(ひょうじ)される。よって、00-404.confなど404エラーにリダイレクトする設定(せってい)ファイルを(つく)って有効(ゆうこう)()しておくと便利(べんり)

00-404.confの中身(なかみ)(いち)(れい)

<VirtualHost *:80>
ServerName dummy
Redirect 404 /
</VirtualHost>


wwwあり・なしでリダイレクト

<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / http://example.com/
</VirtualHost>

こんな書式(しょしき)
意図(いと)した(うご)きをしないようなら、ServerNameとRedirectを()()える。




≫ NEXT_LOG GCPでウェブサーバ構築(こうちく)チャレンジ・6【Hello World!!】(7 photos)

≪ PREV_LOG GCPでウェブサーバ構築(こうちく)チャレンジ・4【SCPはあっさり風味(ふうみ)(8 photos)

PAGE UP

Google+

スタジオムーンリーフ(2005年1月開設/Since 2005)
代表者:野口 卓洋(Takuhiro Noguchi)
Add:356-0006 埼玉県ふじみ野市霞ヶ丘3-1-22-504

Twitter:@StudioMoonLeaf
Facebook:facebook.com/noguchi.takuhiro


©2017 STUDIO MOON LEAF ALL RIGHTS RESERVED.