スポンサーリンク

自宅サーバー構築手順(覚え書き)

スポンサーリンク
スポンサーリンク

■自宅サーバーで何が出来るの?

家にあるパソコンを自宅サーバーにすれば、ネットにつながるいろんな事が出来ます。

ホームページやブログを容量の制限なく自分の好きなように配信したり、自分専用のメールアドレスなんかも無限につくる事が出来ます。

ほかにもライブカメラにしたり、ファイルや写真、動画を保存しておいて外出先からアクセス出来るファイルサーバーにする事も出来ます。

使うパソコンも最新型の高機能なものは必要なく、24時間365日稼働させるのでかえって消費電力や発熱が大きなものや電動ファンの音などが大きなタイプのものより一昔二昔のものの方が適しています。

以前私は中古の安いノートパソコンで自宅サーバーをやっていた事もありました。

バッテリーも内蔵しているので停電の時にもサーバーが落ちなくてもいいかなと思っていましたが、ルーターなどの方が止まってしまうので結局サーバーも使えなくなってしまいました。

 

■自宅サーバー構築に掛かる費用は?、

・パソコン本体・・・私は小さなベアボーンキットにハードディスクとメモリを追加して作りましたので2万円ほどでした。

   中古パソコンを使えばもっと安く出来ます。

・OS・・・Windowsでもサーバーは出来ますが、安全性といろんなサーバーソフトがある事を考えてLinux(CentOS)で作りました。

   Windowsは有料ですがLinuxならOSも関連ソフトも無料で利用出来ます。

   少しだけ知識が必要になりますが、ネットで情報を調べながらやればなんとかなります。

   それに「Linuxで自宅サーバーやってんだよね」というだけでちょっぴり自慢出来ます(←ココ大事です(笑;

・USB接続のカメラ・・・ライブカメラをやる場合には、これも必要になります。

   Linuxでもドライバの心配のいらないUVC規格対応のもので今なら1000円から2000円くらいのものでも十分実用になります。

 

■この記事について

自宅サーバーにOSとしてLinuxを入れて各種サーバーを構築して、最終的にブログやライブカメラの配信をするまでの手順の抜粋を書いています。

9年間やってきたブログを一旦辞めて、あらたにテーマ毎の複数のブログで作り直すのにあたって、自宅サーバーそのものも一から構築し直したのでその時の手順の覚え書きです。

特に気をつける部分を枠囲いで書いています。

 

■ハードの組み立て

使っている自宅サーバー機自体は、以前のものをそのまま使います。

Shuttle の XS35V3L というベアボーン機種で、大きさは、252(奥行き)×38.5(幅)×162(高さ)mm、2.1kgと少し大きめのルーターや外付けハードディスクケース並で片手の上に軽く乗ってしまうサイズです。

homeserver3-01

省電力、省小スペースでCPUはファンレス仕様の静音マシンなのでサーバー機としては最適です。

ハードディスクには500GBのモノを搭載しています。

以前は動画データもこのマシンの中に保存して配信していましたが、今はYoutubeにアップしていますのでこれくらいの容量のハードディスクでも心配がなくなりました。

構築しているサーバーは、
 ・WEBサーバー ・・・ ブログ(WordPress)を導入して複数ブログを配信
 ・ライブカメラ  ・・・ 自宅監視用ライブカメラを配信
 ・メールサーバー ・・・ ブログなどで使うパーソナルメアドを、無数に作成可能
 ・FTP ・・・・・・・ サーバーのブログ用写真などをアップする以外に、出先からデータを取り出せるように
 ・SSH ・・・・・・・ 外出先から自宅サーバーのリモート操作用

 

今回は今までのハードをそのまま使うので新規組み立てはありません。

一応中を開けて結線がゆるんでいないか確認して、ホコリを払っておきました。

 

■OSの組み込み

OSとしてはLinuxの中でもサーバー向けのCentOS6.4を使用

CentOSのサイト(http://www.centos.org/)に入って、「Release Notes: CentOS Download: i386 最新版」からダウンロードします。

OS自体は「CentOS-6.3-i386-bin-DVD1.iso」のファイルをダウンロードしました。

このサーバー機には光学ドライブを搭載していないので、USBメモリにインストール用に作成したデータを書き込んでインストールします。

ダウンロードしたデータは3.8GBほどあるので、その倍の8GBのUSBメモリを用意します。

USBメモリに書き込んだデータからOSをインストールするにはそのままでは出来ないのでフリーソフトの「UNetbootin」を使います。

ソフトを立ち上げ、入力データとしてダウンロードしたDVD1.isoファイルを選び、出力先をUSBメモリにします。

書き込みの済んだUSBメモリには、さきほどのDVD1.isoファイルもそのままコピーします。

そのために二倍の容量が必要なのです。

 
自宅サーバー機のBIOS画面で第一起動元をUSBに設定して電源を入れます。

あとは通常のDVD版と同じようにしてインストールが出来ます。

 
CentOSのインストール時にどのタイプでソフトを組み込むか聞いてきます。

不要なものまで組み込むと、インストールも手間取りますし、起動後も動作が重くなります。

私は「DeskTop」タイプにして、オフィス関連と印刷関連はチェックを外してインストールしないようにしています。

 

■自宅サーバー機の各種設定とソフト導入

(1)ネット接続設定
  IPV4の自宅のネット環境に合わせて設定します。

  この段階でLAN内のIPアドレスを「自動」ではなく「手動」にして「192.168.1.***(***は任意)」に固定して設定します。

  その他デフォルトゲートやDNSを設定します。

 
(2)SELinuxの無効化

  CentOSは初期値からSELinuxが有効になっています。

  セキュリティ的には必要なのでしょうけど、自宅サーバー構築にはちと面倒になるので無効化しておきます。

  ※無効化の設定方法

 SELinuxの動作状況確認

 # getenforce

(表示が)Enforcing  → この場合は有効化されています。

  permissive と表示されれば無効

 

  一時的に無効にするだけなら、

 # setenforce 0

 

  起動時から無効にするには、

 # vi /etc/selinux/config

  でファイルを編集して

 SELINUX=enforcing

 のデータ部分を

 SELINUX=disabled

 に書き換えればOKです。

 

(3)ファイヤーウォールの必要ポートの開放

 初期値からファイヤーウォールは閉じられていますので、必要なポートを解放します。

 WEB系、メール系、FTP系などがありますが、面倒なら(あまりオススメではないですが)一旦ファイヤーウォール自体をすべて無効にしてしまい、各種サーバーの設定を行います。

 その後、必要なポートを残して再びファイヤーウォールを有効にします。

 こうすれば、各種サーバー機能を設定しているときに、ポートの問題で設定出来ないトラブルが防げます。

 
(4)ユーザーのグループ設定

 root管理者以外にユーザを登録してありますが、さらにほかにもメールアドレスを作るためにもユーザを追加登録しておきます。

 管理者権限でユ-ザー登録したら「プロパティ」でグループ属性に「apache」を追加しておきます。

 

(5)FTPサーバーの構築

 あらかじめ別のパソコンにダウンロードしてあるWordPressやphpMyAdminといったソフトや、設定内容を記録したテキストを他のパソコンから送り込んだり、運用開始後にブログに載せる写真を任意のフォルダーに一括アップロードする時などに使います。

# yum -y install vsftpd

でインストールします。

起動させるには、

# /etc/rc.d/init.d/vsftpd start

(再起動なら : # /etc/rc.d/init.d/vsftpd restart)

システム起動時から動かすには、

# chkconfig vsftpd on

 

(6)WEBサーバーの構築

 ブログやライブカメラの運用に必須のWEBサーバーサーバーを作ります。

# yum -y install httpd

でインストールします。

 

■DNSの設定

契約しているプロバイダに固定IPの設定があればいいのですが、ない場合は動的IPとなりIPアドレスが一定ではありません。

無料で契約出来るDNSサービスは各社ありますが、私は以前からDynamic Do! を利用しています。

これで動的IPでもサーバーを公開出来るようになります。

定期的に更新するには自分でDynamic Do! にアクセスするか、このブログの最後に書いたcron、crontabを使って自動更新させます。

 

■WordPressの導入

これについてはいろんな書籍やネット情報もあるので割愛します。

私は以前のブログはMovable Type でやっていましたが今はよりメジャーなWordPress に切り替えました。

WEBサーバーが出来ていれば、ホームページを公開するのは割と簡単です。

■WordPressに以前書いた記事を復活させる

今までやっていたブログの記事が2000弱、それに皆さんからいただいた多くのコメントなどを新しいブログでも引き継ぎたいと思っています。

しかしなんと!標準でインストールされるプラグインでは以前の記事をインポート出来ませんでした。

インポートしたい記事を選んで「インポート」をクリックしても、白い画面のままで本来表示されるはずの「投稿者を誰にしますか」画面が表示されないままでした。

  がーーーん!

今まで書いてきた2千近い数の記事がすべて復元出来ないのかと思って一瞬目の間がまっくらになりました。

諦めずにネットで探してようやく見つけたのが、「標準のプラグインを使わずほかのプラグインでやったらインポート出来た」という記事です。
http://yomon.dip.jp/word/scientific-linux/readymade-wordpress-importer/

私もいろいろ試しててみてうまくいったのが「ReadyMade WordPress Importer」というプラグインでした。

使い方は標準のプラグインと同じです。

これでうまくインポート出来てほっと一安心です。

 

■WordPressのマルチサイト化

一つのWordPressで複数のブログを「http://***/site1」「http://***/site2」などと後ろにサブディレクトリを付けて運営します。

今回は頻繁に更新するメインのブログのほかに、以前行ったスイス旅行の事だけに関連した専用ブログも一緒に管理します。

メインの「エバンストンの森から」のurlは、
http://greenleaf.ddo.jp/wp/

専門サイトの「スイス旅行記ブログのurlは、
http://greenleaf.ddo.jp/wp/switzerland/

としています。

参考書籍やネットの情報どおりに、
1)「wp-config.php」に
define(‘WP_ALLOW_MULTISITE’, true);
を追記、

2)管理画面で「ツール」「ネットワークの設定」

3)「ネットワークを有効化中」後、再ログイン

4)「wp-config.php」に指定されたコードを追記

