蠟梅
款冬華さく大寒・初候。寒さがもっとも堪える時期になった。それでもご近所の家の庭に蠟梅(ろうばい)が咲いていて,春が少しずつ近づいていることも感じられるようになった。蠟梅は,新年が来る前に年のうちに花をつける梅として珍重されて来たそうである。確かに,今日は旧暦の 12 月 22 日である。
Mac を買い替えて,面倒な開発環境整備にかかずらっている。私はめったに基本ソフトウェアのバージョンアップをしないタチで,OS,コンパイラ,愛用の文房具はまず三年から五年は同じ版を使う。計算機を更改したタイミングでやっと重い腰をあげてバージョンアップを行うのである。今日は Tomcat7 を入れたあとの,自作 Web アプリケーションの動作確認を行った。数年も放っておくと様々なことを忘れてしまい,躓くことたびたび。今日の記事は,最後の Apache proxy-
旧字・旧仮名遣い変換 misimaServlet と漢詩音韻分析・漢字平仄検索・詩語検索 misima
いざ実行。Servlet から "misimaServlet-ERROR: 192.168.1.6; Error occured in connection misimaserver: localhost:34000 - Connection refused" のメッセージ。これら二つの Servlet がソケットで接続するデーモンプログラム,肝心の変換・分析処理サーバ misima
旧字・旧仮名遣い変換コンソール・プログラム misima と CGI はここにインストールドキュメントを残しておいたのでさっさと設置できたが,
# モジュールのインストール $ cd ~/src/misima/daemon $ sudo cp misimaserver misimakansiserver killmisimaserver startmisimaserver /usr/local/bin # 旧字・旧仮名遣い変換用辞書 DBM の生成とインストール $ cd ../ $ ./module/genmisimadbm -i ./dic -o ./dic/sdbm $ ./module/genmisimadbm -i ./dic -o ./dic/udbm -u ./dic/udic-dbm $ sudo cp -R ./dic/sdbm ./dic/udbm /usr/local/etc/misima/ # 漢詩分析用漢字平仄辞書及び詩語 SQLite3 DB の生成とインストール $ cd ../kansi $ make kdb sdb rm -f KANJI.db sqlite3 KANJI.db < mkkanji.sql sqlite3 -separator , KANJI.db ".import kanji.out KANJITBL" cat sigo.src sigojiten.chk | LC_ALL=C sort | ./addkyujisigo.pl 1> sigo.out 2> sigokyuji.err ./addinjikyuji.pl < sigo.out 1> sigo.final 2> injikyuji.err LC_ALL=C sort sigo.final | ./sigomerge.pl 1> sigo.load 2> sigomerge.err rm -f SIGO.db sqlite3 SIGO.db < mksigo.sql sqlite3 -separator , SIGO.db ".import sigo.load SIGOTBL" $ sudo cp KANJI.db SIGO.db /usr/local/etc/misima # 設定ファイルのインストール $ cd ../soap/conf $ sudo cp misimaserverrc kansiserverrc /usr/local/etc/misima/ # ログファイルの割当 $ cd /var/log $ sudo touch misimadaemon.log misimakansidaemon.log dwrAccess.log dwrOther.log # 起動 $ cd $ sudo startmisimaserver -a * misimaserver started. * misimakansiserver started. $ ps -ax | grep "misima[^ ]*server" | grep -v "grep" 551 s002 S 0:00.21 /usr/bin/perl -w /usr/local/bin/misimaserver -p 34000 -r /usr/local/etc/misima/misimaserverrc 559 s002 S 0:00.11 /usr/bin/perl -w /usr/local/bin/misimakansiserver -p 35000 -r /usr/local/etc/misima/kansiserverrc 561 s002 S 0:00.00 /usr/bin/perl -w /usr/local/bin/misimakansiserver -p 35000 -r /usr/local/etc/misima/kansiserverrc 562 s002 S 0:00.00 /usr/bin/perl -w /usr/local/bin/misimakansiserver -p 35000 -r /usr/local/etc/misima/kansiserverrc 563 s002 S 0:00.00 /usr/bin/perl -w /usr/local/bin/misimakansiserver -p 35000 -r /usr/local/etc/misima/kansiserverrc 564 s002 S 0:00.00 /usr/bin/perl -w /usr/local/bin/misimaserver -p 34000 -r /usr/local/etc/misima/misimaserverrc 565 s002 S 0:00.00 /usr/bin/perl -w /usr/local/bin/misimaserver -p 34000 -r /usr/local/etc/misima/misimaserverrc 566 s002 S 0:00.00 /usr/bin/perl -w /usr/local/bin/misimaserver -p 34000 -r /usr/local/etc/misima/misimaserverrc
4 プロセスずつきちんとサーバが起動した。ブラウザから実行して OK となった。公開サーバの環境も Tomcat7 に移行しようかと思う。
misima 漢詩音韻分析・漢字平仄検索・詩語検索
ところで Tomcat7 環境のデフォルトでは,ブラウザからの Web アプリケーションへのアクセスはポート番号 8080 を使う。Tomcat を Web アプリケーションサーバとして使う一方でサイトの大半のコンテンツは Apache Web サーバで公開する運用が一般的ではないかと思われる。このとき,ポート番号 80 で Apache のコンテンツに,8080 で Tomcat7 のアプリケーションにアクセスする運用でもよいが,ポート番号 80 でアクセスを一本化し Apache が受けた要求をプロキシ機能によって Tomcat にフォワードする運用が多くのサイトの選択ではないだろうか。ポート番号を制限するファイアウォールをユーザが使っている場合だってある。次に Apache の mod_
Mavericks 付属の Apache22 にはすでに mod_
LoadModule proxy_ajp_module libexec/apache22/mod_proxy_ajp.so
よって,なすべき作業はプロキシしたい自サイト Web アプリケーションの定義を追加することである。
# アクセスカウンタ・サーブレット ProxyPass /wa/ ajp://localhost:8009/webcount/ # SOAP Web Service ProxyPass /axis/ ajp://localhost:8009/axis/ # misima 旧字・旧仮名遣い変換サーバ ProxyPass /misimaservlet/ ajp://localhost:8009/misimaservlet/ # 漢詩音韻分析・詩語検索・漢字平仄検索サーバ ProxyPass /misimakansiservlet/ ajp://localhost:8009/misimakansiservlet/
この記述はすべて,上記に言及した私のサイトのアプリケーションに対するもので,ただの例に過ぎないので注意いただきたい。全部で四つのアプリケーションパスを指定している例である。一つ目は /wa/ というパスの要求を ajp プロキシプロトコルでもって Tomcat のアプリケーションパス /webcount/ に接続することを示している。つまり,ブラウザから http:
追加したら Apache を再起動する。Mavericks の Apache Web サーバの起動は,Mac OS 10.6 Snow Leopard までのように「システム環境設定」-「共有」-「Web共有」オンでは出来なくなった。10.8 Lion くらいから仕様が変わったらしい。サーバ管理者にしか使わせないようにしたのだろうが,Apple がなんでこんなところを変えなくてはならなかったのか,たいへん疑問である。UNIX と同様に apachectl start コマンドでこれを行うことが出来る。しかしながら,システムを再起動するたびにいちいち手動オペレーションをしたくない人は,次を投入しておくとよい。
$ sudo -s launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
これを投入したあとに apachectl restart でいちど再起動をかけておく。やっぱり勝手に動いてもらっては困るということになったら,この load のところを unload にすればよい。
これで misimaservlet へのアクセスは,