サーバ構築備忘録

バーチャルホストを構築(完全に私的な備忘録)

LINEで送る
Pocket

まずは言い訳

普段でさえブレブレのブログですが、今日の記事はほとんどの方は読んでも意味が分からないと思います。

私は普段CentOSというものを使っているのですが、Raspberryにインストールしたraspbianは少し勝手が違います。

そのための備忘録です。

以前のサーバ構築備忘録と合わせれば、自宅でサーバを立てることが出来ます。

そうすればレンタルサーバを借りる必要が無くなります。

もちろんその代わりに24時間駆動のサーバを自宅で運用することになりますが(^^;)

友人にサーバの作り方を尋ねられたため、それならばこの備忘録を読んで何とかしろというわけでまとめてみました。

多分これだけでは不十分だとは思いますが、UNIX使いならばなんとかなるでしょう。

逆にこの程度のことも分からないのであれば素直にレンタルサーバを借りなさいと言うところです。

DNSサーバに登録

raspbianではDNSサーバとしてdnsmasqを利用しているが、これは /ete/hostsを見て名前解決をしてくれる。

bindと違って特別な設定ファイルは必要ない。

そこで、/etc/hostsに
192.168.11.100 www.simple-server.net
192.168.11.100 www.simple-server.site
と記入しておく。

Webサーバの設定

目標:www.simple-server.netとwww.simple-server.siteの2つを1台のRaspberryでバーチャルホストとして処理する。

Webサーバはapache2を使っている。
raspbianはDebian系なので設定ファイルは /etc/apache2/ の下にある。
Apache2自体の設定はいつもと一緒なので省略し、バーチャルホストに関しての設定のみ記録。

バーチャルホストは /etc/apache2/site-available/ の下にFQDN毎に設定ファイルを作成する。
うちの場合、
/etc/apache2/site-available/net.conf
/etc/apache2/site-available/site.conf
を作成する。
1から作ると大変なので/etc/apache2/site-available/000-default.confをnet.confにコピーして次のように変更する。
ServerName www.simple-server.net
ServerAdmin kumakichi@www.simple-server.net
DocumentRoot /data/www-net/html
これでwww.simple-server.netへのリクエストは/data/www-net/htmlの下の内容で答えるようになる。

同様にsite.confにコピーして次のように変更する。
ServerName www.simple-server.site
ServerAdmin kumakichi@www.simple-server.net
DocumentRoot /data/www-site/html
ServerAdminは管理者情報なのでとりあえず同じにしておく。
データを置くディレクトリに関する設定は/etc/apache2/apache2.confに書いておく。
<Directory /data/www-net/>
 Options -Indexes
 AllowOverride All
 Require all granted
</Directory>

<Directory /data/www-site/>
 Options -Indexes
 AllowOverride All
 Require all granted
</Directory>
といった感じ。
ここまで終わったらバーチャルホストを有効化する。

> sudo a2ensite
…/etc/apache2/site-available/ の下にある設定ファイル名を選択できるのでnetを入力
これで/etc/apache2/site-available/net.conf から /etc/apache2/site-enableにリンクが張られる。
同様に
> sudo a2ensite
でsiteを入力
この2つでsite-availableの下にあるnet.confとsite.confがapache2に読み込まれるようになりバーチャルホストの準備ができる。

また初めから有効化されているデフォルトを無効化する。
> sudo a2dissite
…000-defaultを入力
で/etc/apache2/site-enable/000-default.confが削除され、000-defaultに書いてあった
DocumentRoot /var/www/html
といった設定が読み込まれなくなる。

ここまで来たらnet.confとsite.confで指定した /data/www-net と /data/www-site を作る。
> sudo mkdir /data/www-net
> sudo mkdir /data/www-net/html
> sudo chown www-data:www-data /data/www-net/html
> sudo chmod 775 /data/www-net/html
> sudo mkdir /data/www-site
> sudo mkdir /data/www-site/html
> sudo chown www-data:www-site /data/www-site/html
> sudo chmod 775 /data/www-site/html
/data/www-net/test-net.html
/data/www-site/test-site.html
を作っておく。
> sudo service apache2 restart
をしてから別のネットワークにあるPC(まだ同じサブネットにあるクライアントからは名前解決が出来ないので別のネットワーク上にあるPC)のブラウザで、
http://www.simple-server.net/test-net.html

http://www.simple-server.site/test-site.html
で先ほど作っておいた内容が表示されるか確認。

ここまででWebサーバの設定は完了(のはず)

DHCPサーバの設定

今まではraspberryと同じサブネットにはPCがいなかったが、ちょっとした都合でPCを同じサブネットに入れることに。
raspberryは外とつながるのにCATVを利用しているが、今までは有線専用のルータを使用していた。
今回はPCをサブネットに入れるためにルータを無線LAN対応のルータに交換。
当然だが、今までのルータと同様に80番ポートなどをポートマッピングする。
ついでにルータのDHCPサーバ機能を使ってPCにIPアドレスを割り当てようと思っていたがここで問題が。
ルータのDHCPサーバ機能ではDNSサーバはルータ自身のIPアドレスを通知するだけで任意のアドレスを指定することが出来ない。
(メーカーに確認済み。この機能を持つルータは販売していないとのこと。)
今までIPアドレスは固定で運用してきたため、今回初めて気が付いた。
CISCOのルータやWindows Server、UNIXのDHCPサーバではオプションとしてDNSサーバのアドレスを指定出来るのは当然のことなので少しビックリ。
(やはり安物はそれなりかorz)
といったわけでルータのDHCPサーバ機能は使えないのでRaspberryにDHCPサーバ機能を持たせることにする。
最近はdnsmasqを使う方法もあるようだが、やはり専用のサービスを利用した方が問題が起きた時に対応しやすいため、isc-dhcp-serverを利用する。
> sudo apt-get update
> sudo apt-get install isc-dhcp-server
 

/etc/dhcpcd.confに
interface eth0
static ip_address=192.168.11.100/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1
と書いてあるか確認する。(自分で書いたのかもしれない!?)

/etc/dhcp/dhcpd.conf に
authoritative;
subnet 192.168.11.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.11.2 192.168.11.20;
option routers 192.168.11.1;
option domain-name "simple-server.net";
option domain-name-servers 192.168.11.100;
option broadcast-address 192.168.11.255;
option subnet-mask 255.255.255.0;
}
と記述する。(authoritative; はもとからあるのでコメントを外す)

/etc/default/isc-dhcp-server に
interfaces = "eth0"
と記述する。

これで準備が出来たので
> sudo systemctl start isc-dhcp-server 
で起動してみる。
エラーメッセージが出ないようならば、他のPCからIPアドレスを取得できるか確認する。

Windowsであれば、コマンドプロンプトから
> ipconfig /release
> ipconfig
> ipconfig /renew
> ipconfig /all
としてIPアドレスやオプションが指定されているかを確認する。

で、問題なければ再びraspbianで
> systemctl enable isc-dhcp-server
として、自動起動するようにする。

※注記
Raspberryを再起動するとdhcpサーバが動かなくなる。
どうやらeth0へのIPアドレスの割り当てとisc-dhcp-serverのサービス開始のタイミングに問題があるらしい。
/etc/init.d/isc-dhcp-server の
start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \
        --exec /usr/sbin/dhcpd -- \
        -q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES
の前に sleep 5 を追記してサービス起動を遅らせるようにする。

これでDHCPサーバの設定は完了。

Raspberryと同じサブネットにあるPCのブラウザでwww.simple-server.netとwww.simple-server.siteの両方が表示できることを確認して今回の作業は終了。

WordPressのインストール

MySQLは当然ながらバーチャルドメインがいくつあってもサービスは1つ。



でインストール済み。

/data/www-net/html



/data/www-site/html

のそれぞれの下にWordPressを展開し、いつも通りの手順でインストール。

その際にwp-config.phpで指定するデータベース名をwww-netとwww-siteで別にする。

秘密鍵も別にする。(当然)

自宅運用なのでユーザ名は同じでも問題ない。

これでWordPress自体はインストールされるので、いつも通り育てていけばよい。

もしもほかのドメインから引っ越してくるのであれば、Duplicator というプラグインを使う。

記事を一括削除するには、WordPress Database Reset というプラグインを使う。

 

とりあえず今回の備忘録はここまで。

 

おまけ

備忘録におまけは要らない?

確かにそうなのですが、まぁ思い出の備忘録という事でご勘弁をm(__)m



我が家では金曜日はワンディッシュがルール。

そのため、金曜日はカレーや焼きそばの出番が多いです。

今夜もいつも通りカレー(バーモントカレーの甘口)を作りました。

今日のカレーはシメジ、マイタケ、ヒラタケ、エリンギといったキノコをメインに、レンコンをたっぷりとにんじん、鶏もも肉、昨日の残りの小松菜も入っています。

もちろん、玉ねぎもたくさん入れました。

カレーには付き物の福神漬けとらっきょうも添えておきました。

いつもならばらっきょうは自家製なのですが、昨年漬けたものを食べきってしまったので市販品です(T.T)

これだけだとあまりにもさびしいのでこんなものを用意しました。



かなり珍しいものだと思うのですがパクチーの鉢植え(?)です。

外側からちぎって食べるものだそうです。(ちぎった後にもう一度生えてくるかは不明です。)

これで198円。次女を覗いた家族3人で食べてもかなりの葉っぱが残っています。

しかしながら私にはまだ刺激が足りません。

そんなときにはこれを使います。



ホットガラムマサラです。

これは辛さとともにスパイスの強い刺激を加えてくれます。

 

今日の夕飯はこのようなところです。

 

全く誰のための記事なのやら...

LINEで送る
Pocket

ランキングリンク

ランキングに参加しています。応援クリックお願いします。
にほんブログ村 その他生活ブログ 断捨離へ

-サーバ構築備忘録
-,