IBM выпускает новую версию ведущей в индустрии
платформы для обмена сообщениями и организации
групповой работы Lotus Notes и Domino 6
................
http://www.ibm.com/news/ru/2002/10/11_10_03.html
........, и я с этим согласен.
И
так....
I. Подготовка.
Domino R6 Server сгрузить можно отсюда.
или
отсюда.
1.Если на
вашем сервере включены такие демоны как Postfix,
Sendmail, POP3, Webserver (Apache), нужно их
остановить,
так как Domino Server использует
те же порты (smtp 25, pop3 110, imap 143, http
80, ssl 443).
rcpostfix stop
rcapache stop
/etc/int.d/postfix
stop
/etc/int.d/apache stop
2.
Теперь создадим новую группу "notes" и в ней
юзера "notes", который должен стартовать Domino
Server.
(Никогда Mail-, Web-, FTP Server
недолжен стартовать с правами "root" )
mkdir /var/log/notes
groupadd notes
useradd -g notes -d /var/log/notes notes
passwd notes
3. Нужно создать три
скрипта (domino,
lotus.sh, domino лежат здесь )следующего
содержания:
domino - этот
скрипт помещаем в директорию /etc/init.d
################## domino
######################
#! /bin/sh
#
#
init.d/domino
#
# and symbolic its link
#
# /sbin/rcdomino
#
# System
startup script for the Lotus Domino Server
#
### BEGIN INIT INFO
# Provides: domino
# Required-Start: $remote_fs $syslog
$network
# Required-Stop: $remote_fs $syslog
# Default-Start: 3 5
# Default-Stop: 0 1
2 6
# Description: Start Domino Server
### END INIT INFO
.
/etc/sysconfig/domino
test -e
/etc/sysconfig/domino && .
/etc/sysconfig/domino
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
test
$link = $base && START_DOMINO=yes
test "$START_DOMINO" = yes || exit 0
NOTES_SERVER=domino
OUTPUT_LOG=/var/log/notes/$NOTES_SERVER.log
INPUT_FILE=/var/log/notes/$NOTES_SERVER.input
STATUS=/var/log/notes/$NOTES_SERVER.status
# Set higher values for shared memory and
file handles in the kernel
echo
$MAXSHAREDMEM > /proc/sys/kernel/shmmax
echo $FILEMAX > /proc/sys/fs/file-max
if [ `uname -r | cut -d "." -f 2` == 2 ];
then
$INODEMAX = `expr $FILEMAX "*" 2`
echo $INODEMAX > /proc/sys/fs/inode-max
fi
ulimit -n $FILEDESC
ulimit -u
$USERPROC
DOMINO_BIN=$LOTUSDIR/bin/server
test
-x $DOMINO_BIN || exit 5
.
/etc/rc.status
rc_reset
case
"$1" in
start)
echo -n "Starting Lotus
Domino server"
test -f $INPUT_FILE || su -
$NOTES_USER -c "touch $INPUT_FILE"
test -f
$INPUT_FILE && su - $NOTES_USER -c "rm
$INPUT_FILE; touch $INPUT_FILE"
su -
$NOTES_USER -c "$DOMINO_BIN <$INPUT_FILE
>$OUTPUT_LOG 2>&1 &" ||
return=$rc_failed
rm -f $STATUS
touch
$STATUS
rc_status -v
;;
stop)
echo "Shutting down Lotus Domino server"
echo "... waiting for shutdown to complete"
rm -f $STATUS
echo "quit" >>
$INPUT_FILE
count=0
NOTES_RUNNING=`ps
-fu $NOTES_USER |grep $LOTUSDIR | awk '{print
$2}'`
while [ "$NOTES_RUNNING" ] ; do
sleep 10
count=`expr $count + 1`
echo ".. waiting "$count"0 seconds"
if [
$count -eq 13 ] ; then
echo "Domino is still
running after 2 minutes"
echo "... now for
the ungraceful method"
cd $NOTES_PATH
rm "~notes.lck"
for i in `ps -fu
$NOTES_USER |grep $LOTUSDIR | awk '{print $2}'`;
do
kill -9 $i
done
mems=`ipcs -m
|grep $NOTES_USER | awk '{print $2}'`
sems=`ipcs -s |grep $NOTES_USER | awk
'{print $2}'`
for j in $mems; do ipcrm
shm $j ; done >/dev/null 2>&1
for
j in $sems; do ipcrm sem $j ; done >/dev/null
2>&1
exit
fi
NOTES_RUNNING=`ps -fu $NOTES_USER |grep
$LOTUSDIR | awk '{print $2}'`
done
echo
-n "Domino server shutdown completed"
rc_status -v
;;
restart)
$0 stop
$0 start
rc_status
;;
reload)
echo -n "Reload Lotus
Domino: "
$0 stop
$0 start
rc_status
;;
status)
echo -n "Checking for
Lotus Domino: "
if [ ! -f $STATUS ]; then
rc_status -u
# rm -f $STATUS
else
# touch -f $STATUS
rc_status -v
fi
;;
*)
echo "Usage: $0
{start|stop|status|restart|reload|}"
exit 1
;;
esac
rc_exit
###################################################
Выполните следующий приказ ( чтобы этот
скрипт имел права "выполнить" ):
chmod
755 /etc/init.d/domino
lotus.sh - этот
скрипт помещаем в директорию /etc/profile.d
#################### lotus.sh
#####################
# /etc/profile.d/lotus.sh
. /etc/sysconfig/domino
if [ "$LOGNAME"
= $NOTES_USER ]; then
export
PATH=$PATH:$LOTUSDIR/bin:$NOTES_PATH:$LOTUSDIR/notes/latest/linux/
export LANG=$NOTESLANG
fi
###############################################
domino - этот
скрипт помещаем в директорию /etc/sysconfig
#################### domino
######################
# Start the Lotus Domino
Server (yes/no)
START_DOMINO="yes"
NOTES_USER="notes"
NOTES_PATH="/local/notesdata"
LOTUSDIR="/opt/lotus"
NOTESLANG="ru_RU"
MAXFILES="16384"
MAXSHAREDMEM="2140053504"
FILEDESC="8192"
USERPROC="2048"
##################################################
(возможная проблема: NOTESLANG="ru_RU"
замените на NOTESLANG="en_EN")
Создаём
символический линк для старта Domino Server'а с
консоли:
ln -s /etc/init.d/domino
/sbin/rcdomino
Создаём символический
линк для старта Domino Server'а с третьей и
пятой Runlevel :
ln -s
/etc/init.d/domino /etc/init.d/rc3.d/K12domino
ln -s /etc/init.d/domino
/etc/init.d/rc3.d/S09domino
ln -s
/etc/init.d/domino /etc/init.d/rc5.d/K12domino
ln -s /etc/init.d/domino
/etc/init.d/rc5.d/S09domino
Эти скрипты
написаны для дистрибутивов SuSE 8.0 - 8.2 и
UnitedLinux,
чтобы всё работало на RedHat'е
и Mandrake, нужно поместить в директории /etc
дополнительный файл rc.status
такого содержания:
################ rc.status
########################
# /etc/rc.status
#
Definition of boot script return messages
#
# The bootscripts should use the variables
rc_done and rc_failed to
# report whether
they failed or succeeded. See
/etc/init.d/skeleton for
# an example how
the shell functions rc_status and rc_reset are
used.
#
# These functions make use of
the variables rc_done and rc_failed;
#
rc_done_up and rc_failed_up are the same as
rc_done and rc_failed
# but contain a
terminal code to move up one line before the
output
# of the actual string. (This is
particularly useful when the script
# starts
a daemon which produces user output with a
newline character)
#
# The variable
rc_reset is used by the master resource control
script
# /etc/init.d/rc to turn off all
attributes and switch to the standard
#
character set.
#
# \033 ascii ESCape
# \033[<NUM>G move to column
<NUM> (linux console, xterm, not vt100)
# \033[<NUM>C move <NUM> columns
forward but only upto last column
#
\033[<NUM>D move <NUM> columns
backward but only upto first column
#
\033[<NUM>A move <NUM> rows up
#
\033[<NUM>B move <NUM> rows down
# \033[1m switch on bold
# \033[31m
switch on red
# \033[32m switch on green
# \033[33m switch on yellow
# \033[m
switch on color/bold
# \017 exit alternate
mode (xterm, vt100, linux console)
#
\033[10m exit alternate mode (linux console)
# \015 carriage return (without newline)
#
# check whether splash screen
animations are installed.
_rc_splash=0
test -f /etc/sysconfig/bootsplash &&
. /etc/sysconfig/bootsplash
test -x
/sbin/splash && _rc_splash=1
if
test -z "$LINES" -o -z "$COLUMNS" ; then
eval `stty size 2>/dev/null | (read L C;
\
echo LINES=${L:-24} COLUMNS=${C:-80})`
fi
test $LINES -eq 0 && LINES=24
test $COLUMNS -eq 0 && COLUMNS=80
export LINES COLUMNS
if test -t 1 -a
"$TERM" != "raw" -a "$TERM" != "dumb" &&
stty size > /dev/null 2>&1 ; then
esc=`echo -en "\033"`
extd="${esc}[1m"
warn="${esc}[1;31m"
done="${esc}[1;32m"
attn="${esc}[1;33m"
norm=`echo -en
"${esc}[m\017"`
stat=`echo -en
"\015${esc}[${COLUMNS}C${esc}[10D"`
rc_done="${stat}${done}done${norm}"
rc_running="${stat}${done}running${norm}"
rc_failed="${stat}${warn}failed${norm}"
rc_missed="${stat}${warn}missing${norm}"
rc_skipped="${stat}${attn}skipped${norm}"
rc_dead="${stat}${warn}dead${norm}"
rc_unused="${stat}${extd}unused${norm}"
rc_unknown="${stat}${attn}unknown${norm}"
rc_done_up="${esc}[1A${rc_done}"
rc_failed_up="${esc}[1A${rc_failed}"
rc_reset="${norm}"
rc_save="${esc}7"
rc_restore="${esc}8"
function rc_cuu ()
{ echo -en "\033[${1}A"; }
function
rc_timer_on () {
# Draw seconds of running
timout to column.
# Two arguments: timeout
in seconds and offset
local n=$1
local
c=$2
(trap "exit 0" SIGTERM
while test
$((n--)) -gt 0; do
sleep 1;
if test $n
-gt 9 ; then
echo -en
"\015${esc}[${c}C(${n}s) "
else
echo -en
"\015${esc}[${c}C( ${n}s) "
fi
done)
& _rc_timer_pid=$!
}
function
rc_timer_off () {
if test -n
"$_rc_timer_pid" ; then
kill -SIGTERM
$_rc_timer_pid > /dev/null 2>&1
fi
unset _rc_timer_pid
}
else
esc=""
extd=""
warn=""
done=""
attn=""
norm=""
stat=""
rc_done="..done"
rc_running="..running"
rc_failed="..failed"
rc_missed="..missing"
rc_skipped="..skipped"
rc_dead="..dead"
rc_unused="..unused"
rc_unknown="..unknown"
rc_done_up="${rc_done}"
rc_failed_up="${rc_failed}"
rc_reset=""
rc_save=""
rc_restore=""
function
rc_cuu () { return; }
function rc_timer_on
() { return; }
function rc_timer_off () {
return; }
fi
_rc_status=0
_rc_status_all=0
_rc_todo=$1
function rc_check ()
{
_rc_status_ret=$?
test $_rc_status_ret
-eq 0 || _rc_status=$_rc_status_ret
test
$_rc_status -eq 0 || _rc_status_all=$_rc_status
return $_rc_check_ret
}
function
rc_reset ()
{
_rc_status=0
_rc_status_all=0
rc_check
return 0
}
if test "$_rc_todo" = "status" ;
then
function rc_status ()
{
rc_check
_rc_status_ret=$_rc_status
for i ; do
case "$i" in
-v|-v[1-9]|-v[1-9][0-9])
echo -en
"$rc_save"
test -n "${i#-v}" &&
rc_cuu ${i#-v}
case "$_rc_status" in
0)
echo -en "$rc_running" ;; # service running
1) echo -en "$rc_dead" 1>&2 ;; #
service dead (but has pid file)
2) echo -en
"$rc_dead" 1>&2 ;; # service dead (but
has lock file)
3) echo -en "$rc_unused" ;; #
service not running
4) echo -en
"$rc_unknown" ;; # status is unknown
esac
echo -en "$rc_restore"
test -z "${i#-v}"
&& echo
# reset _rc_status to 0
after verbose case
_rc_status=0 ;;
-r)
rc_reset ;;
-s) echo -e "$rc_skipped" ;
rc_failed 3 ;;
-u) echo -e "$rc_unused" ;
rc_failed 3 ;;
*) echo "rc_status: Usage:
[-v[<num>] [-r]|-s|-u]" 1>&2 ;
return 0 ;;
esac
done
return
$_rc_status_ret
}
elif test -n
"$_rc_todo" ; then
function rc_status ()
{
rc_check
test "$_rc_status" -gt 7
&& rc_failed 1
_rc_status_ret=$_rc_status
case
"$_rc_todo" in
stop)
# program is not
running which
# is success if we stop
service
test "$_rc_status" -eq 7 &&
rc_failed 0 ;;
esac
for i ; do
case
"$i" in
-v|-v[1-9]|-v[1-9][0-9])
echo
-en "$rc_save"
test -n "${i#-v}" &&
rc_cuu ${i#-v}
case "$_rc_status" in
0)
echo -en "$rc_done" ;; # success
1) echo -en
"$rc_failed" 1>&2 ;; # generic or
unspecified error
2) echo -en "$rc_failed"
1>&2 ;; # invalid or excess args
3)
echo -en "$rc_missed" 1>&2 ;; #
unimplemented feature
4) echo -en
"$rc_failed" 1>&2 ;; # insufficient
privilege
5) echo -en "$rc_skipped"
1>&2 ;; # program is not installed
6)
echo -en "$rc_unused" 1>&2 ;; # program
is not configured
7) echo -en "$rc_failed"
1>&2 ;; # program is not running
*)
echo -en "$rc_failed" 1>&2 ;; # unknown
(maybe used in future)
esac
echo -en
"$rc_restore"
test -z "${i#-v}" &&
echo
# reset _rc_status to 0 after verbose
case
_rc_status=0 ;;
-r) rc_reset ;;
-s) echo -e "$rc_skipped" 1>&2 ;
rc_failed 5 ;;
-u) echo -e "$rc_unused"
1>&2 ; rc_failed 6 ;;
*) echo
"rc_status: Usage: [-v[<num>] [-r]|-s|-u]"
1>&2 ; return 0 ;;
esac
done
return $_rc_status_ret
}
else
function rc_status ()
{
rc_check
_rc_status_ret=$_rc_status
for i ; do
case "$i" in
-v|-v[1-9]|-v[1-9][0-9])
echo -en "$rc_save"
test -n "${i#-v}"
&& rc_cuu ${i#-v}
test $_rc_status
-gt 0 && echo -en "$rc_failed" || echo
-en "$rc_done"
echo -en "$rc_restore"
test -z "${i#-v}" && echo
#
reset _rc_status to 0 after verbose case
_rc_status=0 ;;
-r) rc_reset ;;
-s)
echo -e "$rc_skipped" ; return 0 ;;
-u) echo
-e "$rc_unused" ; return 0 ;;
*) echo
"rc_status: Usage: [-v[<num>] [-r]|-s|-u]"
1>&2 ; return 0 ;;
esac
done
return $_rc_status_ret
}
fi
function rc_failed ()
{
rc_reset
case "$1" in
[0-7]) _rc_status=$1 ;;
"") _rc_status=1
esac
rc_check
return $_rc_status
}
function
rc_exit ()
{
exit $_rc_status_all
}
function rc_confirm()
{
local
timeout="30"
local answer=""
local ret=0
case "$1" in
-t) shift; timeout=$1;
shift ;;
esac
local message="$@,
(Y)es/(N)o/(C)ontinue? [y] "
:
${REDIRECT:=/dev/tty}
while true ; do
read -t ${timeout} -n 1 -p "${message}"
answer < $REDIRECT > $REDIRECT 2>&1
case "$answer" in
[yY]|"") ret=0; break
;;
[nN]) ret=1; break ;;
[cC]) ret=2;
break ;;
*) echo; continue
esac
done
echo
return $ret
}
function
rc_splash()
{
test "$SPLASH" != "no"
&& test "$_rc_splash" -eq 1 &&
/sbin/splash "$1"
progress=$(( $progress + 1
))
}
function rc_active ()
{
for x in /etc/init.d/*.d/S[0-9][0-9]${1} ;
do
test -e $x || break
return 0
done
return 1
}
###############################################
II.
Инсталляция
1. Распаковываем
сгруженный пакет в любой директории (например в
/usr/local/src)
2. Инсталлируем Domino
Server:
cd /usr/local/src/LINUX
./INSTALL
Следуем укаэаниям
стандартной инсталляции:
........................
.......................
3. Теперь заходим в систему
как юзер "notes":
ssh -X notes@localhost
cd /local/notesdata
/opt/lotus/bin/http
httpsetup
Hе стартует Java Virtul
Machine ?
возможная проблема: в файле
/etc/sysconfig/language RC_LANG="de_DE@euro"
заменить на RC_LANG="de_DE"
(для немецкого
дистрибутива)
Cтартует ! Хорошо, идём
дальше:
Finish
exit
4. Cтартуем
Domino Server:
Откроем первую консоль и
даём приказ:
rcdomino start
Откроем вторую консоль и даём приказ:
tail -f -n 100 /var/log/notes/domino.log
Здесь мы можем контролировать Domino
Server
Все приказы Domino Server'у
можно давать на консоле с помощью приказа "echo"
например: show server
echo "show server"
> /var/log/notes/domino.input
или
например: quit
echo "quit" >
/var/log/notes/domino.input
и так далее...
Откроем вторую консоль и даём приказ:
tail -f -n 100 /var/log/notes/domino.log
Инсталляция Domino
Server'а закончена.
1.Есть две
возможности конфигурировать Domino Server:
a.При помощи Internet Explorer 5.5 и
выше или Netscape 4.7
(в нашем примере:
http://swesda.gennadi.net/webadmin.nsf)
юзер: administrator notes
пароль:
*******
b. Или инсталлировать Lotus Notes
Administrator Client'a на Windows-Workstation.
Я исхожу из того, что Samba-Server
инсталлирован и
сконфигурирован так, как я
описал (см. выше) в статье
Linux и Samba работают
как Server NT4.0-PDC.
С начала
нужно дополнить path u:\lotus
Windows restart
Логин
на Windows-Workstation как юзер "root" и домен
"gennadi.net".
Теперь инсталлируем Lotus
Notes Administrator Client
Здесь нужно изменить C:\ на U:\ , чтобы
каждый
юзер имел собственную lotus-data
директорию на Server'e.
Терерь на вашем Desktop'е появились
две иконки "Domino Admin 6" и "Lotus Notes 6".
Очень
важно! Файл notes.ini
находящийся в директории С:\program
files\lotus\notes\
вырезать ( cut ) и
поместить ( paste ) в u:\lotus.
Cтартуем "Domino Admin 6" и
конфигурируем для нашего примера:
2.Конфигурация Domino Server'а
выглядит так:
а.
б. Щёлкните на "Edit Server" и впишите
имя вашего домена и хоста в графу
(в моём
примере "gennadi.net" и "swesda.gennadi.net")
Domain name: gennadi.net
Fully
qualified Internet host name: swesda.gennadi.net
Имя вашего домена и хоста должны быть в
интернете извесны,
чтобы Domino Server мог
посылать и принимать почту.
Активируйте
дополнительно
Routing tasks: SMTP Mail
Routing
SMTP listener task: Enabled
в.
г. В графу "Relay host for messages
leaving the local internet domain"
внесите
имя host'a или ip adress вашего
интернет-провайдера, в крайнем случае оставте
пустым.
д. Активируйте дополнительно Router/SMTP
- Advanced - Controls
Hold undeliverable
mail: Enabled
3. Создадим двух юзеров "ivan" и
"klava"
C начала скопируем файл cert.id,
котокый лежит в директории /etc/notesdata на
Linux-Server'e "Swesda" в
директорию
U:\lotus\notes\data\ids на Windows-Workstation
На Windows-Workstation и в регистре
"Сonfiguration-Registration" щёлкните на
"Person..."
Шёлкните на"cert.id" и введите пароль
Tерерь регистрируем юзеров на
пример "ivan" и "klava":
Это всё .............
Tерерь
можно инсталлировать Lotus Notes Сlient'a ( по
выше приведённому примеру ) на всех
Windows-Workstation в локальной сети и все юзеры
могут пользоваться любой Workstation и будут
всегда иметь свой Desktop и cвой Lotus Notes.
Ivan и Klava могут посылать и принимать
почту.
Можно также работать с Microsoft
Outlook, Kmail или Ximian Evolution и так далее
.
Создате аккоунт например для Ivan'a:
User: [email protected]
POP или IMAP: swesda.gennadi.net
SMTP:
swesda.gennadi.net
Это самый простой (но
уже рабочий!) пример настройки Domino Server'a
R6 на Linux'e.
PS: Domino Server
обладает большими возможностями и чтобы
использовать весь его потенциал, нужно конечно
почитать соответствующую
литературу.
Автор: [email protected], Райнберг
Комментарии:
globus
Добавлено: Чт Июл 24, 2003 5:50 am
Заголовок сообщения: пользователи не добавляются
делаю все как
написанно а он пользователей всеравно не
добавляет... скопировал cert.id файл выбираю его
при добавленни пользователя он просит пароль я
ввожу его и получаю сообщение типо иди и сделай
edit recovery information
чего делать
научите ?
globus
Добавлено: Чт Июл 24, 2003 5:53 am
Заголовок сообщения: PS
ЗЫ но
пользователя добавляет в конце концов но в поле
пороль пусто... вручную правишь это поле, потом
заходишь под этим пользователем а он делать не
может ничего ...
admin
Добавлено: Чт Июл 24, 2003 8:17 am
Заголовок сообщения: password
.. вручную
правишь это поле...
При добавлении
пользователя попробуйте сделайте так:
а он делать не может ничего
...
Дайте пользователю права manager'a
или designer'a
Последний раз
редактировалось: admin (Пт Июл 25, 2003 12:29
am), всего редактировалось 1
раз
globus
Добавлено: Чт Июл 24, 2003 9:06 am
Заголовок сообщения: ок, с этим вродя все понятно.....
ок, с этим
вродя все понятно.....
есть еще вопрос,
у меня под почтой стоит другой сервак можноли
настроить лотуса чтоб он пользовал его ?
моя главная цель настроить документо
оборот чтоб пользователи могли удобно
обмениваться файлами
и еще вопрос у меня
стоит ЛОТУС Домини под серваком и Нотес под
пользователей, могут ли они в такой конфигурации
работать с doc и xls файлами ??? или для этого
обязательно устонавливать domino.doc ?
заранее спасибо !
admin
Добавлено: Чт Июл 24, 2003 2:49 pm
Заголовок сообщения: SMTP
...................у меня под
почтой стоит другой сервак можноли настроить
лотуса чтоб он пользовал его ?
Да можно.
Lotus Domino Server не может работать
как POP3 Client (т.е.
сам забирать почту),
для этого нужно, чтобы - например на Linux'e -
Fetchmail забирал почту с твоего другого
почтового сервера, а
Sendmail или Postfix (
где нужно указать relayhost= ipadress твоего
Domino Server'a) посылал eё на Domino.
Lotus Notes умеет работать с doc и xls
файлами.
globus
Добавлено: Пт Июл 25, 2003 3:11 am
Заголовок сообщения: lotus