自宅サーバの Fedora に DLNA サーバ MediaTomb のインストール
Audio Accessory 増刊号の Net Audio vol.01 を読んでみた で書きましたがネットワークオーディオに興味が出てきました。僕のメイン機では DLNA サーバとして VAIO Media Plus っていうソフトが動いていましたが、コンテンツ解析やらいろいろと動作が重くなったりするため、設定やサービスを無効化して動作させていません。
ちょうど自宅サーバが常時接続・常時稼働状態にあるため、Linux の DLNA サーバとして評判の良いオープンソースの MediaTomb を導入することにしました。今回は手抜きをしたかったのでソースコンパイルではなく yum からパッケージをとってきてインストールする方法を選択しました。
Fedora に DLNA サーバ MediaTomb のインストール
自宅サーバは Fedora10-x86_64 環境ですが、CentOS 系もほぼ同じで行けると思います。yum で mediatomb をインストールします。mediatomb はライブラリの依存関係などでソースからインストールするのが面倒という記事をよく見かけるので、yum を使って依存関係など一発解決が楽ちんだと思います。yum で依存関係にあるライブラリのインストールを求められたらあわせてインストールを行ってください。
yum install mediatomb
次に /etc/mediatomb.conf を編集してネットワークの設定を行います。eth0 を使って配信を配信を行う場合、赤色の部分のように修正を行います。通常下記のまねをすればOKです。
MT_USER="mediatomb"、MT_GROUP="mediatomb" の部分で実行ユーザが設定されていますが、yum でインストールした場合には必要なユーザとグループは自動的に作成されています。
## This is a sambel configuration file for the MediaTomb daemon script ## used on Fedora Core ## By default the configuration will be created in /etc/mediatomb ## Network interface on which the server will run, you need to edit this! #MT_INTERFACE="NOT_SET" MT_INTERFACE="eth0" ## User defined command line options that may be passed to the server MT_OPTIONS="" ## MediaTomb will be started on port 50500 MT_PORT="50500" ## MediaTomb will run as mediatomb MT_USER="mediatomb" MT_GROUP="mediatomb" ## Location of the PID file MT_PIDFILE="/var/run/mediatomb.pid" ## Location of the log file MT_LOGFILE="/var/log/mediatomb" ## Location of the config file/database MT_HOME="/etc" MT_CFGDIR="mediatomb"
次に /etc/mediatomb/config.xml を自動生成させるために、一度 mediatomb を起動・停止します。
/etc/init.d/mediatomb start /etc/init.d/mediatomb stop
次にコンテンツの管理をデフォルトの SQLite ではなく MySQL に変更するために MySQL で mediatomb 用のデータベースおよびユーザの作成を行います。SQLite のままの管理で良い場合には本項目は不要です。
mysql -u root -p mysql> create database mediatomb; mysql> grant all privileges on mediatomb.* to mediatomb@localhost identified by 'パスワード'; mysql> flush privileges; mysql> exit
次にスキーマを作成します。作成用の SQL が用意されているので実行するだけです。
mysql -u mediatomb -p mediatomb < /usr/share/mediatomb/mysql.sql
次に /etc/mediatomb/config.xml のデータベース設定を mysql 用に切り替えます。赤文字のように編集してください。
<storage> <sqlite3 enabled="no"> <database-file>mediatomb.db</database-file> </sqlite3> <mysql enabled="yes"> <host>localhost</host> <username>mediatomb</username> <password>設定したパスワード</password> <port>3306</port> <database>mediatomb</database> </mysql> </storage>
次に mysql との socket 通信に使うファイル名の設定を行います。yum で入れた場合には mediatomb は /var/lib/mysql/mysql.sock を使うのですが、僕の環境では /tmp/mysql.sock が mysql との socket 通信に使うファイルになります。下記のようにシンボリックリンクを張って対応させます。
ln -s /tmp /var/lib/mysql
ちなみにこんなエラーがでて躓きました。ネットで情報が出てこなかったのでメモしておきます。
tail -f /var/log/mediatomb 2010-11-13 08:00:00 INFO: Loading configuration from: /etc/mediatomb/config.xml 2010-11-13 08:00:00 INFO: Checking configuration... 2010-11-13 08:00:00 INFO: Setting filesystem import charset to EUC-JP 2010-11-13 08:00:00 INFO: Setting metadata import charset to CP932 2010-11-13 08:00:00 INFO: Setting playlist charset to EUC-JP 2010-11-13 08:00:00 INFO: Configuration check succeeded. 2010-11-13 08:00:00 ERROR: The connection to the MySQL database has failed: mysql_error (2002): "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"
さて mysql の設定はココまで。次にサーバの charset の設定を行います。例によって赤文字の部分を追加します。サーバの文字コードが UTF-8 の場合の設定です。EUC を使っている場合には EUC-JP を設定します。
<import hidden-files="no"> <filesystem-charset>UTF-8</filesystem-charset> <metadata-charset>CP932</metadata-charset> <scripting script-charset="UTF-8">
次に mappings を追加します。画像の配信や動画の配信が必要ない場合には、この設定はそもそも不要な気がしますが、多くのインストールメモに従ってこうすることとします。
<mappings> <extension-mimetype ignore-unknown="no"> <map from="jpg" to="image/jpeg"/> <map from="jpeg" to="image/jpeg"/> <map from="gif" to="image/gif"/> <map from="png" to="image/png"/> <map from="m4v" to="video/mp4"/> <map from="mp4" to="video/mp4"/> <map from="mpg" to="video/mpeg"/> <map from="mpeg" to="video/mpeg"/> <map from="mp3" to="audio/mpeg"/> <map from="ogg" to="application/ogg"/> <map from="asf" to="video/x-ms-asf"/> <map from="asx" to="video/x-ms-asf"/> <map from="wma" to="audio/x-ms-wma"/> <map from="wax" to="audio/x-ms-wax"/> <map from="wmv" to="video/x-ms-wmv"/> <map from="wvx" to="video/x-ms-wvx"/> <map from="wm" to="video/x-ms-wm"/> <map from="wmx" to="video/x-ms-wmx"/> <map from="m3u" to="audio/x-mpegurl"/> <map from="pls" to="audio/x-scpls"/> <map from="flv" to="video/x-flv"/>
ここまで設定が終わったら mediatomb が起動するはずです。
/etc/init.d/mediatomb start
念のためにログも確認してみます。
tail -f /var/log/mediatomb 2010-11-13 08:55:08 INFO: Loading configuration from: /etc/mediatomb/config.xml 2010-11-13 08:55:08 INFO: Checking configuration... 2010-11-13 08:55:08 INFO: Setting filesystem import charset to EUC-JP 2010-11-13 08:55:08 INFO: Setting metadata import charset to CP932 2010-11-13 08:55:08 INFO: Setting playlist charset to EUC-JP 2010-11-13 08:55:08 INFO: Configuration check succeeded. 2010-11-13 08:55:08 INFO: Initialized port: 50500 2010-11-13 08:55:08 INFO: Server bound to: 192.168.0.2 2010-11-13 08:55:09 INFO: MediaTomb Web UI can be reached by following this link: 2010-11-13 08:55:09 INFO: http://192.168.0.2:50500/
どうやら正常に起動した模様です。プロセスも確認してみます。
[root@srv01 ~]# ps aux|grep mediatomb 493 11826 0.0 0.0 269248 3836 ? Ssl 08:55 0:00 mediatomb -d -u mediatomb -g mediatomb -P /var/run/mediatomb.pid -l /var/log/mediatomb -m /etc -f mediatomb -p 50500 -e eth0 root 11924 0.0 0.0 89184 872 pts/0 S+ 08:56 0:00 grep mediatomb
ブラウザからも確認してみます。ポート 50500 で接続できれば成功です。
mediatomb の使い方は別のブログに譲るとして、最後にセキュリティを確保しておきます。上位レイヤーでフィルタ設定ができていればよいのですが、ここではインストールしたサーバ内では iptables を使って接続を限定する方法を記述しておきます。ちなみに家庭内 LAN が 192.168.0.* で運用されている場合です。IP アドレス帯域に部分は適宜変更してください。
iptables -A INPUT -s 192.168.0.0/24 -p udp --dport 1900 -j ACCEPT iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 50500 -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart
設定の反映を確認してみます。
[root@srv01 ~]# iptables --list Chain INPUT (policy DROP) target prot opt source destination ・・・・ ACCEPT udp -- 192.168.0.0/24 anywhere udp dpt:ssdp ACCEPT tcp -- 192.168.0.0/24 anywhere tcp dpt:50500 ・・・・
最後に、mediatomb が配信するディレクトリをサーバ上に作成してパーミッションの設定をします。mediatomb ユーザに対して o+r 権限を与えてあげれば、ブラウザ上から FileSystem で公開するフォルダを選んで、右上の+ボタンで公開設定すれば、ディレクトリ内に保存した mp3 などを配信することができるようになります。
おしまい。
売り上げランキング: 95150
玄箱を使うとNAS+DLNAサーバを構築できますよ!
コメントやシェアをお願いします!