2009/03/04

WebObjects 5.2.4 を Apache 2.2 (CentOS 5.2) で動かす

アップル - WebObjects

WebObjects とは、アップル社が開発した、Java による Webアプリケーションフレームワークで、強力なWebサービスを簡単に構築することができる素晴らしいツールです。


Apple社自身でも、Apple Store, MobileMe(旧.Mac), iTunes Store などを WebObjects で構築しています。


そんな WebObjects ですが、弊社で使用している WebObjects 5.2 は、Linux の場合 Apache 1.3 でないと動いてくれません。


しかしながら、最近の OS はより高機能な Apache 2.2 系が搭載されており、できれば Apache 2.2 系で動作させたいものです。

これまで何度かチャレンジしたものの、なかなかうまく動いてくれませんでした・・・。


今回やっとうまくいったのでメモしておきます。



Java のインストール


WebObjects 5.2.4 では、Java 1.4 系を使用します。


$ chmod +x j2re-1_4_2_19-linux-i586-rpm.bin
$ ./j2re-1_4_2_19-linux-i586-rpm.bin
inflating: j2re-1_4_2_19-linux-i586.rpm
Done.

$ sudo rpm -ihv j2re-1_4_2_19-linux-i586.rpm
########################################### [100%]

$ sudo vi /etc/profile.d/java.sh
# Java
export JAVA_HOME=/usr/java/j2re1.4.2_19
export PATH=$PATH:$JAVA_HOME/bin

$ sudo chmod +x /etc/profile.d/java.sh
$ source /etc/profile.d/java.sh

$ java -version
java version "1.4.2_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
Java HotSpot(TM) Client VM (build 1.4.2_19-b04, mixed mode)

$ java -version -server
java version "1.4.2_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_19-b04)
Java HotSpot(TM) Server VM (build 1.4.2_19-b04, mixed mode)


WebObjects 5.2 のインストール


さて、本体のインストールです。インストールCDの Deployment/SOLARIS フォルダを ftp でアップしています。


はじめに install.sh を修正します。修正内容は、"-pxZf" を "-pxzf" に修正します。(3か所あります)


$ sudo ./install.sh -license X-NNN-XXX-NNN-XXX-NNN-XXX-NNN-XXX-NNN -adaptorsOnly NO -minimalInstall NO -cgibin /var/www/cgi-bin -docroot /var/www/html -woroot /opt/Apple

INSTALLATION:
Beginning WebObjects 5.2 full installation:

. Creating WebObjects installation directory ...
. Creating WebObjects' Applications and Frameworks directories ...
. Installing WebObjects Adaptor source ...
. Installing WebObjects Deployment ...
. Installing WODocumentRoot frameworks into document root ...
. Creating startup scripts ...
. ... Done.

WebObjects 5.2 Deployment, Full Install is now installed.

$ sudo chmod +x /etc/profile.d/webobjects.sh
# WebObjects
export NEXT_ROOT=/opt/Apple

$ sudo chmod +x /etc/profile.d/webobjects.sh
$ source /etc/profile.d/webobjects.sh


WebObjects 5.2 を WebObjects 5.2.4 へ


WebObjects 5.2 の最終バージョンは 5.2.4 ですので、アップデートします。アップデートファイルはこちらから。


$ wget http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/Enterprise/webobjects/patches/5.2/WO524Solaris.tar.gzip
$ wget http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/Enterprise/scripts/patcher.sh
$ vi patcher.sh
# COMPRESS=Z # gnutar compress flag: 'Z' or 'z' or ''
# Z を z に修正
COMPRESS=z # gnutar compress flag: 'Z' or 'z' or ''

$ chmod 511 patcher.sh
$ sudo ln -s /bin/tar /bin/gnutar
$ sudo ./patcher.sh -install WO524Solaris.tar.gzip -next_root $NEXT_ROOT
No errors, extracting patch

Install of wo524/WO524Solaris.tar.gzip successful

$ sudo cp -rf $NEXT_ROOT/Library/WebObjects/WODocumentRoot/WebObjects /var/www/html/

$ sudo vi $NEXT_ROOT/Library/Frameworks/JavaWebObjects.framework/Resources/WebServerConfig.plist
//DocumentRoot = "/Library/WebServer/Documents";
DocumentRoot = "/var/www/html";



アダプタの作成


いよいよ本番、Apache 2.2 対応のアダプタを作成します。ソースは Project Wonder から取得します。


$ sudo yum install httpd-devel
$ wget http://webobjects.mdimension.com/wonder/releases/Wonder-5.0.0.8972-Source.tar.gz
$ tar -zxvf Wonder-5.0.0.8972-Source.tar.gz
$ cd Wonder/Utilities/Adaptors/

$ vi make.config
#ADAPTOR_OS = MACOS
ADAPTOR_OS = LINUX
CC = gcc

$ make
$ cd Apache2.2/
$ sudo /usr/sbin/apxs -i -a -n WebObjects mod_WebObjects.la

$ vi apache.conf
LoadModule WebObjects_module modules/mod_WebObjects.so
#LoadModule WebObjects_module modules/mod_WebObjects.so

$ sudo cp apache.conf /etc/httpd/conf.d/webobjects.conf
$ sudo chmod 644 /etc/httpd/conf.d/webobjects.conf

$ sudo vi /etc/httpd/conf/httpd.conf
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

$ sudo /usr/sbin/httpd -M
Loaded Modules:
WebObjects_module (shared)
Syntax OK

$ sudo /etc/rc.d/init.d/httpd restart


SELinux


SELinux を使っている場合は、httpd よる 1085 ポート(wotaskd)への接続が拒否されてしまいます。


setroubleshoot: SELinux は http デーモンによるネットワークポート 1085 ヘの接続を阻止しています。 For complete SELinux messages.

次のようにして httpd がネットワークポートに接続するのを許可します。


$ sudo /usr/sbin/setsebool -P httpd_can_network_connect=1


動作確認


最後に、起動スクリプトの作成と自動起動です。


$ sudo vi /etc/rc.d/init.d/WOServices
#!/bin/sh
#
# Startup script for the WebObjects
#
# chkconfig: 345 85 15
# description: WebObject services
#

# Source function library.
. /etc/rc.d/init.d/functions

export PATH=/usr/java/j2re1.4.2_19/bin/:$PATH
WOSERVICES_SCRIPT="/opt/Apple/Library/WebObjects/Executables/WOServices"

# See how we were called.
case "$1" in
start)
echo -n "Starting WebObjects: "
daemon ${WOSERVICES_SCRIPT} start
echo
touch /var/lock/subsys/WebObjects
;;
stop)
echo -n "Shutting down WebObjects: "
${WOSERVICES_SCRIPT} stop
echo
rm -f /var/lock/subsys/WebObjects
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

exit 0


$ sudo chmod +x /etc/rc.d/init.d/WOServices
$ sudo /etc/rc.d/init.d/WOServices start
Starting WebObjects: Beginning WebObjects services startup...
[ OK ]
$ sudo /sbin/chkconfig --add WOServices


root より JavaMonitor が起動できればOKです。


# $NEXT_ROOT/Library/WebObjects/JavaApplications/JavaMonitor.woa/JavaMonitor -WOPort 56789 &

Monitor for WebObjects 5

参考:


0 件のコメント: