The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Установка ICQ сервера для локальной сети. (icq freebsd)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: icq, freebsd,  (найти похожие документы)
From: Беляевский Сергей Date: Mon, 20 Feb 2005 18:21:07 +0000 (UTC) Subject: Установка ICQ сервера для локальной сети. Оригинал: http://www.unix.lviv.ua/index_rus.html?art/icq.html Установка ICQ сервера для локальной сети. Беляевский Сергей Решил рассказать вам про установку локального icq сервера. Вещица полезная, особенно если сотрудники оффиса сидят по разным комнатам. Конечно это способствует развитию гиподинамии, но такой уж на век. В любом случае, решать вам. Выбрать сервер будет очень просто, потому что он один (про другие я не слышал, во всех форумах говорят только о нем) iserverd. Скачать его можно на http://iserverd.khstu.ru/download/index_r.html Существует две ветки - stable (стабильные с исправлеными багами) и current (те что сейчас находятся в разработке). Я брал IServerd-current.tar.gz работает достаточно хорошо, пока нареканий не было. Фишка этого продукта в том, что он работает с postgresql. Это что-то вроде MySQL только с большими возможностями. Он поддреживает почти все SQL конструкции, включая вложенные запросы, транзакции, схемы, пользовательские типы и функции. С установкой SQL сервера проблем быть не должно, он присудствует в портах /usr/ports/databases/postgresql-devel Но установить это 50% успеха, его нужно запустить и по минимуму сконфигурировать. И так начнем. Система. OC FreeBSD 5.1 Celereon 333 RAM 32MB HDD 2GB Установка postgresql. #cd /usr/ports/databases/postgresql-devel #make install компьютеру возможно потребуется доступ в интернет, так как в distfiles пакетов может не оказаться. Я говорю пакетов потому у него есть зависимости - bisonXXXX. При наличии выделенной линии стянуть все что требуется не составит труда. Сам SQL сервер имеет размер приблизительно 8.7МБ, bison - 815KБ. После установки у нас появляется пользователь pgsql от его имени мы и будем стартовать сервер. И его родная папка /usr/local/pgsql. Нам надо решить где будет храниться база. Я просто создал папку data в /usr/local/pgsql сделал ее владельцем юзера pgsql #cd /usr/local/pgsql #mkdir data #chown pgsql:pgsql ./data и положил ее туда. Положил на самом деле подразумевает следующие действия: #su pgsql $initdb -D /usr/local/pgsql/data Папка data теперь наполнена данными и содержит так же конфигурационые файлы. Но для запуска серера нам потребуется еще поправить postgresql.conf, а именно разкомментировать port = 5432. Сохраняем и запускаем. Это можно сделать из командной строки #su pgsql -c 'pg_ctl start -d /usr/local/pgsql/data' Но тогда нам прийдется это делать при каждой перезагрузке сервера. Поэтому лучше создать файл в /usr/local/etc/rc.d такого содержания: #!/bin/sh # $FreeBSD: ports/databases/postgresql-devel/files/pgsql.sh.tmpl,v1.13 2002/04/11 04:58:11 ijliao Exp $ # # For postmaster startup options, edit $PGDATA/postgresql.conf PREFIX=/usr/local PGBIN=${PREFIX}/bin case $1 in start) [ -d ${PREFIX}/lib ] && /sbin/ldconfig -m ${PREFIX}/lib touch /var/log/pgsql chmod 600 /var/log/pgsql chown pgsql:pgsql /var/log/pgsql [ -x ${PGBIN}/pg_ctl ] && { su -l pgsql -c \ '[ -d ${PGDATA} ] && exec /usr/local/bin/pg_ctl start -s \ -w -l /var/log/pgsql' echo -n ' pgsql' } ;; stop) [ -x ${PGBIN}/pg_ctl ] && { su -l pgsql -c 'exec /usr/local/bin/pg_ctl stop -s -m fast' echo -n ' pgsql' } ;; status) [ -x ${PGBIN}/pg_ctl ] && { exec su -l pgsql -c 'exec /usr/local/bin/pg_ctl status' } ;; *) echo "usage: `basename $0` {start|stop|status}" >&2 exit 64 ;; esac Может быть такое, что это файл уже там будет, остется только дать ему права на исполнение. Переходим к следующему этапу - установке iserverd Установка iserverd. Скачиваем архив http://iserverd.khstu.ru/download/IServerd-current.tar.gz, раскручиваем, далее #./configure --with-russian #make #make install ПРИМЕЧАНИЕ. Мне пришлось поправить одну строчку в исходных текстах программы что бы компиляция прошла без ошибок. Файл /config/action/y.tab.cpp строка 2040 // --attribute-- ((--unused--)). Сохраняем, компилим. Теперь создаем таблицы и их владельцев #su pgsql $db_manage.sh create users_db оно попросит указать имя владельца и пароль (эти данные мы потом должны будем передать iserverd) DATABSE CREATED USER CREATED $ После, идем в /etc/iserverd #cd /etc/iserverd Там находятся примеры настроечных файлом, смело их делам рабочими, но с небольшими поправками. iserv.conf database user = юзер_которого_мы_создали_при_db_manage.sh create users_db database password = пароль_который_мы_указали_при_db_manage.sh create users_db v7_proto.conf вообщем-то нам достаточно иметь поддержку v7, кроме этого есть возможность использования протокола v3 и v5. V7 BOS address = IP:5190 #тут наш сервер будет слушать порт V7 registration enabled = Yes #что бы юзера могли сами регистрироваться ПРИМЕЧАНИЕ. Регистрацию юзеров можно проводить и на сервере: # su pgsql $cd /etc/iserverd/db $icquser add UIN попросят ввести данные пользователя, что мы и должны будем сделать. Сохраняем. Стартуем. Как всегда у нас есть 2 варианта запуска: 1) командная строка # iserverd -o 2) скрипт (будет стартовать при каждой загрузке сервера /usr/local/etc/rc.d) #!/bin/sh ISERVERD="/usr/sbin/iserverd" PIDFILE="/var/run/iserverd/iserverd.pid" # See how we were called. case "$1" in start) # Start daemons. echo -n "Starting iserverd: " $ISERVERD -o sleep 1 if [ -f $PIDFILE ]; then echo " [ OK ]" else echo " [ FAILED ]" fi ;; stop) # Stop daemons. echo -n "Shutting down iserverd: " if [ -f $PIDFILE ]; then kill `cat $PIDFILE` echo " [ OK ]" else echo " [ FAILED ]" fi rm -f $PIDFILE ;; status) if [ -f $PIDFILE ]; then echo -n "Iserverd is running, pid: " echo `cat $PIDFILE` else echo "Iserverd is stopped" fi ;; restart) $0 stop $0 start ;; *) echo "Usage: iserverd {start|stop|restart|status}" exit 1 esac exit 0 Это была финальная часть настройки. ВАЖНО!!! Даже если все описаное проделано правильно, icq сервер может не запуститься (скорее всего так и будет). Это связано с параметрами с которыми собрано ядро. В первую очередь shared memory и семафоры. Увеличиваем эти параметры options SHMALL=8192 options SHMMAX=(SHMMAXPGS*PAGE_SIZE+1) options SEMMNI=40 options SEMMNS=240 options SEMUME=40 options SEMMNU=120 options SEMOPM=301 options SEMMSL=200 options SEMMAP=200 и пересобераем ядро. Как это делается, подробно описано в /usr/share/doc/handbook/kernelconfig.html Привожу полные конфигурационные файлы для работы всех систем. postgresql.conf # ----------------------------- # PostgreSQL configuration file # ----------------------------- # # This file consists of lines of the form: # # name = value # # (The '=' is optional.) White space may be used. Comments are introduced # with '#' anywhere on a line. The complete list of option names and # allowed values can be found in the PostgreSQL documentation. The # commented-out settings shown in this file represent the default values. # # Any option can also be given as a command line switch to the # postmaster, e.g. 'postmaster -c log_connections=on'. Some options # can be changed at run-time with the 'SET' SQL command. # # This file is read on postmaster startup and when the postmaster # receives a SIGHUP. If you edit the file on a running system, you have # to SIGHUP the postmaster for the changes to take effect, or use # "pg_ctl reload". #------------------------------------------------------- # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------- # - Connection Settings - #tcpip_socket = false max_connections = 100 # note: increasing max_connections costs about 500 bytes of shared # memory per connection slot, in addition to costs from shared_buffers # and max_locks_per_transaction. #superuser_reserved_connections = 2 port = 5432 #unix_socket_directory = '' #unix_socket_group = '' #unix_socket_permissions = 0777 # octal #virtual_host = '' # what interface to listen on; defaults to any #rendezvous_name = '' # defaults to the computer name # - Security & Authentication - #authentication_timeout = 60 # 1-600, in seconds #ssl = false #password_encryption = true #krb_server_keyfile = '' #db_user_namespace = false #------------------------------------------------------- # RESOURCE USAGE (except WAL) #------------------------------------------------------- # - Memory - shared_buffers = 1000 # min 16, at least max_connections*2, 8KB each #sort_mem = 1024 # min 64, size in KB #vacuum_mem = 8192 # min 1024, size in KB #debug_shared_buffers = 0 # 0-600 seconds # - Background writer - #bgwriter_delay = 200 # 10-5000 milliseconds #bgwriter_percent = 1 # 0-100% of dirty buffers #bgwriter_maxpages = 100 # 1-1000 buffers max at once # - Free Space Map - #max_fsm_pages = 20000 # min max_fsm_relations*16, 6 bytes each #max_fsm_relations = 1000 # min 100, ~50 bytes each # - Kernel Resource Usage - #max_files_per_process = 1000 # min 25 #preload_libraries = '' #------------------------------------------------------- # WRITE AHEAD LOG #------------------------------------------------------- # - Settings - #fsync = true # turns forced synchronization on or off #wal_sync_method = fsync # the default varies across platforms: # fsync, fdatasync, open_sync, or open_datasync #wal_buffers = 8 # min 4, 8KB each # - Checkpoints - #checkpoint_segments = 3 # in logfile segments, min 1, 16MB each #checkpoint_timeout = 300 # range 30-3600, in seconds #checkpoint_warning = 30 # 0 is off, in seconds #commit_delay = 0 # range 0-100000, in microseconds #commit_siblings = 5 # range 1-1000 #------------------------------------------------------- # QUERY TUNING #------------------------------------------------------- # - Planner Method Configuration - #enable_hashagg = true #enable_hashjoin = true #enable_indexscan = true #enable_mergejoin = true #enable_nestloop = true #enable_seqscan = true #enable_sort = true #enable_tidscan = true # - Planner Cost Constants - #effective_cache_size = 1000 # typically 8KB each #random_page_cost = 4 # units are one sequential page fetch cost #cpu_tuple_cost = 0.01 # (same) #cpu_index_tuple_cost = 0.001 # (same) #cpu_operator_cost = 0.0025 # (same) # - Genetic Query Optimizer - #geqo = true #geqo_threshold = 11 #geqo_effort = 1 #geqo_generations = 0 #geqo_pool_size = 0 # default based on tables in statement, # range 128-1024 #geqo_selection_bias = 2.0 # range 1.5-2.0 # - Other Planner Options - #default_statistics_target = 10 # range 1-1000 #from_collapse_limit = 8 #join_collapse_limit = 8 # 1 disables collapsing of explicit JOINs #------------------------------------------------------- # ERROR REPORTING AND LOGGING #------------------------------------------------------- # - Syslog - #syslog = 0 # range 0-2; 0=stdout; 1=both; 2=syslog #syslog_facility = 'LOCAL0' #syslog_ident = 'postgres' # - When to Log - #client_min_messages = notice # Values, in order of decreasing detail: # debug5, debug4, debug3, debug2, debug1, # log, info, notice, warning, error #log_min_messages = notice # Values, in order of decreasing detail: # debug5, debug4, debug3, debug2, debug1, # info, notice, warning, error, log, fatal, # panic #log_error_verbosity = default # terse, default, or verbose messages #log_min_error_statement = panic # Values in order of increasing severity: # debug5, debug4, debug3, debug2, debug1, # info, notice, warning, error, panic(off) #log_min_duration_statement = -1 # Log all statements whose # execution time exceeds the value, in # milliseconds. Zero prints all queries. # Minus-one disables. #silent_mode = false # DO NOT USE without Syslog! # - What to Log - #debug_print_parse = false #debug_print_rewritten = false #debug_print_plan = false #debug_pretty_print = false #log_connections = false #log_duration = false #log_pid = false #log_statement = false #log_timestamp = false #log_hostname = false #log_source_port = false #------------------------------------------------------- # RUNTIME STATISTICS #------------------------------------------------------- # - Statistics Monitoring - #log_parser_stats = false #log_planner_stats = false #log_executor_stats = false #log_statement_stats = false # - Query/Index Statistics Collector - #stats_start_collector = true #stats_command_string = false #stats_block_level = false #stats_row_level = false #stats_reset_on_server_start = true #------------------------------------------------------- # CLIENT CONNECTION DEFAULTS #------------------------------------------------------- # - Statement Behavior - #search_path = '$user,public' # schema names #check_function_bodies = true #default_transaction_isolation = 'read committed' #default_transaction_read_only = false #statement_timeout = 0 # 0 is disabled, in milliseconds # - Locale and Formatting - #datestyle = 'iso, mdy' #timezone = unknown # actually, defaults to TZ environment setting #australian_timezones = false #extra_float_digits = 0 # min -15, max 2 #client_encoding = sql_ascii # actually, defaults to database encoding< # These settings are initialized by initdb -- they may be changed lc_messages = 'ru_RU.KOI8-R' # locale for system error message strings lc_monetary = 'ru_RU.KOI8-R' # locale for monetary formatting lc_numeric = 'ru_RU.KOI8-R' # locale for number formatting lc_time = 'ru_RU.KOI8-R' # locale for time formatting # - Other Defaults - #explain_pretty_print = true #dynamic_library_path = '$libdir' #max_expr_depth = 10000 # min 10 #------------------------------------------------------- # LOCK MANAGEMENT #------------------------------------------------------- #deadlock_timeout = 1000 # in milliseconds #max_locks_per_transaction = 64 # min 10, ~260*max_connections bytes each #------------------------------------------------------- # VERSION/PLATFORM COMPATIBILITY #------------------------------------------------------- # - Previous Postgres Versions - #add_missing_from = true #regex_flavor = advanced # advanced, extended, or basic #sql_inheritance = true #default_with_oids = true # - Other Platforms & Clients - #transform_null_equals = false #transform_null_equals = false iserv.conf # This is the main IServerd config file. Don't forget to # change database and info passwords. Probably you'll need # to change admin email (it is used in broadcast and # error messages). [Globals] # ------server parameters ---------------------- Bind on all interfaces = No Bind interface = 0.0.0.0/32 Listen port = 4000 Pid file path = /var/run/iserverd/iserverd.pid Translate path = /etc/iserverd/translate Translate table = RUSSIAN_WIN Var dir path = /var/run/iserverd Server mode = daemon Min childs = 4 Max childs = 100 Shared memory size = 512000 Default ping time = 120 Depart list version = 1 Externals number = 0 Admin email = root@localhost Info Password = DEFAULT Enable actions = False Enable watchdog = True Start without RDBMS = True Watchdog timeout = 10 WWP socket filename = /tmp/wwp_sock Actions config file = /etc/iserverd/actions.conf Realtime online db = False # -----parameters for database system ---------- database user = полльзователь database password = пароль # Leave it blank if you have local PostgreSQL database addr = database port = 5432 users db name = users_db vacuumdb timeout = 1800 Defrag db check period = 43200 Online db check period = 3600 # -----parameters for log/debug system---------- Maxlog size = 500 Log umask = 022 Log level = 10 Debug level = 10 Timestamp logs = True Append logs = False Log process pid = False # -----Config files for Vxx proto modules-------- Include = /etc/iserverd/v3_proto.conf Include = /etc/iserverd/v5_proto.conf Include = /etc/iserverd/v7_proto.conf v7_proto.conf # ---Parameters for AIM/V7 proto module---- # This configuration is default. # There is also one config file for AIM protocol module, # that declares protocol rate-limits, snac groups and etc Enable AIM port = 5190 V7 proto enabled = Yes V7 connection timeout = 20 V7 cookie timeout = 240 V7 accept concurent = True V7 max search = 100 V7 max contact size = 600 V7 max watchers size = 750 V7 max visible size = 200 V7 max invisible size = 200 # Direct connection to v3 is disabled by default # because v3 client crashes on contact_list and # file_abort messages, enable this only if you # know what are you doing V7 direct V3 connect = False # This is just temp solution to allow iserverd # administrator to setup bos server address # returned to client after authorization # IT SHOULD BE REAL ADDRESS OF YOUR SERVER OR V7 WILL NOT WORK V7 BOS address = 192.168.2.10:5190 V7 proto config = /etc/iserverd/aim_proto.conf # WARN: V7 clients doesn't provide enough information # for manual registration, so there is only autoregistration # And it is disabled by default V7 registration enabled = Yes # Default icbm subsystem parameters for V7 proto # Client can change this params via SNAC(04,02) V7 default max channel = 2 V7 default max msgsize = 512 V7 default max sevil = 999 V7 default max revil = 999 V7 default mm interval = 0 # Maximum groups in ServerStoredInformation V7 max ssi groups = 61 # Maximum ingnore records in ServerStoredInformation V7 max ssi ignore = 128 # Maximum non-icq contacts in ServerStoredInformation V7 max ssi non-icq = 200 сайт разработчика http://iserverd.khstu.ru/russian Последняя стабильная версия http://iserverd.khstu.ru/download/IServerd-stable.tar.gz Последняя current версия http://iserverd.khstu.ru/download/IServerd-current.tar.gz

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Дмитрий, 15:24, 25/08/2006 [ответить] [смотреть все]
  • +/
       Добрый день.

       Благодарю, за подробное описание установки IServerd для OC FreeBSD 5.1. Полагаю, что теперь с установкой справится даже ребенок.

       Подскажите, как (или что, если необходима другая, подобная, программа) установить в локальной сети, в случае с другой ОС, а именно Window XP. Если такая возможность есть, то с таким же подробным комментарием

    С уважением, Дмитрий.

     
     
  • 2.2, Kolesya, 13:38, 18/01/2007 [^] [ответить] [смотреть все]
  • +/
    вообщето это сайт по открытому ПО :)
     
     
  • 3.16, Dimon, 10:54, 09/10/2008 [^] [ответить] [смотреть все]
  • +/
    Вообще-то открытое ПО есть, в том числе, и для WindowsXP.
    Это так для справки.

    Автору за статью огромное спасибо

     
     
  • 4.17, Beowulf, 16:31, 08/07/2009 [^] [ответить] [смотреть все]
  • +/
    Вот только Windows это не открытое ПО.
     
  • 1.3, Kolesya, 21:12, 26/01/2007 [ответить] [смотреть все]
  • +/
    Кстати, на FreeBSD 6.2 все проходит без проблем :)
     
     
  • 2.5, Sergey, 09:36, 25/04/2007 [^] [ответить] [смотреть все]  
  • +/
    У меня на FreeBSD6.2
    Apr 25 10:32:18 sergey IServer: Init: Detaching from control terminal
    Apr 25 10:32:18 sergey IServer: Init: Wrote & lock server pidfile
    Apr 25 10:32:18 sergey IServer: Init: Creating new process group
    Apr 25 10:32:18 sergey IServer: Can't allocate user shm structure.
    Apr 25 10:32:18 sergey IServer: Error: [Cannot allocate memory]

    Хотя параметры ядра выставил и пересобрал

     
     
  • 3.9, Andrew, 00:07, 07/10/2007 [^] [ответить] [смотреть все]  
  • +/
    У меня тоже самое как исправить?(
    ядро пересобирал
     
  • 1.4, netop, 00:17, 21/02/2007 [ответить] [смотреть все]  
  • +/
    У меня просит libpq.so.5 :(
     
     
  • 2.13, Merlin, 14:09, 20/03/2008 [^] [ответить] [смотреть все]  
  • +/
    попробуй сделать
    cp /usr/local/pgsql/lib/libpq.so.5 /usr/local/lib/
     
  • 1.6, Сергей, 09:59, 25/04/2007 [ответить] [смотреть все]  
  • +/
    А что делать если, сервер с IServerd выставлен NAT в другую подсетку? Запрос на сервер идет, а на Iserverd нет.
     
  • 1.7, Александр, 08:51, 29/07/2007 [ответить] [смотреть все]  
  • +/
    Извеняюсь что немного =) не в тему. Может кто подскажет. Локалка под виндами. В ней настроен icq групп. Каким ICQ клиентом можно подцепиться из под линукса?
     
  • 1.8, John, 15:53, 05/09/2007 [ответить] [смотреть все]  
  • +/
    Всем привет! Парни подскажите где можно скачать libpq.so.5,  
     
  • 1.10, Andrew, 00:08, 07/10/2007 [ответить] [смотреть все]  
  • +/
    У меня на FreeBSD6.2
    Apr 25 10:32:18 sergey IServer: Init: Detaching from control terminal
    Apr 25 10:32:18 sergey IServer: Init: Wrote & lock server pidfile
    Apr 25 10:32:18 sergey IServer: Init: Creating new process group
    Apr 25 10:32:18 sergey IServer: Can't allocate user shm structure.
    Apr 25 10:32:18 sergey IServer: Error: [Cannot allocate memory]
    Хотя параметры ядра выставил и пересобрал
    -----------
    тоже самое(как исправить?
    ядро персобирал
     
  • 1.14, samun, 17:41, 10/05/2008 [ответить] [смотреть все]  
  • +/
    >Обсуждение статьи тематического каталога: Установка ICQ сервера для локальной сети. (icq freebsd)
    >
    >
    >Ссылка на текст статьи: http://www.opennet.ru/base/net/icq_server.txt.html

    У меня проблема!!!
    Установлено на сервере freebsd 6.2  iserverd-2.5.5 у клиентов QIP

    Все установилось нормально и уже все работает, но как стало пользователей более 40(номера от 101 до 150) у большинства пользователей работает но когда некий пользователь предположим с UIN 150 добавит всех остальных выйдет из QIP заново зайти не может  и ошибка не выводиться просто клиент не переводит в состояние в сите пробовал удалить и заново создать пользователя с UIN 150 не помогло

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor