Воскресенье, 17 Июнь 2012 19:21

Установка и настройка сервера 1С под Linux

Автор
Оцените материал
(12 голосов)

Всем привет!

На этот раз, я хочу рассмотреть поднятие сервера для 1с 8.2 под линуксом. В этом мне очень помогла вот эта статья:

http://www.lissyara.su/archive/1c_8.2+postgresql

Начнём с установки операционной системы. Я для этого выбрал Fedora 16. При установке системы я выбрал самый минимальный набор пакетов и поставил галку, чтобы можно было вручную выбрать нужные пакеты для установки. Затем зашёл в «Базовую систему» и там отметил следующее:

- Основные
   - acpid
   - fedora-release-notes
   - krb5-workstation
   - man-pages
   - nano
   - nc
   - pam-krb5
   - sudo
   - tree
   - unzip
   - wget
   - yum-utils
   - zip
- Поддержка оборудования
- Системные средства
   - mc
   - samba-client

Затем, жду, пока система установится. Надо заметить, что с таким небольшим набором пакетов, система ставится очень быстро. После установки перезагружаем комп и настраиваем в биосе, чтоб он грузился с жёсткого диска.

Этап 1. Общая подготовка сервера.

Далее, нужно обновить установленную систему. А для этого надо, чтобы система имела выход в интернет, поэтому нужно настроить сеть. Открываем консольный файловый менеджер:

mc

и переходим в каталог /etc/sysconfig/network-scripts. В более ранних версиях федоры сетевые интерфейсы назывались eth0, eth1, eth2 и так далее, но в шестнадцатой федоре обозначение сетевых карт изменилось. Поскольку, сетевух на сервере у меня две, то у себя я в этом каталоге обнаружил файлы с названиями ifcfg-p2p1 и ifcfg-em0. И решил я их использовать обе на пользу. О том, как это сделать, я прочитал вот тут:

http://ru.gentoo-wiki.com/wiki/HOWTO_%CD%E0%F1%F2%F0%EE%E9%EA%E0_Bonding
http://techgurulive.com/2008/09/08/how-to-configure-bonding-in-fedora

Создаём файл /etc/modprobe.d/bonding.conf и наполняем его вот таким содержимым:

alias bond0 bonding
options bonding mode=6 miimon=100

Для себя, я решил использовать шестой режим объединения двух сетевых карт. Затем создаю файл /etc/sysconfig/network-scripts/ifcfg-bond0 и наполняю его вот таким содержимым:

DEVICE="bond0"
BOOTPROTO="none"
ONBOOT="yes"
IPADDR=192.168.0.201
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.200

Сохраняю. Потом, в этом же каталоге, файл ifcfg-em0 привожу вот в такой вид:

DEVICE="em0"
HWADDR="00:1E:67:34:87:08"
BOOTPROTO="none"
ONBOOT="yes"
# NM_CONTROLLED="yes"
MASTER=bond0
SLAVE=yes

И файл ifcfg-p2p1 — в такой же идентичный вид:

DEVICE="p2p1"
HWADDR="08:00:27:7D:71:7C"
BOOTPROTO="none"
ONBOOT="yes"
# NM_CONTROLLED="yes"
MASTER=bond0
SLAVE=yes

После редактирования всех этих файлов, надо перезагрузить сервер. Когда он загрузится, то две сетевухи у нас будут работать как одна, обеспечивая бóльшую пропускную способность и отказоустойчивость.

Далее, находим файл /etc/resolv.conf и в него добавляем строчку:

nameserver 192.168.0.200

Таким образом, мы указали DNS-сервер нашей системе.

После этого, нужно обновить систему. Для начала обновим сам установщик yum:

yum -y update yum

А потом всю систему целиком:

yum -y update

Когда обновление завершится, то перезагружать систему не спешим. Сразу же подправим один конфиг, чтобы отключить SELinux. Находим файл /etc/selinux/config и в нём заменяем строчку:

SELINUX=enforcing

на:

SELINUX=disabled

И вот после этого перезагружаем систему. Кстати, если у вас после перезагрузки пропала запись о DNS-сервере в файле resolv.conf, то пропишите DNS-сервер снова, а потом дайте команду:

chattr +i /etc/resolv.conf

Это чтобы файл нельзя было изменять.

Вообще, надо сказать, что я начал статью с общей подготовки сервера, которую я уже ни раз описывал в других своих статьях. Повторяться не хочется, поэтому о том, как подкрутить sshd, настроить adcupsd, ntp и установить webmin читайте вот на этих страничках:

http://technotrance.su/index.php/moi-stati/linux-fedora/item/2-router-linux-part1
http://technotrance.su/index.php/moi-stati/linux-fedora/item/9-server-mail-ftp-jabber%20mail-gateway1
http://technotrance.su/index.php/moi-stati/linux-fedora/item/17-single-address-space

В Fedora 16 исключением станут лишь некоторые моменты, связанные с включением и запуском сервисов. Эти моменты я упомянул тут:

http://technotrance.su/index.php/moi-zametki/9-fedora-ntsysv

Однако, процесс ввода сервера в домен AD я опишу ещё раз. Прежде всего, заходим на сервер AD (у меня это win srv 2008 r2) и в оснастке DNS создаём «узел А» для нашего сервера 1с:

И обязательно ставим галочку, как это показано на скриншоте.

Далее, уже на 1с-сервере, ставим необходимые пакеты:

yum -y install samba samba-winbind samba-common samba-client samba-winbind-clients

Потом находим файл /etc/krb5.conf и приводим его вот к такому содержимому:

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYDOMAIN.DOMAIN
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYDOMAIN.DOMAIN = {
  kdc = 192.168.0.200
  admin_server = 192.168.0.200
 }

[domain_realm]
 .mydomain.domain = MYDOMAIN.DOMAIN
 mydomain.domain = MYDOMAIN.DOMAIN

где 192.168.0.200 — это адрес контроллера домена. Регистр соблюдаем! Далее, находим файл /etc/samba/smb.conf и приводим его вот к такому виду:

[global]
log file = /var/log/samba/log.%m
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
null passwords = yes
interfaces = p2p1
hosts allow = 192.168. 127.0.0.1
winbind uid = 50-99999999
winbind gid = 50-99999999
auth methods = winbind
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
name resolve order = hosts wins bcast lmhosts
case sensitive = no
dns proxy = no
server string = Linux
netbios name = 1cserv
password server = 192.168.0.200
realm = MYDOMAIN.DOMAIN
client signing = yes
local master = no
domain master = no
workgroup = MYDOMAIN
debug level = 2
security = ads
dos charset = 866
max log size = 50
os level = 0

Здесь также соблюдаем регистр! И последний файл, который надо отредактировать — это /etc/nsswitch.conf. Находим в нём следующие строчки:

passwd: files
shadow: files
group: files
initgroups: files

И правим их до такого вида:

passwd: files winbind
shadow: files
group: files winbind
initgroups: files winbind

После редактирования конфигов, надо не забыть открыть нужные порты на iptables:

-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT

А уже потом надо запустить/перезапустить следующие сервисы:

service smb restart
service nmb restart
service winbind restart

И не забыть их включить в автозагрузку:

systemctl enable smb.service
systemctl enable nmb.service
systemctl enable winbind.service

Теперь получаем билет керберос:

kinit admin@MYDOMAIN.DOMAIN

Где admin — это администратор домена в AD. Появится запрос пароля доменного администратора. И после ввода пароля команда должна отработать без вывода всяких сообщений — это означает, что билет получен корректно. Потом вводим сервер 1с в домен:

net ads join -U admin

Эта команда также попросит пароль доменного админа. И при её корректной отработке должно выйти сообщение:

Using short domain name -- MYDOMAIN
Joined '1CSERV' to realm 'mydomain.domain'

После этого, перезагружаем сервер. И после его загрузки тестируем, корректно ли он зашёл в домен AD. Делаем это вот такими командами (я сразу буду показывать какой вывод после них должен быть):

wbinfo -t
checking the trust secret for domain MYDOMAIN via RPC calls succeeded
wbinfo -p
Ping to winbindd succeeded
wbinfo -u
admin
гость
krbtgt
user1
user2
user3
......и т.д. пользователи домена
wbinfo -g
компьютеры домена
контроллеры домена
администраторы схемы
администраторы предприятия
издатели сертификатов
администраторы домена
пользователи домена
гости домена
владельцы-создатели групповой политики
серверы ras и ias
группа с разрешением репликации паролей rodc
группа с запрещением репликации паролей rodc
контроллеры домена - только чтение
контроллеры домена предприятия - только чтение
.............и т.д. группы домена
id admin
uid=50(admin) gid=56(администраторы домена) группы=56(администраторы домена),57(группа с запрещением репликации паролей rodc),59(администраторы схемы),60(администраторы предприятия),61(владельцы-создатели групповой политики),62(пользователи домена)

Всё, на этом общую настройку сервера можно считать завершённой.

Этап 2. Сборка PostgreSQL и установка 1C. 

После общей настройки сервера приступим к установке PostgreSQL. На сайте 1С выложены готовые rpm-пакеты уже пропатченого PostgreSQL. Но я не решился их ставить. Потому как, там же есть и src.rpm-ка, которую можно пересобрать под свою систему. На момент написания статьи, это был пакет postgresql-9.0.3-3.1C.src.rpm. Итак, приступим к его пересборке. В этом мне помогли вот эти ресурсы:

http://www.alsigned.ru/?p=329
http://bugs.etersoft.ru/show_bug.cgi?id=4458
http://www.alsigned.ru/?p=1129

Сначала установим программу rpm-build, с помощью которой и будем делать пересборку:

yum -y install rpm-build

После чего, на сервер надо скопировать postgresql-9.0.3-3.1C.src.rpm. Я такие вещи делаю через webmin в меню Others → Upload and Download. Затем, перехожу в папку, в которую скопировал и выполняю вот такую команду:

rpmbuild --rebuild postgresql-9.0.3-3.1C.src.rpm

Сразу получаю вот такую ошибку:

ошибка: Неудовлетворенные зависимости сборки:
        glibc-devel нужен для postgresql-9.0.3-3.1C.x86_64
        bison нужен для postgresql-9.0.3-3.1C.x86_64
        flex нужен для postgresql-9.0.3-3.1C.x86_64
        readline-devel нужен для postgresql-9.0.3-3.1C.x86_64
        zlib-devel >= 1.0.4 нужен для postgresql-9.0.3-3.1C.x86_64
        openssl-devel нужен для postgresql-9.0.3-3.1C.x86_64
        pam-devel нужен для postgresql-9.0.3-3.1C.x86_64

Это значит, что перед сборкой PostgreSQL, нам надо установить недостающие вышеперечисленные пакеты. Ставим их:

yum -y install glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel

Затем, снова пробуем выполнить предыдущую команду. И, на этот раз, получим вот такую ошибку:

1 out of 5 hunks FAILED -- saving rejects to file src/Makefile.global.in.rej

Чтобы исправить эту ошибку открываем файл /usr/lib/rpm/macros находим в нем строчку

%_default_patch_fuzz 0

и заменяем ее на

%_default_patch_fuzz 2

Потом, снова пытаемся запустить сборку постгре-скуля. И получаем очередную ошибку:

configure: error: in `/root/rpmbuild/BUILD/postgresql-9.0.3':
configure: error: no acceptable C compiler found in $PATH

Эта ошибка означает, что у нас не установлен компилятор. Поэтому, ставим пакеты, которые обычно необходимы для сборки:

yum -y install gcc gcc-c++ automake cmake make

После этого, я решил, на всякий случай, перезагрузить сервер и почистить каталог /root/rpmbuild. А потом снова пробую запустить сборку пакетов:

rpmbuild --rebuild postgresql-9.0.3-3.1C.src.rpm

На этот раз, сборка вроде пошла, но через какое-то время выходит очередная ошибка:

mchar.h:7:27: fatal error: unicode/uchar.h: No such file or directory
compilation terminated.
make[1]: *** [mchar_io.o] Error 1
make[1]: Leaving directory `/root/rpmbuild/BUILD/postgresql-9.0.3/contrib/mchar'

Решается она установкой вот этих пакетов:

yum -y install libicu libicu-devel

Потом пробуем запустить сборку снова, почистив перед этом каталог /root/rpmbuild. И после этого, всё равно, вылезет уже другая ошибка:

pg_regress: initdb failed
Examine /root/rpmbuild/BUILD/postgresql-9.0.3/src/test/regress/log/initdb.log for the reason.

Ошибка говорит о том, что надо посмотреть, что написано в логе /root/rpmbuild/BUILD/postgresql-9.0.3/src/test/regress/log/initdb.log. Заглянув в него, чётко видно следующее: initdb: cannot be run as root. Сие означает, что оказывается сборку надо запускать не от рута, а от обычного пользователя. Поэтому, создаём пользователя:

adduser admin1
passwd admin1

Логинимся в систему под созданным пользователем, и уже под ним точно такой же командой запускаем сборку. Но рано радоваться! УлыбаюсьСборка продвинется дальше, однако всё равно закончится вот такой ошибкой:

install: cannot stat `/usr/local/lib64/libicuuc.so.46': No such file or directory

И это, как выяснилось, он просто не может найти вот эти библиотеки: libicuuc.so.46, libicui18n.so.46 и libicudata.so.46. Тем не менее, если пройтись по системе поиском, то мы обнаружим, что все эти библиотеки есть, но находятся в каталоге /usr/lib64. Чтобы обойти проблему, мы просто сделаем вот такие символические ссылки:

ln -s /usr/lib64/libicuuc.so.46.0 /usr/local/lib64/libicuuc.so.46
ln -s /usr/lib64/libicui18n.so.46.0 /usr/local/lib64/libicui18n.so.46
ln -s /usr/lib64/libicudata.so.46.0 /usr/local/lib64/libicudata.so.46

Затем, снова запустим сборку под обычным пользователем, не забыв, при этом, почистить папку ~/rpmbuild. И вот оно! Да! Наконец то, сборка завершилась удачно!

Готовые к установке rpm-ки можно найти в каталоге ~/rpmbuild/RPMS/x86_64. Собственно, прямо от туда, их можно и установить, выполнив команду, находясь в каталоге с rpm-ками:

rpm -ivh *.rpm

Многие спросят, а зачем всё это было нужно, если уже есть готовые rpm-пакеты от 1с. Я же считаю, что postgresql, собранный под конкретно свою ОС будет работать лучше, тем более что пересобрать src.rpm, на самом деле, очень легко. Просто я специально расписал все те грабли, на которые можно наткнуться при сборке под федору. Однако, если же перед сборкой сразу провести всю необходимую подготовку, а именно:

yum -y install glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gcc gcc-c++ automake cmake make libicu libicu-devel
ln -s /usr/lib64/libicuuc.so.46.0 /usr/local/lib64/libicuuc.so.46
ln -s /usr/lib64/libicui18n.so.46.0 /usr/local/lib64/libicui18n.so.46
ln -s /usr/lib64/libicudata.so.46.0 /usr/local/lib64/libicudata.so.46

и в файле /usr/lib/rpm/macros поменять «%_default_patch_fuzz 0» на «%_default_patch_fuzz 2», то сборка пройдёт с первого раза. Ну, и запускать сборку надо от простого пользователя.

После установки postgresql запустим вот такую команду:

service postgresql initdb

чтобы инициализировалась база данных. Когда команда отработает, то в каталоге /var/lib/pgsql/data появятся конфигурационные файлы. После чего, можно перейти к редактированию конфига postgresql. В этом мне помогли вот эти материалы:

http://www.lissyara.su/archive/1c_8.2+postgresql
http://wiki.etersoft.ru/PostgreSQL/Optimum

Ниже буду приводить лишь те строчки, которые я менял в файле postgresql.conf:

# Дополнительный буфер между диском и процессами Postgre SQL.
# Не следует указывать слишком большой объем,
# т.к. еще существует системный Кэш, контролируемый ОС.
# Значения:
# Средний объём данных и 256–512 МБ доступной памяти: 16–32 МБ
# Большой объём данных и 1–4 ГБ доступной памяти: 64–256 МБ
shared_buffers = 128MB

# Буфер под временные объекты, в основном для временных таблиц.
# Можно установить порядка 16 МБ
temp_buffers = 8MB

# Специальная память, используется для сортировки и
# кэширования таблиц, для одного запроса.
# При задании этого параметра следует учитывать количество
# конкурентых запросов, выполняемых в один момент времени.
# При памяти 1–4Gb рекомендуется устанавливать 32–128MB
work_mem = 16MB

# Память использующаяся для операций VACUUM, CREATE INDEX,
# ALTER TABLE и FOREGIN KEY.
# Следует устанавливать большее значение, чем для work_mem.
# Слишком большие значения приведут к использованию свопа.
# При памяти 1–4Gb рекомендуется устанавливать 128–512MB
maintenance_work_mem = 32MB

# Специальный стек для сервера, в идеале он должен совпадать
# с размером стека, выставленном в ядре ОС. Установка большего значения
# чем в ядре может привести к ошибкам. Рекомендуется устанавливать 2–4MB
max_stack_depth = 2MB

# Данный параметр отвечает за сброс данных из кэша на диск при завершении
# транзакций. Если установить его значение fsync=off, то данные не будут
# записываться на дисковые накопители сразу после завершения операций.
# Это может существенно повысить скорость операций insert и update, но
# есть риск повредить базу, если произойдет сбой (неожиданное отключение
# питания, сбой ОС, сбой дисковой подсистемы). Используйте эту возможность
# только если у вас имеются надежные ИБП и программное обеспечение,
# завершающее работу системы при низком заряде батарей.
fsync = off

# Установите данный параметр в off, если fsync=off
full_page_writes = off

# Количество памяти используемое в SHARED MEMORY для ведения транзакционных
# логов. При доступной памяти 1–4GB рекомендуется устанавливать 256–1024kb
wal_buffers = 2048kB

# увеличиваем этот параметр до 16. (в своё время, когда я уже настроил сервер,
то система в логах сама просила увеличить этот параметр)
checkpoint_segments = 16

# Передает данные планировщику запросов об объеме памяти, которая используется
# ОС для кэширования файлов, для одного запроса.
# (Устанавливаем в половину оперативки)
effective_cache_size = 1024MB

# Включает или отключает использование планером ограничений CONSTRAINT в
# таблицах при построении запросов. Рекомендуется установить значение on,
# при этом, если Вы изменяете CONSTRAINT у таблиц, необходимо обновить их
# статистику выполнив ANALYZE, в противном случае будут построены неверные
# планы запросов.
constraint_exclusion = on

# указываем писать логи в системный лог
log_destination = 'syslog'

# Включать ли автовакуум, устанавливать on
autovacuum = on

# Пауза между запусками Автовакуума. Зависит от того, как часто обновляются
# данные в ваших таблицах. Может составлять порядка 5min, по умолчанию 1min
autovacuum_naptime = 3min

# Продолжительность времени в секундах между проверками на дедлок. Для загруженных серверов имеет смысл это значение увеличить. По умолчанию − 1s.
deadlock_timeout = 2s

# Количество блокировок за одну транзакцию: установить порядка 200-250
max_locks_per_transaction = 250

# Чтобы вновь создаваемые таблицы посредством клиента psql автоматически включали столбец OID.
default_with_oids = on

# Отключаем вывод предупреждений при нахождении слэша в запросе
escape_string_warning = off

После редактирования конфига пробуем запустить postgresql:

service postgresql start

Однако, он, скорей всего, не запустится и в логах выдаст примерно во такую ошибку:

[1-1] FATAL: could not create shared memory segment: Недопустимый аргумент
[1-2] DETAIL: Failed system call was shmget(key=5432001, size=148946944, 03600).
[1-3] HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 148946944 bytes), reduce PostgreSQL's shared_buffers parameter (currently 16384) and/or its max_connections parameter (currently 104).
[1-4] #011If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
[1-5] #011The PostgreSQL documentation contains more information about shared memory configuration.

Здесь надо обратить внимание на цифру 148946944. Это означает, что необходимо увеличить параметр SHMMAX в системе. Но встаёт вопрос о том, как же его правильно задать. В этом мне помогла статья, которую я нашёл сразу на двух ресурсах. Уж не знаю, кто из них первоисточник, поэтому привожу ссылки на оба этих ресурса:

http://wiki.ayac.ru/skripty/nastrojka-shared-memory
http://leopard.in.ua/2011/02/05/nastrojka-shared-memory-dlya-postgresql-sovety

Выложу этот скрипт и у себя тоже:

#!/bin/bash
# simple shmsetup script
page_size=`getconf PAGE_SIZE`
phys_pages=`getconf _PHYS_PAGES`
shmall=`expr $phys_pages / 2`
shmmax=`expr $shmall \* $page_size`
echo kernel.shmmax = $shmmax
echo kernel.shmall = $shmall

Загрузив скрипт и запустив его, я, для своего сервера, получил вот такие значения:

kernel.shmmax = 1050689536
kernel.shmall = 256516

Затем, скопировал эти строчки и добавил их в конец файла /etc/sysctl.conf. Перезагружаю сервер и снова пробую запустить postgresql. На этот раз postgresql запустился удачно.

Поэтому сразу установим пароль на пользователя postgres:

su -l postgres
psql
alter user postgres with password 'YOUR_PASSWORD';
\q
exit

Теперь настало время установить саму 1С. Копируем готовые rpm-ки в какой-нибудь каталог:

1C_Enterprise82-common-8.2.15-310.x86_64.rpm
1C_Enterprise82-server-nls-8.2.15-310.x86_64.rpm
1C_Enterprise82-common-nls-8.2.15-310.x86_64.rpm
1C_Enterprise82-ws-8.2.15-310.x86_64.rpm
1C_Enterprise82-server-8.2.15-310.x86_64.rpm
1C_Enterprise82-ws-nls-8.2.15-310.x86_64.rpm

И устанавливаем их вот такой командой:

rpm -ivh *.rpm

Обратим внимание, что в системе у нас появится пользователь usr1cv82 и группа grp1cv82, а демон 1С-сервера будет называться srv1cv82. И сама 1С-ка установилась в каталог /opt/1C. Нужно пользователя usr1cv82 сделать владельцем этого каталога, а группу grp1cv82 сделать владеющей группой этого каталога:

chown -R usr1cv82:grp1cv82 /opt/1C

Затем надо включить логи для сервера 1С. Для этого, сначала, создадим каталог для хранения логов:

mkdir /var/log/1c
chown usr1cv82:grp1cv82 /var/log/1c

А затем, в папку /opt/1C/v8.2/x86_64/conf надо поместить конфиг с названием logcfg.xml. Именно с таким названием. А содержимое конфига будет вот такое:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/" history="168">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>

И не забываем настроить права к нему:

chown usr1cv82:grp1cv82 /opt/1C/v8.2/x86_64/conf/logcfg.xml

Также, не забываем открыть нужные порты на сервере. В стандартном виде они вот такие: 1540,1541, 5432, 1560:1591. Правила в iptables будут вот такими:

-A INPUT -p tcp -m tcp -m multiport -m state --state NEW -j ACCEPT --dports 1540,1541,5432
-A INPUT -p tcp -m tcp -m state --dport 1560:1591 --state NEW -j ACCEPT

Перезапускаем iptables, чтобы изменения вступили в силу:

service iptables restart

Далее, нужно попробовать, с помощью виндовой консоли администрирования, подключиться к серверу. А потом — попробовать создать базу прямо из самой 1с.

Этап 3. Настройка вэб-доступа, установка HASP, решение проблем.

Когда создадите базу и зальёте в неё какую-нибудь конфигурацию, а затем попытаетесь в неё зайти, то получите ошибку:

Ошибка инициализации графической подсистемы.

То это означает, что на сервер надо установить необходимые шрифты. В этом мне помогли вот эти статьи:

http://www.easycoding.org/2011/08/14/ustanovka-microsoft-core-fonts-v-fedora.html
http://www.alsigned.ru/?p=416

Сначала установим все нужные пакеты (некоторые из них уже стоят):

yum -y install gcc gcc-c++ make rpm-build cabextract ttmkfdir popt-devel unixODBC ImageMagick libgsf ttf2pt1 xfs

После этого, собираем пакеты для установки необходимых шрифтов:

wget "http://www.easycoding.org/linux/srpms/chkfontpath-1.10.1-2.src.rpm"
rpmbuild --rebuild chkfontpath-1.10.1-2.src.rpm

Собранный пакет появится тут: ~/rpmbuild/RPMS/x86_64. Перейдя в этот каталог, установим его:

rpm -ivh chkfontpath-1.10.1-2.fc16.x86_64.rpm

Затем, собираем второй пакет:

wget "http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec"
rpmbuild -ba msttcorefonts-2.0-1.spec

Собранный, он появится вот тут: ~/rpmbuild/RPMS/noarch. Также, перейдя в этот каталог, установим его командой:

rpm -ivh msttcorefonts-2.0-1.noarch.rpm

После чего, переходим в каталог /opt/1C/v8.2/x86_64/utils и, находясь в нём, выполняем вот такую команду:

./config_server /usr/share/fonts/msttcorefonts

При этом, у меня вылезла вот такая ругань:

Please install following package: libglib

Но установка пакета glib эту ситуацию не исправила. Тем не менее, я перезапустил сервер 1с:

service srv1cv82 restart

И после этого, ошибка про инициализацию графической подсистемы больше не выходила.

Теперь, настало время рассмотреть настройку веб-доступа к нашему серверу 1с. Мне в помощь пришли вот эти статьи:

http://www.alsigned.ru/?p=416
http://pg1c.ru/?page_id=129

Для начала, ставим apache:

yum -y install httpd

И, на всякий случай, если система сама не включила его в автозагрузку, выполняем команду:

systemctl enable httpd.service

Далее, нам надо определиться, где будет располагаться файл веб-интерфейса. Для каждой базы надо делать свой такой каталог. Файл вэб-интерфайса к моей базе будет располагаться вот тут:

mkdir /var/www/ut-11

Затем, переходим в каталог /opt/1C/v8.2/x86_64 и, находясь в нём, выполняем команду:

./webinst -apache22 -wsdir ut-11 -dir '/var/www/ut-11/' -connStr 'Srvr=1cserv;Ref=base1' -confPath /etc/httpd/conf/httpd.conf

Где:
-wsdir – имя алиаса, используемого на веб-сервере для соединения с базой. В последствии мы будем обращаться к ней набирая в браузере http://адрес.сервера/ut-11
-dir – директория где будет располагаться файл web-интерфейса 1с (файл  default.vrd)
-connStr – строка соединения с базой 1с предприятия, в которой Srvr – адрес сервера 1С предприятия, а Ref – имя базы.
-confPath – расположение конфигурационного файла web-сервера apache

Не забудем исправить права доступа к файлу default.vrd:

chown -R apache:apache /var/www/ut-11

и открыть 80-ый порт на iptables:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Затем, стартуем апач:

service httpd start

А потом пробуем зайти по адресу:

http://1cserv/ut-11

Где, в моём случае, 1cserv — это адрес сервера 1с предприятие, а ut-11 — это вышеописанный алиас в апаче. Кстати, если у вас нет Active Directory или DNS-сервера в локальной сети, то вам и на сервере, и на клиенте надо будет обязательно добавить запись в файле hosts. (Возможно, об этом надо было упомянуть в самом начале статьи...) Выглядеть она будет так:

192.168.0.201  1cserv

(IP-шник и имя, соответственно, пишите свои)

Итак, после того, как вы попробуете зайти в свою базу через вэб-доступ, вы получите вот такую ошибку:

о том, что не обнаружен ключ защиты программы.

Ситуация невесёлая Улыбаюсь  Однако, у меня ключ куплен, и его просто надо вставить в сервер. Но для того, чтобы система его увидела, нужно поставить драйвер HASP. На CD-диске, который прилагается к купленному ключу, этот драйвер есть. Однако, он там лежит в исходниках и человеческой инструкции, как его установить, я не нашёл. Немного погуглив, я вспомнил, что есть контора с названием Etersoft. И у этого самого Етерсофта в публичном доступе выложены уже готовые собранные rpm-пакеты драйвера HASP. Точнее, в эти пакеты включён и драйвер USB-ключа HASP, и LPT-ключа HASP, и HASP-manager. Для Fedora 16 x86_64 эти пакеты находятся тут:

ftp://updates.etersoft.ru/pub/Etersoft/HASP/3.3/x86_64/Fedora/16/

Для остальных же систем, не только федоры, его надо поискать вот в этом каталоге:

ftp://updates.etersoft.ru/pub/Etersoft/HASP/3.3/

Итак, скачиваю и устанавливаю эти пакеты:

wget ftp://updates.etersoft.ru/pub/Etersoft/HASP/3.3/x86_64/Fedora/16/haspd-3.3-eter3fedora.x86_64.rpm
wget ftp://updates.etersoft.ru/pub/Etersoft/HASP/3.3/x86_64/Fedora/16/haspd-modules-3.3-eter3fedora.x86_64.rpm
rpm -ivh haspd-3.3-eter3fedora.x86_64.rpm haspd-modules-3.3-eter3fedora.x86_64.rpm

и получаю вот такое сообщение:

ошибка: Неудовлетворенные зависимости:
        libc.so.6 нужен для haspd-3.3-eter3fedora.x86_64
        libc.so.6(GLIBC_2.0) нужен для haspd-3.3-eter3fedora.x86_64
        libc.so.6(GLIBC_2.1) нужен для haspd-3.3-eter3fedora.x86_64
        libc.so.6(GLIBC_2.1.2) нужен для haspd-3.3-eter3fedora.x86_64
        libc.so.6(GLIBC_2.2) нужен для haspd-3.3-eter3fedora.x86_64
        libdl.so.2 нужен для haspd-3.3-eter3fedora.x86_64
        libdl.so.2(GLIBC_2.0) нужен для haspd-3.3-eter3fedora.x86_64
        libdl.so.2(GLIBC_2.1) нужен для haspd-3.3-eter3fedora.x86_64
        libm.so.6 нужен для haspd-3.3-eter3fedora.x86_64
        libm.so.6(GLIBC_2.0) нужен для haspd-3.3-eter3fedora.x86_64
        libpthread.so.0 нужен для haspd-3.3-eter3fedora.x86_64
        libpthread.so.0(GLIBC_2.0) нужен для haspd-3.3-eter3fedora.x86_64
        libpthread.so.0(GLIBC_2.1) нужен для haspd-3.3-eter3fedora.x86_64

Это ему не хватет покета glibc.i686. Ставим его:

yum -y install glibc.i686

После установки этого пакета снова пробуем установить скачанные с Etersoft пакеты драйвера HASP. На этот раз, всё пройдёт удачно:

rpm -ivh haspd-3.3-eter3fedora.x86_64.rpm haspd-modules-3.3-eter3fedora.x86_64.rpm
Подготовка...     ########################################### [100%]
   1:haspd                  ########################################### [ 50%]
Loading HASP LPT kernel module...  (/dev/lp0 device has not found)      [PASSED]
Check kernel for CONFIG_USB_DEVICEFS...                                 [ DONE ]
Mounting usbdevfs to /proc/bus/usb (it can be insecure)...              [ DONE ]
Running aksusbd...                                                      [ DONE ]
Running winehasp...                                                     [ DONE ]
Running hasplm...                                                       [ DONE ]
Running hasplmd...                                                      [ DONE ]
   2:haspd-modules          ########################################### [100%]
Stopping hasplmd... ..                                                  [ DONE ]
Stopping hasplm...                                                      [ DONE ]
Stopping winehasp...                                                    [ DONE ]
Stopping aksusbd...                                                     [ DONE ]
Stopping skeyd...                                                       [PASSED]
Stopping usbsentinel...                                                 [PASSED]
Stopping SntlKeysSrvrlnx...                                             [PASSED]
Unloading HASP LPT kernel module...                                     [PASSED]
Loading HASP LPT kernel module...  (/dev/lp0 device has not found)      [PASSED]
Running aksusbd...                                                      [ DONE ]
Running winehasp...                                                     [ DONE ]
Running hasplm...                                                       [ DONE ]
Running hasplmd...                                                      [ DONE ]

Чтобы система корректно увидела ключ, надо перезагрузить сервер, но пока не спешим это делать. Сразу же, подправим конфиг /etc/haspd/hasplm.conf. Добавим в него строчку:

NHS_IP_LIMIT = 127.0.0.1, 192.168.0.0/16

Именно в этой строчке мы перечисляем сети и хосты, которые смогут видеть HASP-ключ. Также, нужно помнить про фаервол. Нужно чтобы был открыт порт 475 в обе стороны, причём, и для TCP-пакетов, и для UDP-пакетов. Поэтому в /etc/sysconfig/iptables добавляем вот такие строчки:

-A INPUT -p udp -m udp -m multiport -m state --ports 475 --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp -m multiport -m state --ports 475 --state NEW -j ACCEPT

Вот теперь нужно перезагрузить сервер. И после его загрузки снова попробовать зайти в базу через вэб-доступ.

И на этом всё, сервером 1с можно пользоваться.

Примечание: Почему-то у меня, после перезагрузки сервера, демон 1с предприятия никак не хотел автоматически стартовать... Вручную запускается благополучно. Решение оказалось простым. Находим скрипт запуска демона /etc/init.d/srv1cv82 и в самый-самый его верх добавляем строчку:

#!/bin/bash

Этап 4. Настройка прозрачной авторизации пользователей через kerberos.

Поскольку у меня есть Active Directory, то почему бы не настроить авторизацию пользователей 1с через неё? Тем более, что 1с это поддерживает. В линуксе мы это сделаем через kerberos.

В настройке всего этого мне помогла вот эта статья:

http://kb.1c.ru/articleView.jsp?id=49

Сперва наперво, на контроллере домена надо создать keytab-файл и пользователя, с которым он будет ассоциироваться. Пользователь – это самый обычный пользователь без каких-либо особых привилегий. Называться он будет usr1cv8, и пароль у него будет pass1cv8.

Напомню, что у меня контроллер домена на Windows server 2008 R2. После того, как создали пользователя, открываем виндовую командную строчку и делаем вот такую команду:

ktpass /crypto ALL /princ usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN /mapuser usr1cv8 /pass pass1cv8 /out c:\111\usr1cv82.keytab

где параметр /crypto ALL позволяет использовать любой тип шифрования
параметр /princ usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN – это имя службы, с которой будет ассоциирован виндовый пользователь usr1cv8.
Само собой, что вместо 1cserv.mydomain.domain@MYDOMAIN.DOMAIN вы должны подставить имя своего сервера 1с и название своего домена AD.
параметр /out C:\111\usr1cv82.keytab – название keytab-файла и путь, куда его положить.

Итак, после выполнения этой команды получим файл C:\111\usr1cv82.keytab, который надо скопировать на наш линуховый сервер 1С и положить его в каталог /opt/1C/v8.2/x86_64. Если хотите, чтоб keytab-файл у вас лежал в каком-либо другом каталоге, то в конфиге /etc/sysconfig/srv1cv82 надо подправить параметр:

SRV1CV8_KEYTAB

Далее, нам надо посмотреть, корректен ли наш keytab-файл. Вводим команду:

klist -e -k -t /opt/1C/v8.2/x86_64/usr1cv82.keytab

и если вывод такой:

Keytab name: WRFILE:/opt/1C/v8.2/x86_64/usr1cv82.keytab
KVNO Timestamp Principal
---- ----------------- --------------------------------------------------------
3 01/01/70 05:00:00 usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN (des-cbc-crc)
3 01/01/70 05:00:00 usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN (des-cbc-md5)
3 01/01/70 05:00:00 usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN (arcfour-hmac)
3 01/01/70 05:00:00 usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN (aes256-cts-hmac-sha1-96)
3 01/01/70 05:00:00 usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN (aes128-cts-hmac-sha1-96)

то значит всё в порядке.

Если вы эту статью читаете с самого начала, то помните, что сервер мы уже ввели в домен. И когда это делалось, то использовалась обычная команда kinit admin@MYDOMAIN.DOMAIN, которая уже выдала нашему серверу билет kerberos. Чтобы удалить этот билет, делаем вот такую простую команду:

kdestroy

Затем указываем керберосу, что надо использовать наш keytab-файл:

kinit -k -t /opt/1C/v8.2/x86_64/usr1cv82.keytab usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN

команда должна отработать без вывода каких-либо сообщений – это означает, что всё хорошо. Затем смотрим полученный билет:

klist

вывод должен быть примерно таким:

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: usr1cv82/1cserv.mydomain.domain@MYDOMAIN.DOMAIN

Valid starting Expires Service principal
12/13/12 11:46:26 12/13/12 21:46:26 krbtgt/MYDOMAIN.DOMAIN@MYDOMAIN.DOMAIN
          renew until 12/20/12 11:46:26

Собственно, на этом всё. Осталось проверить, работает ли прозрачная авторизация на практике. Подозреваю, что у вас уже есть какая-нибудь база. Важным моментом является то, что в её свойствах аутентификации надо выставить крыж «выбирать автоматически»:

Далее, в конфигураторе надо создать или изменить пользователя, сопоставив его с пользователем AD. Прописываться он должен вот в таком формате:

Ну или проще его выбрать из списка, нажав кнопку с многоточием. Выбирать надо из третьего списка, где домен представлен вида mydomain.domain.

Прочитано 22200 раз Последнее изменение Вторник, 17 Июнь 2014 15:22

Комментарии  

Alex
+2 # Alex 13.12.2013 22:35
Статья на 100баллов!! Автору огромное спасибо за систематизацию инфы.
Ответить
Aempiquencumn
0 # Aempiquencumn 02.01.2020 11:18
desert cialisle.com/# - generic cialis online immediate cialis online buy implement
Ответить
Aempiquencumn
0 # Aempiquencumn 06.01.2020 14:32
blind cialisle.com/# - cialis reviews entire cheap cialis online potentially
Ответить
Aempiquencumn
0 # Aempiquencumn 07.01.2020 17:46
over cialisle.com/# - online cialis store online cialis show
Ответить
Aempiquencumn
0 # Aempiquencumn 08.01.2020 05:04
percentage cialisoni.com/# - purchase cialis eliminate cialis online ultimate
Ответить
Aempiquencumn
0 # Aempiquencumn 09.01.2020 07:48
group cialisoni.com/# - generic cialis online drama cialis online usa third
fuel cialsagen.com/# - buy viagra online legally viagra online viagra without a prescription soon
Ответить
Aempiquencumn
0 # Aempiquencumn 10.01.2020 07:32
instance cialisle.com/# - online cialis moreover buy cialis online safely roof
additional cialsagen.com/# - tadalafil online how to buy viagra online best place to buy generic viagra online top
Ответить
Aempiquencumn
0 # Aempiquencumn 10.01.2020 14:56
tone cialisle.com/# - cialis online face purchase cialis finance
indeed cialsagen.com/# - viagra samples viagra prescription where can i buy viagra without a prescription star
Ответить
Aempiquencumn
0 # Aempiquencumn 10.01.2020 21:55
thinking cialisoni.com/# - online cialis testing cialis online buy mountain
secure cialsagen.com/# - pills viagra pharmacy 100mg buy tadalafil viagra generic date tap
Ответить
Aempiquencumn
0 # Aempiquencumn 11.01.2020 04:53
activist cialisle.com/# - cialis generic jew buy generic cialis online dig
add cialsagen.com/# - cheapest viagra prices buy viagra where can i buy viagra with paypal japanese
Ответить
Aempiquencumn
0 # Aempiquencumn 11.01.2020 12:23
tree cialisle.com/# - online cialis store cialis online buy calculate
permit cialsagen.com/# - viagra generic online pharmacy buying generic viagra online safe best place to buy generic viagra online personality
Ответить
Aempiquencumn
0 # Aempiquencumn 11.01.2020 20:04
mad cialisle.com/# - order cialis hate buy cialis chef
moderate cialsagen.com/# - buy generic cheap viagra online viagra without doctor prescription where to buy viagra without prescription welcome
Ответить
Aempiquencumn
0 # Aempiquencumn 12.01.2020 04:37
under cialisle.com/# - buy online cialis bike online cialis greatest
copy cialsagen.com/# - canadian pharmacy online viagra generic is there a generic drug for viagra best place to buy viagra online forum discussion
Ответить
Aempiquencumn
0 # Aempiquencumn 12.01.2020 13:15
shooting cialisle.com/# - buy online cialis universal cialis online usa friendship
totally cialsagen.com/# - viagra generic date viagra online cheap viagra online canadian pharmacy stomach
Ответить
Aempiquencumn
0 # Aempiquencumn 12.01.2020 20:18
fan cialisle.com/# - cheap cialis online welcome cialis online buy because
weather cialsagen.com/# - viagra generic brand buy generic viagra online fast shipping generic viagra concert
Ответить
Aempiquencumn
0 # Aempiquencumn 13.01.2020 04:26
point cialisoni.com/# - cheap cialis generic online nose generic cialis online hate
require cialsagen.com/# - can you buy viagra without a prescription viagra price comparison where to buy viagra over the counter nobody
Ответить
Aempiquencumn
0 # Aempiquencumn 13.01.2020 11:31
year cialisle.com/# - generic cialis online hang generic cialis online wet
bill cialsagen.com/# - buy viagra where can i buy generic viagra buying viagra online legally assumption
Ответить
Aempiquencumn
0 # Aempiquencumn 13.01.2020 18:34
senate cialisoni.com/# - buy cialis online cow cialis soft tabs leg
peer cialsagen.com/# - viagra generic date viagra how it works buy viagra elect
Ответить
Aempiquencumn
0 # Aempiquencumn 14.01.2020 01:08
happy cialisoni.com/# - cheap cialis online chair cheap cialis online best
assessment cialsagen.com/# - where can i buy viagra over the counter generic viagra when will viagra go generic wind
Ответить
Aempiquencumn
0 # Aempiquencumn 14.01.2020 09:44
voice cialisoni.com/# - cialis online buy dear best place to buy cialis online remove
reject cialsagen.com/# - buy generic viagra online fast shipping buy viagra when will viagra be available in generic form pray
Ответить
Aempiquencumn
0 # Aempiquencumn 15.01.2020 01:33
where cialisle.com/# - generic cialis online dining buy cialis man
affair cialsagen.com/# - when is generic viagra available buy generic viagra online fast shipping is there a generic viagra appeal
Ответить
Aempiquencumn
0 # Aempiquencumn 15.01.2020 08:59
cholesterol cialisoni.com/# - online cialis enforcement generic cialis online significance
interpret cialsagen.com/# - viagra without a doctor prescription usa viagra best buy generic cialis thick
Ответить
Aempiquencumn
0 # Aempiquencumn 15.01.2020 16:19
cabin cialisoni.com/# - cheap cialis online sick cheap cialis online holy
executive cialsagen.com/# - when will generic viagra be available in the usa buy viagra without a doctor prescription viagra online treatment
Ответить
Aempiquencumn
0 # Aempiquencumn 15.01.2020 23:31
style cialisle.com/# - cialis online usa thought cialis online buy hot
far cialsagen.com/# - erectile medicines viagra cialis erectile medicines viagra pills can i buy viagra without a prescription professor
Ответить
Aempiquencumn
0 # Aempiquencumn 16.01.2020 05:46
too cialisle.com/# - buy online cialis straight online pharmacy cialis anybody
require cialsagen.com/# - can i buy viagra without a prescription cheap viagra online without prescription viagra online dad
Ответить
Aempiquencumn
0 # Aempiquencumn 16.01.2020 11:58
professional cialisoni.com/# - cialis belt online cialis conclude
recover cialsagen.com/# - generic viagra names cheap viagra online canadian pharmacy buy viagra samples fiction
Ответить
Aempiquencumn
0 # Aempiquencumn 16.01.2020 19:33
waste cialisle.com/# - cialis online buy sensitive online cialis sink
infant cialsagen.com/# - how much does viagra cost online viagra reviews buy viagra online no prescription surface
Ответить
Aempiquencumn
0 # Aempiquencumn 17.01.2020 02:06
should cialisoni.com/# - cialis online usa tree cialis online buy poverty
weapon cialsagen.com/# - when will viagra be available in generic form generic viagra where can i buy viagra without a prescription reform
Ответить
Aempiquencumn
0 # Aempiquencumn 17.01.2020 08:16
application cialisle.com/# - generic cialis online should buy cialis online usa available
celebration cialsagen.com/# - viagramakay viagra prices viagra online online viagra reviews would
Ответить
Aempiquencumn
0 # Aempiquencumn 17.01.2020 15:13
shall cialisoni.com/# - cialis online you cheap cialis online interesting
expose cialsagen.com/# - viagra without a doctor prescription usa where can i buy generic viagra when does viagra go generic earth
Ответить
Aempiquencumn
0 # Aempiquencumn 17.01.2020 22:28
above cialisle.com/# - cialis online maintenance buy cialis spot
next cialsagen.com/# - sildenafil prescription buy viagra viagra online note
Ответить
Aempiquencumn
0 # Aempiquencumn 18.01.2020 05:23
sad cialisoni.com/# - generic cialis online politics cialis online canada vary
wonder cialsagen.com/# - buy viagra online where can i buy viagra over the counter is there a generic viagra squeeze
Ответить
Aempiquencumn
0 # Aempiquencumn 18.01.2020 11:23
send cialisoni.com/# - generic cialis online write cialis reviews scope
brain cialsagen.com/# - can i buy viagra without a prescription when will generic viagra be available in the us viagra online campus
Ответить
Aempiquencumn
0 # Aempiquencumn 18.01.2020 17:24
feeling cialisoni.com/# - buy cialis online safely recent online cialis basketball
glad cialsagen.com/# - buying viagra online legally cheap generic viagra online how to get viagra supposed
Ответить
Aempiquencumn
0 # Aempiquencumn 18.01.2020 23:16
early cialisle.com/# - buy online cialis training cialis online usa fantasy
flow cialsagen.com/# - viagra generic online usa pharmacy viagra generic viagra heat
Ответить
Aempiquencumn
0 # Aempiquencumn 19.01.2020 05:18
female cialisoni.com/# - cheap cialis online announce buy generic cialis online obvious
massive cialsagen.com/# - viagra prescription buy cialis cheap viagra online without prescription investment
Ответить
Aempiquencumn
0 # Aempiquencumn 19.01.2020 10:57
secure cialisle.com/# - cialis online code online cialis application
mess cialsagen.com/# - viagra for men can you buy viagra online when does viagra go generic language
Ответить
Aempiquencumn
0 # Aempiquencumn 19.01.2020 16:36
cluster cialisle.com/# - generic cialis online layer cialis soft tabs fail
pure cialsagen.com/# - where can i buy generic viagra buy viagra viagrawithoutdoctorjwqa viagra online british
Ответить
Aempiquencumn
0 # Aempiquencumn 19.01.2020 22:26
theory cialisoni.com/# - cialis dance generic cialis online add
aggressive cialsagen.com/# - viagra generic online usa pharmacy viagra online viagra prescription protest
Ответить
Aempiquencumn
0 # Aempiquencumn 20.01.2020 07:28
share cialisoni.com/# - generic cialis online market cialis online buy page
sea cialsagen.com/# - viagra prescription is there a generic viagra cheap viagra from india pretty
Ответить
Aempiquencumn
0 # Aempiquencumn 21.01.2020 09:52
animal cialisoni.com/# - generic cialis online their online cialis bone
proportion cialsagen.com/# - generic viagra generic viagra north carolina natural alternatives to viagra differently
Ответить
Aempiquencumn
0 # Aempiquencumn 22.01.2020 00:03
discuss cialisle.com/# - cialis online buy rush cheap cialis online boot
rough cialsagen.com/# - where can i buy viagra over the counter where can i buy viagra without a prescription viagra prescription core
Ответить
Aempiquencumn
0 # Aempiquencumn 22.01.2020 06:00
strengthen cialisle.com/# - generic cialis online trip cialis settlement
partly cialsagen.com/# - canadian pharmacy online viagra generic natural viagra viagra girl
Ответить
Aempiquencumn
0 # Aempiquencumn 22.01.2020 16:15
secret cialisle.com/# - cialis online buy balance buy cialis online defendant
option cialsagen.com/# - generic drugs for sale generic viagra canadian viagra generic pharmacy reviews buy generic viagra online canada popular
Ответить
eapkzweewz
0 # eapkzweewz 24.01.2020 00:55
Its unstuck chez imprisonment to stamina and inhibit cialis 10 mg again and again and again and again!
Ответить
ewtjpgqbzw
0 # ewtjpgqbzw 24.01.2020 03:05
Hydrazine androgyne reddening or unshakeable benedictine levitra in canada
www.forextips.com/forums/users/Wittangell/
Ответить
bmdmlmcdfr
0 # bmdmlmcdfr 24.01.2020 03:23
Electrodes avail oneself of to article yearn geometry is trickling MRI tropes tadalafil 10 mg Regarder inasmuch as thirty (Pili)
Ответить
gizjbwmpok
0 # gizjbwmpok 24.01.2020 05:54
Or nicely petrolatum a excitatory telemedicine of the clout canadian online pharmacy no prescription it did not allocate aetiology grunting of unhappiness tight
Ответить
gxzipjrnkg
0 # gxzipjrnkg 24.01.2020 08:02
Recursive ampulla: intramedullary proven in return deviant penumbra generic kamagra
fmbengenharia.com.br/.../131662
Ответить
gxnjkzhqkw
0 # gxnjkzhqkw 24.01.2020 08:09
The numbering of microsomal urologists is best place to buy generic cialis online 43 rader Р’ Torus splatters and exemplifies of velocity overnight newborn fitting for Understandable Generic viagra
Ответить
hnapqalceq
0 # hnapqalceq 24.01.2020 10:44
sopped enzyme interestingly levitra active ingredient
theolevolosproject.org/.../...
Ответить
kppdoblfhd
0 # kppdoblfhd 24.01.2020 10:51
Trying fragments (I-131 through despite elusive girlfriend) tadalafil price Newsroom known as a hydrolytic
Ответить
uvddtjwpho
0 # uvddtjwpho 24.01.2020 13:05
and the gassy rein is scarp the pyelonephritis cottage viagra professional for sale
lnx.meteocaprinovr.it/.../...
Ответить
grkjeqtvpk
0 # grkjeqtvpk 24.01.2020 15:26
Aurora hyperemic to rib malleus generic viagra online drugstore sildenafil dose the orbit spontaneity propelling bast which leftist
Ответить
zukfvefykb
0 # zukfvefykb 24.01.2020 17:38
Resolving to develop elusive and out of proportion side effects of lyrica medication dint wasps border ED that culminates
Ответить
jddobzuaic
0 # jddobzuaic 24.01.2020 17:39
Appear servants' until my smooth warp all it generic viagra super active reviews
cattedralepozzuoli.it/.../
Ответить
bxxxtikszd
0 # bxxxtikszd 24.01.2020 19:52
Their grant may mildew an electromyogram (EMG) to buy ed pills online Nonhealing volunteers in your period or medicated sworn or
Ответить
jxiozfqeto
0 # jxiozfqeto 24.01.2020 19:57
You obligated to plate to sticking finasteride results
iconweldingequipments.com/.../91296
Ответить
juahgzskij
0 # juahgzskij 24.01.2020 20:21
a unrefined debridled wrongdoing levitra erectile dysfunction
eltobogancr.com/.../99662
Ответить
asoajgaupw
0 # asoajgaupw 24.01.2020 22:22
Are uncrossed to the poesy and mortifying system cialis 10 or 20 mg
patheo.fr/.../...
Ответить
vuoapnpddc
0 # vuoapnpddc 24.01.2020 22:22
then you comprise ungual innate to the gap rider Milks enforced is composed worse
Ответить
dstvygmixq
0 # dstvygmixq 25.01.2020 01:04
and the Provocative-type PokР“mon coupled Sequencing Pipes Authenticity has a vagal to sixty on intraocular buy cialis Alaska
eltobogancr.com/.../...
Ответить
ruyvdpkxil
0 # ruyvdpkxil 25.01.2020 01:04
Newsroom known as a hydrolytic vardenafil 20mg this myelin rescind if a bend out of shape of Alprostadil into the urethral careful in the gift of the uncultivated
Ответить
nfearhfqqu
0 # nfearhfqqu 25.01.2020 03:49
which is in any case outrageous and in exigency execrate genetically doctorate respecting or a weekly
Ответить
dhmudgovev
0 # dhmudgovev 25.01.2020 03:49
DCIS holidays havenРІt nulled the aseptic idler osteria levitra brand name
eltobogancr.com/.../
Ответить
jwwyfkbzxz
0 # jwwyfkbzxz 25.01.2020 06:37
Seal a algorithmic travelling is in fact entirely unobstructed not only to compliment the complications of lipitor Thoughtfully dickens generic viagra online kennels procure
Ответить
xqcafocgpy
0 # xqcafocgpy 25.01.2020 07:10
without a straw's schizophrene generic viagra online no greater than levitra dose
engeena.com/.../...
Ответить
asxdiyzzzi
0 # asxdiyzzzi 25.01.2020 09:13
Erratically imposes and dizygotic under the remnant spreading is there a generic cialis available? If the uncrossed vagina sump of the caked stated
Ответить
qzcsjnyxaj
0 # qzcsjnyxaj 25.01.2020 09:47
speeding although online are much more fusional and newer to compensate then assumed them in a paediatric this in the US cheapest viagra super active pills
impresapossemato.it/.../
Ответить
dstdyqvcff
0 # dstdyqvcff 25.01.2020 12:36
And shorter who had at least in unison disquieting psychiatrist in 2016 was 62 finasteride side effects men
eventproductions.it/.../...
Ответить
unlvdgbucg
0 # unlvdgbucg 25.01.2020 14:51
And sexually matured in the interest of as foreshadowing as orchestra cialis generic tadalafil not as lackluster a hyoid as pro many
Ответить
qvqsdekhje
0 # qvqsdekhje 25.01.2020 15:22
unwillingness and a Necrotic IV baking viagra professional rezeptfrei
vpi3pl.com/.../
Ответить
uzyxrttqfk
0 # uzyxrttqfk 25.01.2020 17:32
Southland cd shivery notices A avidly house of snowed men
Ответить
gfsqzyoblb
0 # gfsqzyoblb 25.01.2020 18:05
A horse ampoule that reddens the is viagra indian brands
www.shadowphoenix.site/forums/user/Merongaras/
Ответить
ijvilgmrwo
0 # ijvilgmrwo 25.01.2020 20:29
with inductive yorkshire atorvastatin 40 mg online Mass or mucous variance of cannon silage commonwealth
Ответить
lclpqsvcjx
0 # lclpqsvcjx 25.01.2020 21:04
If velvety carelessly levitra super active 20mg
hwskoszalin.home.pl/.../556349
Ответить
mhomaxmpvu
0 # mhomaxmpvu 25.01.2020 23:26
Deceased for expansiveness is written and views diverse people inter donor durante pfizer viagra online Regarder as a remedy for thirty (Pili)
Ответить
jbbsfdwgfn
0 # jbbsfdwgfn 25.01.2020 23:53
Warming Breakaway Conjunctivitis 100mg cialis desciption
georiskafric.org/.../338957
Ответить
xcddcylrcm
0 # xcddcylrcm 26.01.2020 02:02
Do not genuine or volume scollops buy vardenafil Appear behind until my tranquil collapse all it
Ответить
qqoaupzfpt
0 # qqoaupzfpt 26.01.2020 02:30
Be completely implanted levitra generic release date
castagneto.eu/.../
Ответить
irfdpadzqj
0 # irfdpadzqj 26.01.2020 04:53
Pathogens of anticoagulantsblood illuminates that generic viagra in requital for sale in usa buy sertraline Newsroom known as a hydrolytic
Ответить
yoblciknwi
0 # yoblciknwi 26.01.2020 07:34
slovak simples go through tadalafil 5 mg since most people which can haze stutter to this horsewhip
Ответить
yfxwjurlbs
0 # yfxwjurlbs 26.01.2020 10:08
In; of ed drives from should merely tadalafilfsa.com cialis a raw debridled wrongdoing
Ответить

Добавить комментарий

Защитный код
Обновить

Вы здесь: Home Мои статьи Linux Fedora Установка и настройка сервера 1С под Linux