自宅サーバー
 PC3で簡単なサーバーを立ち上げましたたが、さらに整ったものにしました。

サーバーの種類  ライブカメラ  音楽配信  iTunesサーバー   データベースサーバー   ファイル共有

使用したコンピュータ
PC2を参照してください。
準備する事
自宅サーバーにWAN(インターネット側)からアクセスするために、 ダイナミックDNSサービス(無料)で自宅サーバー用のドメイン名を取得しておきます。
おもなサービスのURLは次の通りです。
No-IP.comhttp://www.no-ip.com
DHS.orghttp://www.dhs.org
DynDNS.orghttp://www.dyndns.org
Dynamic.DO!.jphttp://ddo.jp

*今回、僕は使用しているルーター(NP-BBRsx)が自動更新に対応しているので、DynDNSからsoberlinux.dyndns.orgのドメイン名を取得しました。
簡単な図式にするとこんな感じです。
  soberlinux.dyndns.org = ???.???.??? 192.168.0.*
クライアント --> DynamicDNS --> ルーター @-> 自宅サーバー
<-- <-- <-- <--
プロバイダーからもらうグローバルアドレス
接続の度にかわります。
DynamicDNSに登録しておくと、
この流動的なアドレス(???.???.???)と
ドメイン名(soberlinux.dyndns.org)を
対応させてくれる仕組みです。

自宅サーバーのローカルアドレス(192.168.0.*)に対して
外部からアクセスできるように
ポート別にルーターの設定をします。
@->の流れを作るわけです。
主なポート番号は下の通りです。

サーバーポート番号サーバーポート番号
Telnet23VNC5901〜
SMTP(メール送信)25POP3(メール受信)110
HTTP80FTP20〜21
SSH22VPN1723

今回使用した参考書
   Fedora Core2で作る〜自宅サーバー(株式会社ラトルズ発行・鈴木哲哉著)
*たまたま書店で出会ったものですが、通常は省略してあるMac用のApppleTlalkサービス(Netatalk)についても詳しく説明してあったので採用しました。インストールCD4枚付きです。
この手引き書に従って、インストールからサーバー構築まで3〜4時間ですみます。
インストールしたサーバーの種類
Telnet テキストベースで、他のコンピュータからリモートアクセスします。rootではログインできないので、rootになるときは、一般ユーザーで一度ログインし、「su」コマンドでroot権限を得ます。
VNC グラフィックベースで、他のコンピュータからリモートアクセスします。ただ、VNCを起動時開始に指定すると、通常のデスクトップでアイコンが変更されてしまいましたので、起動開始からはずし、Linux起動後に、「システム設定」→「サービス設定」→「サービス」(端末からはserviceconf)で手動で開始しました。
FTPおなじみのファイルサーバーです。ユーザー専用とゲスト用のファイルを公開できます。
メールこれで、すきなIDのメールアカウントが作成できます。
ウェブ インスト−ルしただけでは、webdavが使用できないので、
/etc/httpd.conf末に
   Alias /webdav/ "/var/www/html/webdav/"
   < Directory "/var/www/html/webdav/">
   DAV on
   </Directory>
を追加記入し、httpdを再起動するとwebdavが使用できます。webdavはMacOSXなら、デスクトップにマウントでき、AppleのiDiskのような使い方が出来ます(iDiskはwebdavの一種)。WANからのファイル共有に使っています。
Samba 共有フォルダを作成し、LANでのMacとWinのファイル共有に使います。共有フォルダに音楽ファイルをコピーしておいて、Mac・WinそれぞれのiTuneのライブラリに追加して、どのパソコンからでも聞けるようにしています。共有フォルダをwebdavに指定すれば、WANからも聞くことが出来ます。
Netatalk Sambaの項と同じです。

ライブカメラ
使用したカメラ
?千円で購入できる USB接続ビデオチャット用カメラ。
I-O DATAのUSBCAM30MVを使いました。
配信方法
ListCamというWindows用のフリーソフトで一定間隔で静止画をキャプチャして、
その画像をLinuxにFTP送信する。(FTP送信はlistCamがキャプチャ時にします。)


静止画キャプチャ
- - - ->
 FTP送信

Webサーバー


他に次のような方法もありますが…
1. 自宅サーバー自体に、RealServer・Window Media Encoder・FFserver・Quictime等のソフトをインストールして、専用の動画配信サーバーを起動する。
2. 有料・無料のネット上のサイトに登録する。たとえばMr.Cam
 1は、面倒臭そう、
 2は、だいたいはWindows専用で、WindowsマシンにHTTPのポート使用(80)をあてるので、LinuxのHTTPが使えなくなる。この問題を解決する方法が分からなくて、試験だけして止めました。

まあ、だれもいない留守宅をたまに見るだけですから、これで十分でしょう。ペットを飼っているひとにはとても便利な機能ですね。
パスワードをかけてアクセス制限してますので、一般には見られませんので…
参考までにこの程度の画像です。


<- 画面右上がLinuxサーバー







<- 画面左下がWindowsノート


音楽配信
配信方法
ネットで音楽を聞くには大きく分けて、2通りあります。
1. ファイル自体をダウンロードして、ダウンロード終了後に聞く。ファイルはクライアントのコンピュータにコピーされます。
2. ダウンロードしながら聞く。いわゆるストリーム配信です。
かつてのようにファイルサイズが小さければ、1の方法で問題ありませんでした。最近ではMB単位のダウンロードが普通になり、また細かな著作権の問題もあります。
 幸い、今となっては自信作ではありませんが、かつてアナログテープに録音し、CDに焼き直したものが4枚あります。これなら、著作権の問題もありません。ただし、MP3にしても1曲が数MBです。こんなのを1の方法でダウンロードして聞けはしません。そこで、せっかく自宅サーバーがあり、アップロードするファイルサイズも気にしなくていいので、なんとか僕も音楽のストリーム配信が出来ないものかと思っていました。
考えられるのは、ライブカメラの項とと同じように配信サーバーを立ち上げることですが、自分の手に負えそうにありません。いろいろ探したところ、Linuxサーバーで使えるZinaというものがありました。
Zinaはアプリケーションではなく、PHPというスクリプトです。設置は簡単です。

Zinaのホームページからリンクをたどりたどり、zina-***.tar.gzファイルをダウンロードします。

Apache(Webサーバー)のルートディレクトリにたとえばmp3というディレクトリを作っておきます。
 #mkdir /var/www/html/mp3
 (ルートディレクトリが/var/www/html)

適当なディレクトリで解凍・展開し、展開して出来たzinaディレクトリの中身をそっくり、先に作ったmp3ディレクトリのなかにコピーします。
 #cd zina** (展開して出来たzinaディレクトリに移る)
 #cp -a * /var/www/html/mp3 (コピー)
 #cd /var/www/html/mp3
 #chmod 777 _zina (_zinaは展開して出来たディレクトリ。アクセス権を指定)

後は、音楽ファイルを、/アーティスト/アルバム/作品群のように二重のフォルダ構造にして、mp3ディレクトリにコピーされて出来ているmusicというディレクトリのなかにほおりこむだけです。

音楽を聴くには アドレスに[サーバー名/mp3]と指定してアクセスすると、zinaのPHPスクリプトがWebブラウザによって解釈され、ページが開きます。
僕の自宅サーバーで試してみてください。
 zinaによる音楽ストリーム配信
 (http://soberlinux.dyndns.org/mp3)
ブラウザでヘルパーに指定しているMP3再生ソフトで音楽がストリーム配信で聴けます。


iTunesサーバー
設置方法
iTunesの共有機能を使えば、iTunes同士で音楽ファイルの共有は簡単にできますが、音楽ファイルを管理しているメインのMacを常時立ち上げているわけではないので、LinuxでiTunesサーバーを試みました。
 インストールするパッケージ
howl-0.9.10.tar.gz
libid3tag-0.15.1b.rpm
mt-daapd-0.2.1-1.fc2.i386.rpm
 インストールが終わったら、設定ファイルの「/etc/mt-daapd.conf」をエディタで開き、次の箇所を書き換えます。
/etc/mt-daapd.conf(抜粋)

mp3_dir /var/share/mp3(共有するディレクトリ、あらかじめ作成しておく。初期値は/mnt/mp3)
servername iTunes_on_Linux(自分の好きな名前でいい。初期値はmt-daapd)

以上で、設定は終わりです。他のコンピュータでiTunesを立ち上げ、「共有されている音楽を検索」をチェックすれば、下図のようにiTunesのリストにLinux上のiTunesサーバーが表示され、音楽が再生されます。iTune_on_Linnuxとなっていますが、iTunes_on_Linuxと入力するつもりだったのです。(~~;)

*Fedora Core4にアップデートしたところ、howlはmDNSResponderとしてインストール済みなので、libid3tagとmt-daapdをインストールしました。ところが、クライアント側のiTunesに上記のようなサーバーが現れない... さて、どこで設定すればよいのか?(慣れるとこういう手探り感も面白くなるもの?)webでいろいろ検索したところ、/etc/rendezvous.confを作成し
	iTunes Server
	_daap._tcp.
	none
	3689
と記述すればいいらしい。その通りにして、mDNSResponderを再起動すると、めでたくiTunesサーバーが検出されました。


データベースサーバー
使用方法
Fedora Coreにはデータベースのパッケージとして、MySQLとPosgreSQLが付属していますが、今回はMySQLを使用しました。インストールは、OSインストール時に選択するか、OSインストール後だと「アプリケーションの追加・削除」でインストールできます。PHPとMySQLを連動するならば、php-mysqlというPHP用のモジュールもインストールしておきます。
 MySQLを使用するには、
1. ターミナルからコマンドを入力する方法。
	Welcome to the MySQL monitor.  Commands end with ; or \g.
	Your MySQL connection id is 1328 to server version: 4.1.12-Max
	Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
	mysql> use favorite
	Database changed
	mysql> 
リモートから接続する場合は、telnetなどを介してアクセスするので少し面倒。

2. そこでPHPを少し勉強して、mysql関数を使いブラウザでデータを表示させるのが便利です。
phpinfo()で

と表示されればPHPでMySQLが使用可能です。

[MySQLで日本語を扱う場合の留意点]
Linuxで使用するので、デフォルト文字コードセットをEUC-JPにしました。また、MySQLにデータを読み込む場合も、EUC-JPで作成します

*/etc/my.cnf(MySQLの設定ファイル)のなかに
	[mysqld]
	default-character-set=ujis
	[mysql]
	default-character-set=ujis
	[mysql dump]
	default-character-set=ujis
を追記。

*PHP+MySQLで日本語を使用する場合は、php-mbstringモジュールをインストールしておきます。
作成するPHPファイルには、
 mysql_query( "SET NAMES ujis" );
を記入しておきます。これを省くと、日本語が表示されませんでした。
また、PHPでMySQLにデータを送受信する場合、HTMLはテキストエンコーディングがShift JISであることが多いので
送信PHP→MySQL
  mb_convert_encoding($mystr,"EUC-JP","SJIS"); (Shift JISをEUC-JPに変換して書き込む)
受信MySQL→PHP
  mb_convert_encoding($str,"SJIS","EUC-JP"); (EUC-JPをShift JISに変換して表示)
少し面倒ですが、こうしないと、せっかくのデータが文字化けして情けない想いをします。(・_・、)

 これまで作成して、著作権の制約から、インターネット掲載できなくなった膨大な(?)MidiデータをMySQLで整理し、PHPで表示させて楽しんでいます。


ファイル共有
使用サーバー
自宅と職場でパソコンを使っています。以前は、メールにファイル添付かUSBメモリでデータをやり取りしていました。その次に、.MacのiDisk(WebDAV)をしばらく使っていましたが、サーバーがCaliforniaにあるせいか、接続・解除・転送にしても、非常に時間がかかる…それで、自宅サーバーにiDiskに変わるものはできないかと考えました。WebDAVはちょっと不安定な印象をもっているので、 (LAN内ではなく、インターネットを介してのファイル共有なので)、pptpdをインストールして、VPN(Virtual Private Network)を使いたかったのですが、ルーターがpptpに対応してない古いものなので、通常のftpサーバー(proftpd or wu-ftpd)を用いました。
/home/ユーザー:ディレクトリにsoberdiskなるものを作るだけです。セキュリティの問題があるので、私用のファイルしか転送しませんが、たとえば職場で見つけたurlや、ゆっくりした環境の自宅で作ったアプリケーションなど共有しています。
アクセスは、特別なftpクライアントソフトを使わなくても
MacならSafari
WindowsならExplorerで、ftp://ユーザー@ホストでアクセスし、パウワード入力で、デスクトップ上で操作できます。
MacならActive Mounterというシェアウェアソフトもあります。


以上は、インストールの種類で◎サーバーを選択すれば、必要なパッケージはインストール時にほとんど組み込まれます。楽と言えば楽ですが、設定ファイルとかが、何処に置かれるのかはわかりません。
そこで、例によって中古ノートパソコンに、手動でインストールしてみました。インストールの種類は◎最小を選択し、必要なものはyumコマンドでインストールしました。その時の、覚え書き。ノートパソコンは、GUIでタッチパッドを操作するよりも、少し勉強して、CUIでコマンド入力の方が操作しやすいです。

おまけ:Virtual PCでサーバー
[ポイント]
*PC設定のネットワークでネーワークを共有ではなく、バーチャルスイッチを選ぶ。こうすると、本体マシーンとは別のIPアドレスがルーターDHCPサーバー)によってVM(バーチャルマシーン)に割り当てられる。本体マシーンからVMに通常のサーバーのようにアクセスできる。
*テキストモードで操作する。(X Windowはインストールしない)
*アプリケーションのコンパイルはしない。本体マシーンの能力にもよるが、時間がかかって実用的でない。
 ということで、パッケージ管理に定評のあるDebianをインストールしてみた。ISOイメージをダウンロードして、CDイメージのキャプチャ・リセットでインストール。実際のマシーンのようにCDに焼く必要がない。サーバー3点セット:Apache PHP MySQLは通常通り使用できた。FTPも使えるので、ファイルの転送も可能。
[使い道
*インストールの練習・試用。VMはVirtual PCのファイルなので、いつでも削除・作成できる。
*Virtual PCがインストールされていれば、VMをコピーして、どこでも設定済みのサーバーを起動できる。