| Инсталляция Lotus
Domino R6 на Linux 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'а закончена. _________________ webadmin@gennadi.dyn.ee Последний раз редактировалось: admin (Пт Июн 20, 2003 5:14 pm), всего редактировалось 4 раз(а) |


|
| |
| Конфигурация 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: ivan@gennadi.net POP или IMAP: swesda.gennadi.net SMTP: swesda.gennadi.net Это самый простой (но уже рабочий!) пример настройки Domino Server'a R6 на Linux'e. PS: Domino Server обладает большими возможностями и чтобы использовать весь его потенциал, нужно конечно почитать соответствующую литературу. _________________ webadmin@gennadi.dyn.ee | |


|
| |
| .. вручную
правишь это поле... При добавлении пользователя попробуйте сделайте так: а он делать не может ничего ... Дайте пользователю права manager'a или designer'a ![]() _________________ webadmin@gennadi.dyn.ee Последний раз редактировалось: admin (Пт Июл 25, 2003 12:29 am), всего редактировалось 1 раз | |


|
| |
| ...................у меня под
почтой стоит другой сервак можноли настроить
лотуса чтоб он пользовал его ? Да можно. Lotus Domino Server не может работать как POP3 Client (т.е. сам забирать почту), для этого нужно, чтобы - например на Linux'e - Fetchmail забирал почту с твоего другого почтового сервера, а Sendmail или Postfix ( где нужно указать relayhost= ipadress твоего Domino Server'a) посылал eё на Domino. Lotus Notes умеет работать с doc и xls файлами. _________________ webadmin@gennadi.dyn.ee | |