Linux Fedora9での鯖構築


Fedora9 のインストール

「ソフトウェア開発」と「ウェブサーバー」にチェックを入れてインストール。
このマニュアルはこの構成でインストールされたFedora9を前提としています。
SELinuxはpermissiveまたはdisableにしておいてください。
これはApacheとtomcat6を連携してする際に必要な設定です。

準備するもの

以下のファイルを準備してください。
jdkやtomcatが含まれていませんが、Fedora9ではjdk1.6, tomcat6がyumでインストールできます。
ffmpegもfreshrpmのサイトからyumでインストールできます。
tomcat,ffmpeg等はダウンロードして手動でインストールすることも可能ですが、できるだけ手間を省くため、可能な限りyumを使うことにします。
HTMLParserhtmlparser1_6_20060610.ziphttp://htmlparser.sourceforge.net/
PDFBoxPDFBox-0.7.2.ziphttp://www.pdfbox.org/index.html
crimsoncrimson-1.1.3-bin.ziphttp://xml.apache.org/crimson/

javaのインストール

「ソフトウェア開発」にチェックを入れてインストールした場合、Fedora9にはすでにjavaが入っているようです。
そのバージョンを確認すると、1.6なのでW2Chの動作には問題なさそうです。
#java -fullversion
java full version "1.6.0-b09"

tomcatのインストール

Fedora9ではyumでtomcat6のインストールができます。以下のコマンドでインストールします。
# yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps
インストールが完了したら、tomcat6のサービスの状態を確認します。
以下のコマンドで確認すると、自動起動に設定されていないようです。
#  chkconfig --list tomcat6
tomcat6         0:off   1:off   2:off   3:off   4:off   5:off   6:off
chkconfigコマンドを使って、起動時に、tomcat6も起動するように設定します。
# chkconfig tomcat6 on
#chkconfig --list tomcat6
tomcat6         0:off   1:off   2:on    3:on    4:on    5:on    6:off
また以下のコマンドでtomcat6の起動/停止が可能です。
 service tomcat6 start	tomcat6の起動.
 service tomcat6 stop	tomcat6の停止.
 service tomcat6 restart	tomcat6の再起動.
service tomcat6 startを実行し、tomcat6を起動します。 tomcat6が正常に起動した後、ブラウザでhttp://localhost:8080/をアクセスするとtomcatのトップページが表示されます。

次にtomcat6の管理ツールの設定を行います。
これはW2Chには特に必要は無いのですが、管理ツールを使うとtomcatの状態の確認が可能です。
/usr/share/tomcat6/conf/tomcat-users.xmlを以下のように編集します。
追加する記述を赤で表示しています。<user username="admin"のpassword=""の部分はtomcat6の管理者のパスワードになります。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="admin" password="XXXXX" roles="admin,manager"/>
</tomcat-users/>

tomcat6を再起動した後http://localhost:8080/manager/statusをアクセスすると、
JVMバージョン:1.6.0_b09、JVMベンダ:Sun Microsystems Inc.となっていることが確認できます。

W2Chのインストール

必要なjarファイルのインストール

/usr/share/tomcat6/libの中に以下のファイルをコピーします。
crimson-1.1.3-bin.zip中のcrimson.jar
htmlparser1_6_20060610.zip中のhtmlparser.jar
PDFBox-0.7.2.zip中のPDFBox-0.7.2.jar

ffmpegのインストール

ffmpegはfreshrpmsからインストールすることができます。
freshrpmsはyumに対応していますが、Fedora9をインストールした状態では、
yumがfreshrpmsを検索するようになっていません。
freshrpmsを検索できるようにするには、freshrpms-release-1.1-1.fc.noarch.rpmを入手し、インストールする必要があります。
# wget http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/9/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm 
# rpm -ivh freshrpms-release-1.1-1.fc.noarch.rpm
次に以下のコマンドを実行して、ffmpegをインストールします。
# yum install ffmpeg

W2Chのインストール

ここからw2chのw2chxxx.warを入手し、w2ch.warにリネームした後/usr/share/tomcat6/webappsにコピーします。
当然複数のバージョンをインストールするのであればリネームは必要ありません。
tomcat6が起動していれば、コピーするだけで自動的にwarファls -lイルが展開され、http://localhost:8080/w2ch/をアクセスすると、W2Chのダウンロードページが表示されます。

apacheとの接続

まずapacheの動作状況を確認します。
# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
自動起動になっていないようなので、自動起動するように設定します。
# chkconfig httpd on
# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
また以下のコマンドでapacheの起動/停止が可能です。
 service httpd start	apacheの起動.
 service httpd stop	apacheの停止.
 service httpd restart	apacheの再起動.
次にapacheとtomcat6の接続を行います。
以下の記述を/etc/httpd/conf/httpd.confの最後に追加します。
以下の記述を追加したら、apacheを再起動して、http://localhost/w2ch/アクセスすると、W2Chのダウンロードページが表示されるはずです。
<Location /w2ch/>
	ProxyPass ajp://localhost:8009/w2ch/
</Location>
後はhttpのポート80以外をF/Wでブロックしてインターネットに公開すればOKです。

ffmpegのオプション調整

fedora9にインストールされるffmpegは0.4.9というバージョンのようです。
このバージョンはW2Chのデフォルト設定のオプションで動作しないようです。
web.xmlの設定を以下のように変更してください。
<context-param>
    <param-name>ffmpeg-options</param-name>
	<param-value>
		-y -i $INFILE -vcodec mpeg4 -acodec libfaac -r $FRAMERATE -b $BITRATE $QSCALE -s $SCREENSIZE -vol $VOLUME -ac 1 -ar 16000 -ab $AUDIOBITRATE -f 3gp -ss $START -fs $FILESIZE000 $OUTFILE
	</param-value>
</context-param>
<context-param>
	<param-name>ffmpeg-b</param-name>
	<param-value>1000</param-value>
</context-param>
<context-param>
   	<param-name>ffmpeg-ab</param-name>
   	<param-value>1000</param-value>
</context-param>