自宅サーバーのアイディア


自宅サーバーのアイディア

転勤に伴い、通勤時間が長くなったので暇つぶし用に自宅サーバーを立ててみた。そのときに考えたこととかを記してみる。 僕がいま立てているのは、完全自分用のサーバーであり、他人からのアクセスは想定していない。これが結構面白いのさ。

便利な自宅サーバー

自宅サーバーの構築は実は簡単で、

  1. パソコンにLinuxインストール。(apacheはたいてい勝手にインストールされる)
  2. ルーターなどでインターネット接続している場合には、ポート80番をそのパソコンのIPに向ける

以上でhttpdは構築完了である。外部からプロバイダから割り当てられたIPをブラウザから打ち込めば、apacheのテストページが見れるはず。あとは好きにDocumentrootを書き換えればよい。

これだけでも実は充分使える

携帯からのアクセスを考えた場合、自分用のメモをドキュメントルートに置いておけば、どこからでもそれを携帯電話から参照することができる。

グローバルIPをどこかに

ただ、問題はどうやって携帯から自宅パソコンに割り当てられたIPを知ればよいのか、ということ。普通はDDNSとか使う。しかし、自分用のサーバーなので自分だけがどうにかして知ればよい。というわけで、契約しているプロバイダから割り当てられるいわゆる「ホームページ」にIPアドレスを自動アップロードするスクリプトをちょこちょこっと書いた。ここで必要なのは以下の知識。

  1. ほんの少しのシェルスクリプトの知識
  2. ftpクライアントをコマンドラインで動かす方法
  3. cronの使い方(自動でスクリプトを回す方法)

ここまで来れば

後は本当に自由自在。apacheの設定も好き勝手にやれる。ちなみに僕は全てのディレクトリをOptionsAll?なんて言う普通は絶対に使わないであろうオブションをhttpd.confで記載している。ただ、さすがにこれは怖いので全ディレクトリに認証をつけている。


さてここで。

たいていはここで手詰まりになる。「自宅サーバーを設置したは良いけれども、何を公開すればよいだろうか」という人が非常に多いように見受けられる。で、大抵は「自宅サーバーで、この自宅サーバーを公開するまで苦労した設定等」の話が多くなる。ある意味、これはやむを得ない、というか必然であろう。

割り切りが必要

自分の場合には完全に割り切っている。つまり完全自分用なのだ。自分しか見ない。(そもそも全ページに認証をかけているわけだし)自分しか見ないということは、実は自由度を上げることになる。たとえば、新聞社のページから丸々コピーして他人に公開することは、これは著作権法的に問題があると思う(余談だがインターネットの慣例からは全然問題のない行為だとも思う。つまりコピーされたくなければ公開するな、の精神)しかし、自分しか見ないページに自分のサーバーに自分がコピーするのはローカルのPCにダウンロードするのと実質何も変わらないから、これは著作権法的に全く問題がないと思う。 (僕は法律の専門家ではないから、「いや、それでも著作権法違反だ」と言われるかもしれない。でも、ローカルにダウンロードすることがいけないことならばそれは法律の方がおかしいのである。と言う僕の解釈)

シェルスクリプトかperlとか何でも

シェルスクリプトやperlなど、何でも良いから1つある程度のテキスト操作ができる言語をちょっとだけ習得しておくと、さらに自宅サーバー構築が楽しくなる。

  • 当日の天気を(tenki.jpのhtmlソースから拝借して)表示
  • 新聞記事を(新聞社のhtmlソースから拝借して)表示
  • 携帯用のページを(自動で)作成 など、動的にhtmlが作れるようになれば、自宅サーバーを立てて良かったと思える(はず)。

さらに、自分用にメールサーバーも立ててみる

「自分用メールサーバー」とはずいぶん変な感じだけれども、メールサーバーを立てるとたとえば新聞記事を毎日定刻に(しかも自分の選んだ記事のみ)をサーバーから自動送信させることも可能。 あるいはある種のメールを受け取ったら自動で記事を(自分の携帯へ)送信させる、と言うことも可能である。

ただ、メールサーバー立てはちょっと敷居が高いので、MUAに精通しておいて、サーバーはプロバイダなどの外部サーバーに任せる、というのがラク。メールを使ったスクリプトでは

  • 毎朝主要新聞の社説を携帯に送信(社説が重ければコラムでも)スクリプト
  • 携帯から要求メールを送ると、ある種の店の女性の本日の出勤状況がわかるスクリプト

と言うのをつくって実稼働したことがある。特に後者のスクリプトは鼻血が出るほど便利であった笑