5)「.htaccess」に指定されたコードを追記

これで複数サイトは作成出来ましたが、新規サイトや管理画面が表示出来ません。

調べてみると「httpd.conf」の「‹Directory “/var/www/html”›」の設定箇所の中にある、「AllowOverride none」のせいだとわかりました。
これを「AllowOverride All」にしてhttpdを再スタートさせれば表示されるようになりました。

 

■WordPressに初期段階でインストールしているプラグインは、

「ReadyMade WordPress Importer」
 上記に書いたように、WordPressでエキスポートしたデータ元にインストールしようとした時にはプラグインが必要になりますが、デフォルトで推奨されているプラグインではうまくインポートで出来ない時に、これを使えばうまく出来ました。

「Intuitive Custom Post Order」
 記事の並び順は自動で投稿日順になってしまい、変えようと思うと日付けを変更する必要がありますが、これを使えばドラッグアンドドロップで任意に変更する事が出来ます。

「PostPost」
 記事の投稿ごとに文末に定型のテキストデータ、たとえばブログランキングのバナーを設置する時に便利です。

「Count Per Day」
 アクセス解析のプラグインはいろいろありますが、表示される項目や日別のグラフなど私にはこれが一番見やすかったですね。

「Custom Query String Reloaded」
 トップページ、カテゴリー、アーカイブの各ページに表示される数は一律で決まってしまいますが、これを使えばそれぞれを個別に設定する事が出来ます。

 

■ライブカメラ

自宅から富士山の様子を流したり(わがやからは見えませんよ)、家のペットや熱帯魚の様子を流したり、あるいは外出時に留守宅の様子をチェックしたりするのに便利なライブカメラを構築します。

Linuxにも対応しているUVCのWEBカメラを用意します。

homeserver

使うソフトは「fswebcam」ですが、その前に必要なソフトをいれておきます。

# yum -y install gd

# yum -y install gd-devel

# yum -y install rpm-build

「fswebcam」をゲットしてインストールします。

# wget http://www.firestorm.cx/fswebcam/files/fswebcam-20070108-1.i386.rpm

# rpm -Uvh fswebcam-20070108-1.i386.rpm

画像が写るか確認

# fswebcam /home/***(自分の任意のフォルダー)cam.jpg

実際に運用する時用に画像の回転や赤い下線の削除、撮影時刻の写し込みの設定を行います。

画像の保存場所を例えば、
「/home/webcam/public_html/」とした場合の例です。

 ※ あらかじめ保存するフォルダーは作っておいてください。

これは、現在時点での画像をサイト上に表示させる時用のものです。

fswebcam -p YUYV –bottom-banner –line-colour ‘#FF000000’ -S 5 -r 352*288 –rotate=180 –font “/usr/share/fonts/ipa-gothic/ipag.ttf:14” /home/webcam/public_html/livecamera/live.jpg

先ほどのリアルタイムで流す画像を取得する以外にもう一つ、あとで過去に遡って画像を確認する保存用として、ファイル名を撮影日時にしたものを取得します。

fswebcam -p YUYV –bottom-banner –line-colour ‘#FF000000′ -S 5 -r 352*288 –rotate=180 –font “/usr/share/fonts/ipa-gothic/ipag.ttf:14” /home/webcam/public_html/livecamera/’date %Y%m%d_%H%M.jpg’;

 オプションの設定は、

  -p YUYV

  –bottom-banner  : bannerを下部に設置します

  –line-colour ‘#FF000000’ : バナーの上に表示される赤い線を消します

  -S 5 : 画像が安定して映ってから取得するために5フレーム経過後に実行します

  -r 352×288 : 画像の解像度を設定します

  –font “/usr/share/fonts/ipa-gothic/ipag.ttf:14″ : タイムスタンプで表示される文字のフォントとサイズを設定します

  –rotate=180 : 屋外用は駐車場の屋根に逆さまに取り付けたので画像を180度回転させます

  /home/webcam/public_html/livecamera/ : 画像ファイルの出力先フォルダーを設定します

  ’date %Y%m%d_%H%M.jpg’ : 画像ファイル名を設定します

fswebcam -p YUYV -r 640×480 –bottom-banner –line-colour ‘#FF000000’ -S 5 –rotate=180 –font /usr/share/fonts/ipa-gothic/ipag.ttf:14 /home/webcam/public_html/livecamera/livecam.jpg

 

これを自動で動かすためにcrontabに記述しようと思ったら、crondがインストールされていないのが判明!

cronについては、CentOS6から変更になっていて時刻設定がランダムで管理されているanacronで行われています。

これを従来からのcronに変更するには、まずcronie-noanacronをインストールします。

 # yum install cronie-noanacron

インストールが出来たらcronie-anacronは削除しておきます。

 # yum remove cronie-anacron

cronの起動確認
# /etc/rc.d/init.d/crond status
crond は停止しています

cron起動
# /etc/rc.d/init.d/crond start

 

一番簡単なライブカメラ用のサイトを作るには、

index.htmlに下記のように記述します。

‹html›
‹head›
‹title›ライブカメラ‹/title›
‹/head›
‹body bgcolor=#F0FFF0›
‹center›

‹table border=2 cellpadding=3 cellspacing=1 width=150›

‹TR vlign=”center” height=”20″›
‹td align=center bgcolor=#CC66CC›
‹font size=+1 color=#00008B›
ライブカメラ
‹/font›
‹/td›
‹/TR›
‹/table›
‹br›
‹table border=1 cellpadding=10 cellspacing=0›

‹TR vlign=”center”›
‹td align=center bgcolor=#FFFFFF›
‹img src=”live.jpg”›

‹/td›
‹/TR›
‹/table›
‹/center›
‹br›

‹/body›
‹/html›

これをアクセスするフォルダーに保存してurlにアクセスすればOKです。

http://greenleaf.ddo.jp/~webcam/livecamera/.html

 

以上、ざっと自宅サーバー構築の流れを書いてみました。

実はこんな記事でもしばらく経ってから自分で再度自宅サーバーを構築する時に役に立つことがあります。

そういう意味ではやはり自分向けの防備録ですね。

 

  

コメント

  1. ボウズライダーさんへ、
    以前は自宅サーバーをやってらっしゃったんですね。
    正直言って、ブログやメールなどだけなら
    プロバイダやブログ提供サイトを使った方が断然簡単だし安定しています。
    自宅サーバーやるのは、
    あくまで自己満足なのと容量制限がなく、ライブカメラなども安く出来るからです。
    今から少しだけでもやってみると新しい趣味になるかもしれませんね。

     

    大猫さんへ、
    自宅サーバーやろうとすると、どうしてもLinuxがメインになると思います。
    Windowsでも出来ますが制約が多すぎます。
    ウチのサーバーはかなり長くやっていますが、
    今のところは安定して動いています。
    以前、コストの面から企業で
    Linuxやオフィスソフトを入れたパソコンがはやったことがありましたが、
    デスクトップ機としては使いにくいでしょうね。

     

    60歳のリターンライダーさんへ、
    連絡が遅くなりましてすみませんでした。
    あれこれ作り直したりしていたので
    何度も変更のお知らせをするのも失礼かと思っていました。
    どうやらこれで落ち着きそうなので
    今後ともよろしくお願いします。

  2. お久しぶりです。
    新しいタイトルでブログ始めらたんですね。
    自宅サーバーだと色んなことができそうつなすが
    とても難しそうで・・・
    昭和60年頃に、はじめてパソコンを買った時から
    30年ほど経ちますが(ノ_<)進歩がないな〜
    また、時々立ち寄りますので宜しくお願いします♬

  3. Linuxさんをオススメとは知りませんでした・・・
    前の職場で使ってたOSがLinuxで、扱いづらい上によく凍死されてましたもので・・・
    (ただ単に古かっただけなんですけどね)
    そのうち自鯖がタブレットサイズになる時代が来るんでしょうかね(笑)

  4. おはようございます。
    自鯖の構築、興味深く拝見しました。
    止めてからもう何年も経ってるので、思い出しながら読ませてもらいました。

    以前はレンタルもしてたんですよ。
    そのメンテだけで結構な労力を使うことや、家業に専念したことで、思い切って止めてしまった次第です。
    でも時々惜しいことしたかな、って思うこともあります。
    なんせ、自由自在に出来ますからね。

タイトルとURLをコピーしました