VPS設定:Subsonic [iPhone]
動画はOKになったから、次は音楽。
自宅PCではAudiogalaxyだからLinux用を使ってみたものの、、、、日本語のファイルは読み込まない。
Tag内の日本語は大丈夫なんだけどなぁ。
ということで、代替としてSubsonicを導入してみる。これも詳しい手順は公開済み。便利なサイトです。
これまた差分だけ記載してみると、
1.javaのバージョン
Sun java7で動いてる。本家のForumでは非互換かもという記事はあるものの、明確ではないので
このままでいく。
2.インストールするライブラリ
vorbisは使わないので入れない。
ffmpegとlameは本体と一緒に入るので不要。
ということで、メディア用のライブラリは要らないけど、それ以外で「ない」とエラーになったので追加。
yum install libncurses.so.5
3.SSL対応:自己証明書の使用
SubsonicでSSL使用にするとsubsonic.orgが発行した証明書を使うので、「不正な証明書」になって
鬱陶しい。
それで自己証明書を利用。
Keystore作成:keytoolにPathが通っていないので以下の通り。
/usr/java/jdk1.7.0_03/bin/keytool -genkey -alias subsonic -keyalg RSA -dname N=wwwAAAAAAA.sakura.ne.jp,OU=subsonic,O=なにか,L=場所を,S=書いておく,C=JP" validity 3560 -keystore /etc/ssl/certs/subsonic.keystore -storepass xxxx -keypass xxxx
xxxは適当なパスワード。
SubsonicをKeystoreを使用するように修正
/usr/bin/subsonicを修正
113行のJAVA設定に追加
-Dsubsonic.ssl.keystore=/etc/ssl/certs/subsonic.keystore \
-Dsubsonic.ssl.password=subsonic \
Subsonic再起動
service subsonic restart
これでChromeを使っても証明書インストールさえすればOK。
快適に使える。。と思ったらここにもまた落とし穴が。。。
VPS設定:AirVideo [iPhone]
動画もたくさん収納できたので、メディアサーバーとして働いてもらおう。
自宅PCに入れているAirVideoを導入。詳しい手順はすでに公開されているので、差分だけ記録。
まずは動作環境。imotenでSun jave 7を入れているから、Open JDK 1.6ではなくて、java 7
をそのまま使用する。よって追加のインストールはこれだけ。
yum install yasm git SDL-devel faac faad2-devel
ポートオープンも忘れずに。45631が標準。自宅PCもこれなのでそのまま。
/etc/sysconfig/iptablesを編集。
-A INPUT -p tcp -m tcp --dport 45631 -j ACCEPT
service iptables restart
ログのローテーションについてはAirVideoの再起動が必要みたい。よって。
/etc/logrotate.d/airvideoを編集
>>>>
/var/log/airvideo.log {
notifempty
missingok
sharedscripts
copytruncate
postrotate
/etc/init.d/airvideo restart > /dev/null || true
endscript
}
<<<<
後は起動するだけ。これもなんとなく手起動で。
service airvideo start
ということで、iPhoneからAirVideoでしっかりと見えることを確認。トランスコードもちゃんと
しているみたいだし、自宅PCが止まっていてもビデオが見られる。
でもテレビ録画用に24時間立ち上がっているATOMサーバーだから止めることもないし。。。
VPS設定:WebDAV &文字対応 [iPhone]
どんどんコピーということでWindowsのWebフォルダーを使っていると、使えないファイルやフォルダー
があることを発見。
どうやら"&"が入るとそれ以降の文字が表示されないようだ。
まあ、&使う方が悪いんだけど、いまさらWindows側を修正するのも癪なので、対応方法を検索してみる。
どうやらapacheを修正するしかないみたい。ということで、早速対応。
必要となる修正内容もしくはパッチはこちら。
SVNでソースを取ってくるのが面倒だったので、PCで丸ごとソースを取ってきてrootで作業開始。
patchの対象はmod_dav.cなので、modules/dav/mainへ移動。
cd modules/dav/main
念のためにバックアップ。
cp mod_dav.c mod_dav.c.org
パッチを当てるなり、手修正するなりでソース修正。内容を見たかったので直接修正してみた。
修正が終わったらmake開始。ソースのルートディレクトリでまず設定を行う。
./configure --enable-so --enable-dav=shared
早速make
make
ちゃんと修正していたらきちんとできるはず。エラーが出てないことを確認して、patch後のモジュールを
確保する。場所はmodules/dav/main/.libs/mod_dav.so
これを/usr/lib64/httpd/modules/にコピー。バックアップも忘れずに。
cd /usr/lib64/httpd/modules/
cp mod_dav.so mod_dav.so.org
cp xxxmodules/dav/main/.libs/mod_dav.so mod_dav.so
→xxxはソースのルート
service httpd restart
これで&文字も大丈夫。どんどんコピー。。。
VPS設定:WebDAV [iPhone]
いよいよディスク容量を有効活用するためにWebDAVを導入。
これでWindwosやMac、それにiPhoneからも読み書きができるストレージができる。
さくらVPSはapacheが導入されていないので、そこから開始。
rootになってから以下の作業を行う。
1.インストール:yumが使える:これでインストールされるのはapacheの2.2.22らしい。
yum install httpd
2.とりあえず設定:
/etc/httpd/conf/httpd.confを編集:編集箇所は以下。
>>>
ServerTokens OS→Prod
KeepAlive Off→On
ServerSignature On→Off
<IfModule prefork.c>
StartServers 8→5
MinSpareServers 5
MaxSpareServers 20→10
ServerLimit 256→15
MaxClients 256→15
MaxRequestsPerChild 4000
</IfModule>
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule suexec_module modules/mod_suexec.so
#LoadModule deflate_module modules/mod_deflate.so
#LoadModule speling_module modules/mod_speling.so
<<<<
とりあえず、HPではないので、プロセス数を最小限にするということと、メモリ節約のために不要そうなmodule
は使わないようにコメントアウト(#つける)
Webテストページ非表示にする設定:見えるといやな感じだし。
conf.d/welcome.confを編集
すべてコメントアウト
conf/httpd.confを編集
>>>>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
Options -Indexes FollowSymLinks
</Directory>
<<<<
安全のためには自己証明書でもSSLがいいので、mod SSLインストール
yum install mod_ssl
サーバー証明書作成
/etc/pki/tls/certs/で作業すると楽。xxxxはお好み。AAAAAAAは決まってるもの。
make server.key
PWD:xxxx
make /etc/pki/tls/certs/server.csr
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:どこでも
Locality Name (eg, city) [Default City]:いいから
Organization Name (eg, company) [Default Company Ltd]:書いて
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:wwwAAAAAAA.sakura.ne.jp
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:xxxx
An optional company name []:
openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 3650
chmod 400 /etc/pki/tls/certs/server.key
chmod 400 /etc/pki/tls/certs/server.csr
chmod 400 /etc/pki/tls/certs/server.pem
apacheでSSLを使うように設定
/etc/httpd/conf.d/ssl.confを編集。
>>>>
DocumentRoot "/var/www/html"
SSLCertificateFile /etc/pki/tls/certs/server.pem
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
<<<<
ポートオープンしないと大変。
/etc/sysconfig/iptablesを編集
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
service iptables restart
3.共有フォルダの設定
ファイルの置き場所。面倒なのでデフォルトの下に作る。権限はapacheに変更
mkdir /var/www/html/dav
chown apache.apache /var/www/html/dav
chmod 755 /var/www/html/dav (700から変更)
ここでポイント。WebDAVで簡便なアクセスコントロールをしてあるユーザー(adminuser)はどこでも編集可能
だけれども、その他のユーザーは一部のディレクトリだけ編集可能で他は参照のみとしたい。
というようなことを行う設定。
WebDAV設定ファイル:/etc/httpd/conf.d/webdav.confを編集。
>>>>
alias /dav/ "/var/www/html/dav/"
<IfModule mod_dav.c>
DAVMinTimeout 600
<Location /dav>
DAV On
EnableSendfile off
SSLRequireSSL
AuthType Basic
AuthName "Login WebDAV"
AuthUserFile "/etc/httpd/conf/.htpasswd"
<Limit PROPFIND GET HEAD OPTIONS>
Require valid-user
</Limit>
<LimitExcept PROPFIND GET HEAD OPTIONS>
Require user adminuser
</LimitExcept>
Order deny,allow
Deny from all
Allow from all
</Location>
<Location /dav/Documents>
DAV On
EnableSendfile off
SSLRequireSSL
AuthType Basic
AuthName "Login WebDAV"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user
Order deny,allow
Deny from all
Allow from all
</Location>
</IfModule>
<<<<
これでadminuserはどこでもいじれるけれども、それ以外のユーザーはDocumentsの下のみ編集可能になる。
気合があればユーザー毎に設定もできるけれども、今はこの辺で。
忘れずにロックファイル作成:複数ユーザでの編集を制御しないと。
touch /var/lib/dav/lockdb
chown apache.apache /var/lib/dav/lockdb
4.アクセスユーザーの作成
htpasswd -c /etc/httpd/conf/.htpasswd adminuser
PWD:xxxx
ユーザー追加
htpasswd /etc/httpd/conf/.htpasswd 他のユーザー
5.その他の設定
使っている最中にlogrotateのためにセッションが切れてしまうと悲しいので、ログの取得方法を
ちょっと変更。
/etc/logortate.d/httpdを編集
reloadからgracefulに変更
/sbin/service httpd graceful > /dev/null 2>/dev/null || true
6.httpd起動
service httpd start
この設定だと、SSLの認証ファイルにパスワードがかかっているので、httpd立ち上げ時にパスワード
入力が必要になる。
よって、自動起動にはせずに、サーバーリブート時には手起動にする。
これでWebDAV:ちょっとだけアクセスコントロールが完成。
せっせとファイルをコピーしよう。上り1MのADSLは辛い。。。。。更なる落とし穴も。。。。。
VPS設定:monit [iPhone]
ということで、設定メモ
imotenの設定はどこでもあるので、まずはサーバーの監視。
ちなみにimotenはSun java7で元気に稼働中。
そもそも、imodeメールの転送をしている以上、imotenが止まってしまうとメールを見ない身勝手な人
になってしまうので、imotenのプロセスを監視して、止まっていたら通知かつGmailに連絡。という
のが目的。
それで、プロセス監視のためにmonitを導入。
ちなみにさくらVPSでOSはCentOS6.2 64bit
Rootになってから以下の作業を行う。
1.インストール
yum install monit
mkdir /var/monit
2.設定変更: /etc/monit.confを編集
>>ここから
set daemon 120
set logfile syslog facility log_daemon
set mailserver smtp.gmail.com port 587 username "xxx@gmail.com" password "xxx" using tlsv1
set alert xxx@gmail.com # receive all alerts
check process imoten
with pidfile /usr/local/imoten/bin/imoten.pid
start program = "/etc/init.d/imoten start"
stop program = "/etc/init.d/imoten stop"
if failed port 587 then alert
<<ここまでが編集内容。
imotenでのメール送信はTLSを使っているのでポート587を利用しているから、一緒にチェックしてる。
3.ファイルの権限確認
chmod 700 monit.conf
-rwx------ 1 root root 10964 Sep 8 18:02 monit.conf
4.自動起動の設定かつ起動
chkconfig monit on
service monit start
これでmonitでの監視が開始。
ServersManがおかしくなった時にはこのalertメールが山のように来て最悪だった。