fedora7でPaintChatApp設置
ようやくwebサーバー稼働しはじめた。
ひとまず初期目標としてあったお絵チャサーバーを立てる。
モノはしぃちゃんのお絵描きしぃちゃっと PaintChatApp
とある持ちネタがあって、実験も兼ねて、といった感じでとりあえず運用を開始してみる。
導入は以下。
簡単な環境
参考サイト
- 公式のヘルプ
- http://hp.vector.co.jp/authors/VA016309/paintchat/document/pchat_help/help/Execute_CUI.html
- 基本の手順はココ
- コマンド記述ミスが多いので参照には気をつける
- 虹裏Wiki
- http://wiki.nijiura.com/?PaintChat
- cui環境で構築するときのノウハウが詰まっている
- 読んだ感じ、ちょっと腰を入れて作業が必要そうだと感じさせられる
- Linuxでお絵かきチャット
- http://hss-husima.seesaa.net/article/9853342.html
- 大変参考になるが、サーバー操作環境がGUIの場合のみ
- CUI操作の場合jar実行段階でコケる
- pinkチャンネルお絵かきチャットしようぜ 4のお絵チャサーバー
- http://c.grph.jp/erocg/
- linuxで運用可能の証明
作業内容
ひとまず公式のヘルプの手順どおりに作業を進める。
2.PaintChatをサーバーにインストール
ファイルを、apacheのDocumentRoot以下に配置する。
通常は/var/www/html以下。*1
PaintChatファイル群のパーミッション等はすでに適切に変更してあるが、
配置する上位のディレクトリの影響を受けるので、パーミッションを良く確認しておく。
3.httpサーバーを立てる
公式のヘルプの順番では、次にhttpサーバーを立てる内容が来るが、
今回の場合は、すでにapacheでhttpサーバーを稼働させているので、
特に何もせず飛ばす。
4.Paintchatサーバーを立てる
Paintchatサーバーにはコンフィグファイルが必要。
とりあえず動かすために
コンフィグファイルは公式ページのsampleを自分のサーバー用にちょっと手を加えて作ることにする。
実際に使っているのは以下の内容
#キャッシュ(キャンバス) Server_Cash_Line=true #キャッシュ(会話) Server_Cash_Text=true #チャットポート Connection_Port_PaintChat=41411 #線データーのログ Server_Log_Line=true #テキストキャッシュ(ライン単位) Server_Cash_Text_Size=200 #ラインキャッシュ(Byte) Server_Cash_Line_Size=512000 #管理機能の為のパスワード Admin_Password= Cash_Text=true #テキストデーター起動時読み込み Server_Load_Text=true #インターネットの接続 Connection_GrobalAddress=false #ウェッブポート Connection_Port_Http=80 #チャット管理機能の使用許可 Admin_ChatMaster=false #テキストのログ Server_Log_Text=false #デバッグ情報の表示 Server_Debug=false Cash_Text_Size=200 File_Config=\cnf\paintchat.cf #保存線データー起動時読み込み Server_Load_Line=true #サーバーインフォメーションの書き込み先 File_PaintChat_Infomation=cnf/template/.paintchat #HTTP公開フォルダの位置 Http_Dir=cnf/template
ファイルの保存先は/paintchat/cnf以下(公式ヘルプ通り)
そして、主に手を加えたのは下の方の項目で
- サーバーインフォメーションの書き込み先
- よく分からんが、サーバー実行時に使用するファイルらしい
- 公開フォルダに指定(公開フォルダについては後述)
- HTTP公開フォルダの位置
また、コンフィグファイルの詳しい値の説明は
/paintchat/cnf/resource_ja.propertiesファイルに記述してあるようだ。
5.アプレットとHTMLファイルの用意
公式のヘルプではこの項が一番よく分からなかった。
チャットを立ち上げるにはページを表示するHTMLファイルと アプレット関連のファイルを用意する必要があります。
と書いてあるが、実際の所、templateに一通り関連ファイルが揃っている。
これを利用する場合は、特に何もやらなくても大丈夫のようだ。
6.立ち上げ
すでにapacheでhttpサーバーはあるので、あとはPaintChatサーバーを立ち上げるだけでok。
コマンドはPaintChat.jarがあるディレクトリにて
java -Duser.dir=/var/www/html/paintchat -cp ./PaintChat.jar paintchat_server.Server ./cnf/paintchat.cf
などと打てばok
起動に成功するとターミナルに
/var/www/html/paintchat/cnf/paintchat.cf Run ChatServer port=41411
とか出る。
これでサーバーがクライアント接続待ちとなり、起動完了。
試しにLan内で接続テストを行うと、サーバー上ではこんな表示になる。
見づらいけど、クライアント側がログインに成功すると
サーバーのconsole上にログイン名とIPが表示されているのが分かる。
7.ポート解放
しかし、このままログインページのurlを外部に公開しても
ログインページとアプレットは見れるけど、同期を取るサーバーにうまく接続できない。
iptablesなどのfireWallソフトにポート解放ルールが適用されていないためである。
PaintChatの使用するport番号はコンフィグファイルで指定した値である。
sampleのコンフィグファイルでは41411番を使用することになっている。
よってiptablesなどのfirewallルールに41411番通過のルールを追加する。
ポート解放についての内容は割愛。
確認については、PaintChatサーバーが立ち上がってる状態で
ポート解放確認サイトで41411番のポートが空いているかどうかをチェックする。
この時、上手くポートが解放されていれば
(^o^) ホスト=**.**.**.** ポート=41411 にアクセスできました。 応答時間は *秒 でした。
と表示される。
8.サーバー停止
console上ではctrl+cのジョブ終了ショートカットキーで終了は可能であるが、
終了コマンドも用意されている
(現在このコマンドで終了できません!検証中・・・)
java -Duser.dir=/var/www/html/paintchat -cp ./PaintChat.jar paintchat_server.Server ./cnf/template/.paintchat exit
実行すると
/var/www/html/paintchat/cnf/template/.paintchat server got terminated
と表示される。・・・・が、なぜか肝心のプロセスは終了していない!
terminatedうそやん。
(追記)
やはり、exitコマンド効かないようです。
ps aux | grep java | grep PaintChat.jar | grep -v grep | awk '{ print $2 }' | xargs kill -9
などで、プロセスを直接殺すしかないようです。
*1:僕の場合DocumentRootを変更しているが