Здравствуйте уважаемы форумчане!Необходимо в школе развернуть электронный журнал.
Вот этот вот: http://www.rujel.net/
Система FreeBSD.В цулом все развернул, все работает. Но когда запускаю сайты через Apache+mod_WebObjects, сайты почему-то кривые...
Не работает ни одна ссылка, все криво и т.д.Решил не мучаться, а запускать Rujel демоном. Как JavaMonitor.
Над скриптом rc.f/ тож долго голову не ломал - взял за основу тот же JavaMonitor.Что получилось... Исходный скрипт JavaMonitor:
#!/bin/sh
# $FreeBSD: ports/www/webobjects/files/JavaMonitor.sh.in,v 1.3 2012/01/14 08:57:21 dougb Exp $
#
# PROVIDE: JavaMonitor
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: shutdown
#
# Define these JavaMonitor_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
#
# DO NOT CHANGE THESE DEFAULT VALUES HERE. /etc/rc.subr
name="JavaMonitor"
rcvar=JavaMonitor_enableload_rc_config "$name"
load_rc_config NEXTJavaMonitor_enable="${JavaMonitor_enable-"NO"}"
JavaMonitor_user="${JavaMonitor_user-www}"
JavaMonitor_flags="${JavaMonitor_flags-"-WOPort 56789"}"
JavaMonitor_pidfile="${JavaMonitor_pidfile:-/var/run/webobjects/${name}.pid}"
JavaMonitor_logfile="${JavaMonitor_logfile:-/var/log/webobjects/${name}.log}"
NEXT_ROOT="${NEXT_ROOT-/usr/local/apple}"pidfile="${JavaMonitor_pidfile}"
logfile="${JavaMonitor_logfile}"
runuser="${JavaMonitor_user}"procname=`basename /usr/local/diablo-jdk1.6.0/bin/java`
log_args=">>${logfile} 2>&1 "
run_command="${NEXT_ROOT}/Library/WebObjects/JavaApplications/${name}.woa/${name}"
flags="-p ${pidfile} ${run_command} ${JavaMonitor_flags}"
command="/usr/sbin/daemon"
command_args="${log_args}"export NEXT_ROOT=${NEXT_ROOT}
start_precmd="start_precmd"
start_precmd()
{
if [ "x${runuser}" = "xroot" ]; then
err 1 "You have to set ${name}_user to a non-root user for security reasons"
fi
touch ${pidfile} && chown ${runuser} ${pidfile}
touch ${logfile} && chown ${runuser} ${logfile}
}run_rc_command "$1"
Мой скрипт:
#!/bin/sh# PROVIDE: Rujel
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: shutdown. /etc/rc.subr
name="Rujel"
rcvar=Rujel_enableload_rc_config "$name"
NEXT_ROOT="${NEXT_ROOT-/usr/local/apple}"
#Rujel_user="${Rujel_user-www}"
Rujel_enable="${Rujel_enable-"NO"}"
Rujel_flags="${Rujel_flags-"-WOPort 2000"}"
Rujel_pidfile="${Rujel_pidfile:-/var/run/webobjects/${name}.pid}"
Rujel_logfile="${Rujel_logfile:-/var/log/webobjects/${name}.log}"pidfile="${Rujel_pidfile}"
logfile="${Rujel_logfile}"
#runuser="${Rujel_user}"procname=`basename /usr/local/diablo-jdk1.6.0/bin/java`
log_args=">>${logfile} 2>&1 "
run_command="${NEXT_ROOT}/Local/Library/WebObjects/Applications/${name}.woa/${name}"
flags="-p ${pidfile} ${run_command} ${Rujel_flags}"
command="/usr/sbin/daemon"
command_args="${log_args}"export NEXT_ROOT=${NEXT_ROOT}
#start_precmd="start_precmd"
#start_precmd()
#{
# if [ "x${runuser}" = "xroot" ]; then
# err 1 "You have to set ${name}_user to a non-root usrt for security reasons"
# fi
# touch ${pidfile} $$ chown ${runuser} ${pidfile}
# touch ${logfile} $$ chown ${runuser} ${logfile}
#}run_rc_command "$1"
При тестировние все работет, но вот при перезагрузке машины Ружель не стартует:
Reading UNIXClassPath.txt ...
Launching Rujel.woa ...
java
java -DWORootDirectory="/usr/local/apple" -DWOLocalRootDirectory="/usr/local/apple/Local" -DWOUserDirectory="/" -DWOEnvClassPath="" -DWOApplicationClass=net.rujel.Application -DWOPlatform=UNIX -Dcom.webobjects.pid=1626 -classpath WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap -WOPort 2000 -WOFrameworksBaseURL /WebObjects/Rujel.woa/Frameworks
exec: java: not foundP.S. С java я вообще первый раз имею дело. Как я понимаю, скрипт, который Rujel.woa/Rujel,
после всяких инициалицации, запускает яву, указывает ей Java прилажение. И ошибка то, мол яву не нахожу...
Хотя JavaMonitor запускается без проблем. Еще раз повторюсь Ружель тоже стартует и останавливается rc.d скриптом
без проблем, но только тогда, когдя я уже вошел в систему. А при запуске ПК - фига... А надо чтоб стартовала...Прошу вашей помощи.
>[оверквотинг удален]
> exec: java: not found
> P.S. С java я вообще первый раз имею дело. Как я понимаю,
> скрипт, который Rujel.woa/Rujel,
> после всяких инициалицации, запускает яву, указывает ей Java прилажение. И ошибка то,
> мол яву не нахожу...
> Хотя JavaMonitor запускается без проблем. Еще раз повторюсь Ружель тоже стартует и
> останавливается rc.d скриптом
> без проблем, но только тогда, когдя я уже вошел в систему. А
> при запуске ПК - фига... А надо чтоб стартовала...
> Прошу вашей помощи.Порядок инициализации системы проверяли?
>> при запуске ПК - фига... А надо чтоб стартовала...
>> Прошу вашей помощи.прописать путь к java в скрипте
>>> при запуске ПК - фига... А надо чтоб стартовала...
>>> Прошу вашей помощи.
> прописать путь к java в скриптеСпасибо.
Скрипт, который запускает Java приложение:
...
eval exec java ...подправил на:
eval exec /usr/local/bin/java ...Все нормально работает.
P.S.
Только я дурак или лыжи не едут?
Он же должен без полного пути видеть /usr/local/bin/java. И опять же в JavaMonitor указано просто java и работает...В принципе проблема решена, но мне такое решение не очень нравится. Потому что не понимаю, почему в одном случае нормально работает (JavaMonitor), в другом нет, надо полностью путь прописывать...
> Он же должен без полного пути видеть /usr/local/bin/java. И опять же в
> JavaMonitor указано просто java и работает...Не должен. Пути при запуске скрипта через систему инициализации определяются
где-то в файлах настроек системы инициализации. Если скрипту нужны другие пути,
их можно выставить непосредственно в нем самом, например, вставив следующие
описания в начало скрипта:PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
export PATH> В принципе проблема решена, но мне такое решение не очень нравится. Потому
> что не понимаю, почему в одном случае нормально работает (JavaMonitor), в
> другом нет, надо полностью путь прописывать...При запуске из консоли срабатывает пользовательский файл инициализации, в котором
могут быть прописаны свои отдельные пути запуска программ.
> В цулом все развернул, все работает. Но когда запускаю сайты через Apache+mod_WebObjects,
> сайты почему-то кривые...
> Не работает ни одна ссылка, все криво и т.д.Описание проблемы смутное, но похоже, что не подгружаются статические ресурсы (JavaScript, CSS, картинки).
Apache должен отдавать их сам напрямую (не через WebObjects). А для этого что-то где-то надо настроить.
Посмотрите, где он их пытается взять и настройте Apache, чтобы по этому URL отдавал содержимое директорий WebServerResources в Rujel.woa и фреймворках.> Решил не мучаться, а запускать Rujel демоном. Как JavaMonitor.
Так делать не рекомендуется, поскольку при прямом доступе по порту, запущенное WebObjects приложение может принимать управляющие команды.
Например, злоумышленник может установить у себя JavaMonitor и скомандовать из него журналу отключиться.
Хотя, в России немного найдется специалистов, которые об этом знают.Если удастся добиться успеха, опишите, пожалуйста, установку в вики:
http://atomic.rujel.net/mediawiki/index.php/Сообщество
Спасибо. О проблеме безопасности при доступе к WO я не знал.> Например, злоумышленник может установить у себя JavaMonitor и скомандовать из него журналу отключиться.
> Хотя, в России немного найдется специалистов, которые об этом знают.Интернет он такой, что знает один, то знают все. А школьники (наиболее заинтересованный взломщик) способны на многое. Вроде сидит себе, не ждешь от него ничего, а он как выдал решение задачи, над которой сам месяц бился и не решил.
Пока меня загрузили другой, очень объемной и важной, работой. Но обязательно, в свободное время, попытаюсь запустить WO через apache. Обещаю при успехе описать процесс установки.
На данный момент я считаю что не очень корректно выкладывать процесс установки Rujel+FreeBSD, раз такая вот проблема с безопасностью. Но если необходимо, я выложу.
С уважением,
Алексей.
>> Хотя, в России немного найдется специалистов, которые об этом знают.
> Интернет он такой, что знает один, то знают все. А школьники (наиболееМало знать о возможности, надо ещё уметь ей воспользоваться.
> На данный момент я считаю что не очень корректно выкладывать процесс установки
> Rujel+FreeBSD, раз такая вот проблема с безопасностью. Но если необходимо, я
> выложу.Я думаю, пока не горит. Лучше всё таки правильную установку описывать )
Руководства по деплойменту WebObjects на BSD:
на русском:
http://eshade.blogspot.com/2008/10/blog-post_16.html
на английском:
http://wiki.wocommunity.org/x/jwAQ