============================================================ Лицензирование отдельных видов деятельности ============================================================ ------------------------------Инструкция по установке системы ------------------------------- Требования к оборудованию и программному обеспечению ==================================================== Система состоит из трех компонент: 1. Клиент, в качестве которого выступает веб-браузер (рекомендуется Firefox версии 7 и выше, устанавливается клиентом). 2. Сервер базы данных PostgreSQL (версии 9 или выше, устанавливается администратором системы). 3. Сервер приложений (устанавливается администратором системы в соответствии с этой инструкцией). Для работы клиента годится любая современная операционная система. Для комфортной работы рекомендуется: * процессор – от 1 Ghz; * оперативная память – от 1 Gb; * свободное место на жестком диске – от 20 Gb. Для сервера базы данных: * процессор – от 2.5Ghz; * оперативная память – от 4 Gb. Для сервера приложений: * процессор – от 2.5 Ghz, 64 бит; * оперативная память – от 4 Gb. Сервер базы данных и сервер приложений, могут устанавливаться на одном физическом сервере. Состав дистрибутива =================== Дистрибутив состоит из 3-х файлов: 1. lod.txt – этот файл; 2. lod.zip – архив системы; 3. lod.pybundle – библиотеки. Установка и настройка ===================== Ниже предполагается что сервер приложений и база данных устанавливаются на одном физическом сервере с операционной системой Linux Ubuntu Server 11.10. Подготовка системы ------------------ 1. Определяем пользователя, от которого будет производиться установка и настройка (homeuser). Пользователь должен иметь возможность выполнять административные действия в системе (sudo). Предполагаем что дистрибутив находится в домашнем каталоге пользователя. 2. Проверяем, что при локализации сервера выбран русский язык в кодировке utf-8:: $ echo $LANG ru_RU.UTF-8 $ $ grep ^lc_ /etc/postgresql/9.1/main/postgresql.conf lc_messages = 'ru_RU.UTF-8' # locale for system error message lc_monetary = 'ru_RU.UTF-8' # locale for monetary formatting lc_numeric = 'ru_RU.UTF-8' # locale for number formatting lc_time = 'ru_RU.UTF-8' # locale for time formatting 3. Устанавливаем необходимые пакеты:: $ sudo apt-get install \ build-essential python python-dev subversion postgresql \ apache2 libapache2-mod-wsgi \ python-virtualenv libreoffice-common libreoffice-java-common \ openjdk-6-jre libpq-dev libjpeg-dev \ libapache2-mod-xsendfile python-uno unzip python-virtualenv libpq-dev \ emacs sqlite3 libxml2-dev libxslt-dev libxmlsec1-dev \ python-sqlite python-psycopg2 4. Проверяем что запущен веб-сервер:: $ sudo /etc/init.d/apache2 status Apache2 is running (pid 16523). Установка дистрибутива ---------------------- 1. Распаковываем архив lod.zip в каталог /home/homeuser:: $ cd /home/homeuser $ ls lod.pybundle lod.zip $ unzip lod.zip 2. Выполняем:: $ cd lod $ virtualenv . --no-site-packages $ source bin/activate $ pip install ../lod.pybundle $ cd lod $ cp conf.template conf 3. Редактируем файл conf. Он должен выглядеть примерно так:: 's|__ROOT__|/home/homeuser/lod|' 's|__ADMIN_EMAIL__|incoming.chtdnet@gmail.com|' 's|__SERVER_NAME__|lod.chtd.org|' 's|__USER__|homeuser|g' Здесь: :__ROOT__: абсолютный путь к каталогу lod (/home/homeuser/lod) :__ADMIN_EMAIL__: почтовый ящик администратора системы :__SERVER_NAME__: имя сервера, на котором будет установлена система :__USER__: имя пользователя, от которого установлена система (homeuser) 4. Генерируем конфигурационные файлы:: $ make И получаем: :conf.py: файл настроек программной части; :httpd.conf: конфигурационный файл веб-сервера Apache; :crontab: конфигурационный файл cron, для запуска уведомлений по email; :lod.wsgi: wsgi-скрипт запуска системы, используется в httpd.conf. Настраиваем доступ пользователя к СУБД PostgreSQL ------------------------------------------------- 1. Редактируем /etc/postgresql/<версия>/main/pg_hba.conf дописываем после строчки: local all postgres peer строку: local all homeuser password 2. Перезапускаем postgres: $ sudo /etc/init.d/postgresql restart 3. Регистрируем пользователя в СУБД и создаем рабочую базу:: $ sudo -u postgres psql и в консоли БД:: create user homeuser with password '<пароль>' createdb; create database lod_db owner homeuser; create database homeuser owner homeuser; grant all privileges on tablespace pg_default to homeuser; 4. Редактируем conf.py – указываем пароль для доступа к базе:: ... 'NAME': 'lod_db', # Or path to database file if using sqlite3. 'USER': 'homeuser', 'PASSWORD': '<пароль>', # Not used with sqlite3. # Not used with sqlite3. ... Настраиваем веб-сервер ---------------------- 1. Проверяем, что включен модуль mod_xsendfile:: $ ls /etc/apache2/mods-enabled/x* /etc/apache2/mods-enabled/xsendfile.load В противном случае выполняем:: $ sudo ln -s /etc/apache2/mods-available/xsendfile.load \ /etc/apache2/mods-enabled 2. httpd.conf – часть конфигурационного файла Apache (система запускается на виртуальном хосте), надо включить в главный конфигурационный файл директивой include, либо, для Ubuntu:: $ sudo ln -s /home/homeuser/lod/lod/httpd.conf \ /etc/apache2/sites-available/lod $ sudo a2ensite lod $ sudo /etc/init.d/apache2 reload 3. Веб-серверу нужны права на доступ к файлам системы, права на запись в каталоги ./media/attachments, ./media/collect_requests, ./media/xls_templates для сохранения файлов-приложений. Самый простой способ:: $ chmod -R a+rw ../ Инициализация ------------- Выполняем:: $ ./init Рестарт ------- Например, после изменения параметров в conf.py:: $ sudo apache2ctl graceful Дополнительные параметры системы ================================ Для рабочей системы в conf.py:: DEBUG = False FAKE_EMAIL = None Отключает выдачу отладочной информации при сбоях и отправляет уведомления на реальные адреса пользователей. Для работы формирования шаблонов из odf нужно запустить:: $ nohup soffice "--accept=socket,host=localhost,port=2002;urp;" --headless & Для работы рассылки:: $ crontab crontab Резервное копирование ===================== Резервное копирование БД осуществляется средствами СУБД:: $ pg_dump -U homeuser -C lod_db > lod.dump Получили дамп БД. Резервное копирование загруженных файлов (каталог media) и дампа надо проводить средствами системы в соответствии с принципами организации. Для восстановления надо настроить систему (пропустив запуск ./init), восстановить БД и загруженные файлы. Восстановление БД:: $ psql -U homeuser < lod.dump .. local variables: .. mode: rst .. end: FAQ 1. Вопрос: при инициализации БД пошли жалобы на отсутствие юзера CHTD Ответ: Этот пользователь не нужен, там инициализируется база данных и должно подключаться к пользователю, которого Вы создали в базе данных postgres. Это, скорее всего, вы просто не поставили правильного пользователя в conf.py для базы данных. Проверьте его. Если таки поставили всё верно, то уберите в конце файла init строку с pgsql и пользователем chtd, где он мелькает как раз. 2. Вопрос: при инсталляции pytona он установился версии 2.7 , а в конфигурационном файле пути прописаны как 2.6 Ответ: необходимо исправить путь в конфигурационном файле.