ラズパイ3のセットアップ(8) (f) Webサーバーの複製

継続している転送は、215GBになりましたが、まだ継続しています。いい加減な管理と言われてしまいますが、元のデータ量を把握していません。転送が完了したら samba で共有サーバーに昇格させないといけません。
Web 公開に利用している PogoPlug E02 のサーバーですが、原因不明で時々ハングアップしてしまうので、セットアップ中のラズパイ3 の役割を代替機あるいは現役交代用に利用できればと考えています。しかし、解決が必要なちょっと高いハードルがあります。昔から公開している写真の機能だけなら問題がないのですが、新たに追加したこのブログ機能を WordPress で構成しています。
問題は、WordPress ではデータ内に自分自身のサーバー名を保持しているところが多数あり、単純にファイルをコピーして生成するとサーバー名に違いが出てリンク切れが随所に発生してしまうようです。完全に現役交代するならサーバー名も同一にできるので、その問題はなさそうですが動作検証等の公開前に最低限確認しなければならない操作の余裕が取れません。多分大丈夫だろうと考えての公開は怖すぎます。
何れにしても、元になる apache2 の設定を行い写真の公開機能をフルコピーして複製を作ることから始めます。

まずは apache2 と ruby のインストールを行います。ruby は写真を公開するサーバーサイド側で動的に HTMLを生成させるのに使用しています。

$ sudo apt install apache2 apache2-doc webalizer ruby

インストールするとブラウザからのアクセスには簡単な初期説明が表示されます。
Screenshot from 2016-08-31 22-26-34
すでに公開している写真データは、全てコピーが完了していますので、apache2 の初期説明に configuration layout の図が書かれていますが、必要な設定を確認しながらコピーしてサーバーの複製を行います。
一般に公開していないプライベートのパスワード付き暗号化通信の https: で使用するベーシック認証用のパスワードを格納しているファイルが /etc/apache2/conf/.htpasswd に置かれていますが、そのままコピーします。なお、ここからは作業性の問題で root ユーザーとして作業します。

$ sudo su -
# rsync -av /etc/apache2/conf  192.168.10.24:/etc/apache2/
sending incremental file list
conf/
conf/.htpasswd
sent 530 bytes received 39 bytes 379.33 bytes/sec
total size is 399 speedup is 0.70

できるだけ構成ファイルはデフォルトのままで進めたいと思いますが、デフォルトのキャラクタセットは UTF-8 として定義するため /etc/apache2/conf-available/charset.conf 内のコメント ‘#’ を除いて有効になるように変更します。
それと apache2 の起動時ログにエラー的な記録が残る対策とのことで、次の手順を追加しておきます。

# echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
# a2enconf fqdn
# systemctl reload apache2.service

モジュールを有効にします。

# a2enmod cgid ssl

すでに定義されていて稼働実績のある sites の定義を転送して、実情に照らして問題がないか見直します。

 
横道にそれますが、転送していた大量のデータは確保したファイル 300GB の80%を超えても先が見えません。一旦中止して、分散先を振り分けることにして 300GB ×3 として合計 900GB のエリアを確保して続きを転送させました。丸3日以上掛かって転送は終わりましたが、310GB を超えていました。分割して正解だったようです。52% 28% 25% の使用率になりました。理想的な分割になったと喜んでいます。
話を戻して apache2 の設定について続けます。

conf-enabled と sites-enabled のすみ分けが良くわかりませんが、純粋なコンフィグレーションと公開するサイトに関わるコンフィグレーションとで分けているのだろうと思っています。
conf-enabled については、先に修正した conf-available/fqdn.conf 以外は初期設定の内容を信じて特に手を加えません。サイトのコンフィグレーション /etc/apache2/sites-available/ については、稼働している公開サーバーから scpコマンドでコピーしました。
ポート :80 の http:// 初期設定 000-default.conf はそのままで問題なさそうです。ポート :443 の https:// 初期設定 default-ssl.conf についてもそのままで問題なさそうです。コピーしたサイトのディレクトリは次のようになっています。

# ls -l /etc/apache2/sites-available/
合計 36
-rw-r--r-- 1 root root 1332 7月 6 06:22 000-default.conf
-rw-r--r-- 1 root root 1646 9月 1 21:29 001-三田-public.conf
-rw-r--r-- 1 root root 6437 9月 4 21:17 default-ssl.conf
-rw-r--r-- 1 root root 218 9月 1 21:02 webalizer.conf
-rw-r--r-- 1 root root 372 9月 1 21:12 webcmd.conf
-rw-r--r-- 1 root root 2949 9月 4 17:22 三田-private.conf

webalizer.conf は、web のアクセスをグラフで表示する設定です。webcmd.conf は、ブラウザを利用してコマンドを実行させる家屋内でのみ利用できるツールです。webalizer の定義とブラウザからアクセスした場合の表示をサンプルとして次に示します。
Screenshot from 2016-09-04 22-00-21
webalizer を利用できるユーザーは定義を見ればわかるように、sunaomita と webadm だけとしています。
次のアクセス結果を見ると作成されたグラフで文字化けしています。今のネット世界では文字化けの起こらない UTF-8 が主流の文字コードとして認知されていますが、過去に主流だった UNIX や Linux では EUCコードが主流のコードとして使われていた時代が長く続きました。それを引き継いだままのソフトなので、手間を掛けないと修復できませんので目をつぶります。
Screenshot from 2016-09-04 22-01-19
続いて、一般公開するサイトの設定 001-三田-public.conf とプライベートサイトになる設定 三田-private.conf の一部を表示します。
Screenshot from 2016-09-04 22-38-50
Screenshot from 2016-09-04 22-39-27
定義ができたら定義を有効にする a2ensite コマンドで、各コンフィグを組み込みます。そして apache2 を再起動します。

# a2ensite 001-三田-public default-ssl webalizer webcmd 三田-private
# service apache2 restart

アクセスすると公開している web サーバーと全く同じ内容のコピーされた webサイトが表示できることを確認しました。
Screenshot from 2016-09-04 23-04-04

 
この続きは、いよいよブログとして公開している WordPress の複製ですが自信が無いです。ネットの情報を頼りにぼちぼちと進めますが、その前に共有サーバーとしての samba の設定が先になるのかと思っています。