Ни о чём →
Ubuntu Server 10.04 LTS i386, PostgreSQL + 1C patch, 1c server + web-интерфейс: сборка, установка, настройка
Не знаю, нужно ли это будет кому-нибудь.
Судя по реакции на habrahabr.ru/blogs/linux/107321/ — это нужно.
UPD 1 Start
Из материалов комментариев внизу, спасибо OldFornit
1. texlive-binaries — вполне вероятно, что необходимости в установке этого пакета нет.
2. «Да, платформа для Linux работает не всегда стабильно, часто возникает «падение» сервера, версии разные толком никто ничего не пишет.
Причина то известна — фрагментация памяти. Замечательно помогает ограничение времени жизни одного рабочего процесса/ограничение памяти на один рабочий процесс (в районе 1.6G). Внезапно! Рабочих процессов может быть (и должно быть) больше одного.»
3. «Да, и без описания тюнинга постгреса или хотя бы отсылки на любую статью по этому вопросу — смысла в настройке данной связки никакого.
wiki.etersoft.ru/PostgreSQL/Optimum?v=148t
Etersoft продают поддержку PostgreSQL.
UPD 1 End
UPD 2 Start
1.
После того, как изменили
kernel.shmmax = 143217728
kernel.shmall = 143217728
Необходимо применить их коммандой:
sysctl -p
2.
Вполне возможно, что потребуется создать
симлинки на
libreadline.so.6
ln -s /lib/libreadline.so.6 /lib/libreadline.so.5
3.
texlive-binaries не нужны, достаточно установить
aptitude install t1utils libt1-5
и ttf2pt1
altruistic.lbl.gov/mirrors/ubuntu/pool/universe/t/ttf2pt1/
(взято отсюда pg1c.ru/?page_id=173)
UPD 2 End
Поэтому не судите строго, если кто не любит Ubuntu или 1С или „и то и другое“.
[1] Исходный материал представлен на www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=show_thread&omm=0&om=67768&forum=vsluhforumID3
данная поделка является дополненнием и исправленнием.
[2] Кроме того, использован ряд материалов из сети, в частности openstar.com.ua/blog/установка-1С-linux-postgresql/.
Огромное спасибо компании Ailant (http://ailant.com.ru/) которая раскурила все нужные маны и предложила исходную сборку RPM и DEB.
Так же персональный „respect и уважуха“ Игорю Вершинину ( Igor Vershinin ) из того же Ailant.
А так же тому парню, который сделал сборку под i386 по описанию Ailant'a, скорее всего его имя Валерий.
Материал по locale.gen взят из базы знаний 1С.
Приступим пожалуй?
Итак, наша задача установить:
Проведем первоначальную настройку.
Загрузим и установим сервер, при установке выберем сразу LAMP и SAMBA.
Хотя PHP и MySQL нам не нужен, но, мало ли, вдруг мы потом надумаем делать на этой машине ещё и вебсервер.
Первые команды в сервере после установки:
Проверяем:
В самом конце должно быть:
Не знаю, надо или нет, просто проследовал рекомендациям в [2], на всякий случай поставил.
Теперь то, что точно нужно:
Сделаем две символических ссылки, без которых «1С: Предприятие» не сможет работать с СУБД:
Теперь установка PostgreSQL
Ещё немного зависимостей:
Далее, собираем PostgreSQL так, как это указано в инструкции OpenNet.
Скачиваем с http://v8.1c.ru/overview/postgres_patches_notes.htm все три патча самых последних версий (там еще RPM лежит, но он нам не подойдет).
Версия 8.4.1
То, что версия 8.4.1 совсем не страшно, т.к. по информации OpenNet „все минорные исправления не затрагивают того, что патчит фирма 1С.“
>> „Переименовываем патчи, добавляя перед названием «20-», «21-» и «22-», т. е. приводим их к виду: 20-1c_FULL_84-0.19.2.patch, 21-postgresql-1c-8.4.patch, 22-applock-1c-8.4.1.patch.“
Создаем папку 1С, если ещё не сделали этого.
Качаем в неё PostgreSQL:
>> „После скачивания архивы автоматически распакуются, будут наложены специфичные для Ubuntu патчи (что очень хорошо, так как итоговая сборка будет “родной»). Затем копируем наши патчи в каталог "/debian/patches/". Далее нам предстоит исправить три файла, ответственных за правильную сборку пакета. Все три файла содержаться в каталоге «debian»."
Т.е. если все делать по шагам то это будет нечто вроде "/1c/debian/patches".
>> Файл «changelog». Отвечает за правильное наименование пакетов после сборки. Добавляем туда следующие строки в начало файла:
postgresql-8.4 ([префикс ваш, чтобы версия была выше чем 8, например 18]8.4.4-[как вы хотите назвать сборку]-0ubuntu10.04) lucid; urgency=low
* Apply 1C patch for PostgreSQL (from 8.4.1 version)
— add mchar, fulleq, fasttrun
-- [Имя] [Фамилия] <e-mail> [дата в правильном формате]
Посмотрите внимательно на этот файл и Вы поймете, что сначала идет полное имя сборки, потом, после звездочки что именно изменяется, потом описание, более подробное, потом кто конкретно коммитил патчами и что было сделано.
Таким образом версия наша будет [цифра, которую вы вписали вначале, например]: 18.4.4, чтобы в дальнейшем она самостоятельно не обновилась при апдейте системы.
Если будут выходить новые версии, то всегда можно сделать то же самое пересобрав PostgreSQL.
Да, сейчас вышла 9 версия, хорошо, что она пока не «скачивается автоматом» для Ubuntu 10.04 LTS, т.к. о её совместимости пока толком ничего сказать нельзя.
>> Следующий файл «control».
Необходимо добавить зависимость от библиотеки «libicu42» (требуется для патча от «1С»).
В секции «Build-Depends» (в начале файла) в конце списка добавляем ", libicu-dev".
Целиком строка будет выглядеть вот так:
И последний файл «postgresql-contrib-8.4.install». В него необходимо добавить строки с именами 1С-овских модулей: mchar, fulleq и fasttrun. После строк:
надо добавить:
Но это не все.
>> Т.к. мы собираем на 32-bit компьютере i386, нам необходимо прописать правильные «обработки дат».
Это указывается в файле /debian/rules, фактически это обычный make-файл, указывающий порядок сборки.
В нем есть в строке 31 опция "--enable-integer-datetimes", ее надо заменить на "--disable-..."
Теперь нужно поправить сам патч от 1С, тот файл, который больше всего по размеру, т.к.
>> Вышло обновление патча 0.19.3 от 1С с небольшим инзменением, вместо строки 2118:
+LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
используется она же с одним измененным словом, а именно так:
+LANGUAGE C RETURNS NULL ON NULL INPUT VOLATILE;
Вот теперь "операцию по адаптации можно считать законченой".
Компилируем как указано в статье, через «pbuilder» (>> «Более подробно об этом можно почитать в https://wiki.ubuntu.com/PbuilderHowto»).
Для этого ставим, собственно, его и ещё одну нужную либу.
Создаем сборочный стенд:
Обновляем сборочный стенд (желательно каждый раз перед компиляцией):
Переходим в каталог, где лежат наши исходники PostgreSQL и «говорим»:
>> Сборка началась. В первый раз по зависимостям будет вытянуто около 500 мегабайт, надо быть к этому готовым. Либо собирать на unlim-канале (дома, например). В дальнейшем пакеты кешируются. У нас используется пакет apt-proxy, который также умеет это делать. Для предприятий, где работает не один сервер, очень рекомендую.
Сборка проходит ровно и спокойно. По окончанию в каталоге "/var/cache/pbuilder/result" будут лежать собранные пакеты.
Все так и есть.
Берем полученые пакеты куда-нибудь из /var.
Под root (sudo -i) делаем установку.
И, собственно, установка PostgreSQL, последовательность имеет значение, если использовать кнопку TAB для автодополнения то набрать эти длинные имена очень просто:
Всё, PostgreSQL установлен, запущен он был на четвертом пакете.
Проверяем просто:
Проверим, чтобы PostgreSQL всегда запускался после перезагрузки:
У меня написало
Проверяем что PostgreSQL встал «как надо», смотрим существует ли:
Заодно поправим pg_hba.conf, так, чтобы PostgreSQL был легко «виден по сети».
С точки зрения безопасности это, конечно, неверно, зато — работает.
Теперь поправим пароль на PostgreSQL, ведь мы его пока не знаем?
Это, конечно, не задаст пароль на базу, но задаст пароль на СУБД, по сети мы его увидим.
Теперь, собственно, установка 1С.
Первоначальная подготовка включает в себя:
Качаем 1С с сайта users.v8.1c.ru, конечно, это касается тех, у кого есть туда доступ.
Можно попытаться поискать на дисках ИТС или в сети...
Далее все вполне стандартно и банально, последовательно ставим:
Проверяем, что всё нормально, что всё установилось:
Должен отработать, не выдав никаких сообщений.
Если всё-таки что-то выдает, значит, следуем инструкции, он ругается на то, что ему не хватает.
>> Обычно она указывает не на название пакетов, а на недостающие файлы. Узнать в каком они пакете можно через «apt-file search».
Делаем возможность запуска после перезагрузки и запускаем:
От имени пользователя «usr1cv82» должно быть запущено три процесса. Если процесса не три, а один (такое почему-то иногда бывает, но только при первоначальном запуске), то грохаем всё в каталоге /home/usr1cv82:
Перезагружаемся и проверяем, что все работает:
Теперь разберемся с web сервисом:
Обычно, каждое клиентское подключение хочет ключик, это же касается и web-сервиса, каждый web-клиент забирает 1 «свободную лицензию».
Заморачиваться с установкой HASP LM даже под Ubuntu у меня не было никакого желания, т.к. на сайте Alladin только TAR.
Я пошел в обход. С Windows компьютера, на котором установлена платформа 8.2 берется файл:
Фийл располагается в
В файле правятся
на
это примерно 24 строка.
И 110 строка
на
После этого web сервис начнет видеть лицензии.
Теперь сам web.
Я создал папку "/1c/web/".
Положил в неё файл default.vrd следующего содержания:
В девственно пустой /etc/apache2/httpd.conf добавилась строка:
А в /etc/apache-2/sites-enabled/000-default
Важно, чтобы и apache и 1С имели доступ к папке "/1c/web/".
Я поступил топорно:
Т.к. задолго перед этим уже успел «убить» безопасность вещью типа:
В /etc/samba/smb.conf.
Да, платформа для Linux работает не всегда стабильно, часто возникает «падение» сервера, версии разные толком никто ничего не пишет.
Для того, чтобы этого избежать применяем типичный костыль:
Если кого-то интересуют «плоские» базы 8.2 в http-Intranet то для них нужно:
На этом, вроде как, все.
И, на всякий случай:
Замечу, что все в консоли: используем простую истину, что «GUI для слабых духом», а машинка у нас на виртуалке :).
Теперь точно всё.
Судя по реакции на habrahabr.ru/blogs/linux/107321/ — это нужно.
UPD 1 Start
Из материалов комментариев внизу, спасибо OldFornit
1. texlive-binaries — вполне вероятно, что необходимости в установке этого пакета нет.
2. «Да, платформа для Linux работает не всегда стабильно, часто возникает «падение» сервера, версии разные толком никто ничего не пишет.
Причина то известна — фрагментация памяти. Замечательно помогает ограничение времени жизни одного рабочего процесса/ограничение памяти на один рабочий процесс (в районе 1.6G). Внезапно! Рабочих процессов может быть (и должно быть) больше одного.»
3. «Да, и без описания тюнинга постгреса или хотя бы отсылки на любую статью по этому вопросу — смысла в настройке данной связки никакого.
wiki.etersoft.ru/PostgreSQL/Optimum?v=148t
Etersoft продают поддержку PostgreSQL.
UPD 1 End
UPD 2 Start
1.
После того, как изменили
kernel.shmmax = 143217728
kernel.shmall = 143217728
Необходимо применить их коммандой:
sysctl -p
2.
Вполне возможно, что потребуется создать
симлинки на
libreadline.so.6
ln -s /lib/libreadline.so.6 /lib/libreadline.so.5
3.
texlive-binaries не нужны, достаточно установить
aptitude install t1utils libt1-5
и ttf2pt1
altruistic.lbl.gov/mirrors/ubuntu/pool/universe/t/ttf2pt1/
(взято отсюда pg1c.ru/?page_id=173)
UPD 2 End
Поэтому не судите строго, если кто не любит Ubuntu или 1С или „и то и другое“.
[1] Исходный материал представлен на www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=show_thread&omm=0&om=67768&forum=vsluhforumID3
данная поделка является дополненнием и исправленнием.
[2] Кроме того, использован ряд материалов из сети, в частности openstar.com.ua/blog/установка-1С-linux-postgresql/.
Огромное спасибо компании Ailant (http://ailant.com.ru/) которая раскурила все нужные маны и предложила исходную сборку RPM и DEB.
Так же персональный „respect и уважуха“ Игорю Вершинину ( Igor Vershinin ) из того же Ailant.
А так же тому парню, который сделал сборку под i386 по описанию Ailant'a, скорее всего его имя Валерий.
Материал по locale.gen взят из базы знаний 1С.
Приступим пожалуй?
Итак, наша задача установить:
- Ubuntu Server 10.04 LTS .
- 1C Server.
- PostgreSQL сервер, собранный специально под 1С.
Проведем первоначальную настройку.
Загрузим и установим сервер, при установке выберем сразу LAMP и SAMBA.
Хотя PHP и MySQL нам не нужен, но, мало ли, вдруг мы потом надумаем делать на этой машине ещё и вебсервер.
Первые команды в сервере после установки:
sudo -i
apt-get install mc
apt-get install ntp
apt-get update
apt-get upgrade
apt-get dist-upgrade
echo kernel.shmmax = `echo 128*1024*1024 | bc` >> /etc/sysctl.conf
echo kernel.shmall = `echo 128*1024*1024 | bc` >> /etc/sysctl.conf
Проверяем:
nano /etc/sysctl.conf
В самом конце должно быть:
kernel.shmmax = 143217728
kernel.shmall = 143217728
Не знаю, надо или нет, просто проследовал рекомендациям в [2], на всякий случай поставил.
apt-get install libxslt1.1 libxml2
Теперь то, что точно нужно:
echo en_US ISO-8859-1 >> /etc/locale.gen
locale-gen
Generating locales…
ru_RU.UTF-8… done
en_US.ISO-8859-1… done
Generation complete.
Сделаем две символических ссылки, без которых «1С: Предприятие» не сможет работать с СУБД:
ln -s /usr/lib/locale/en_US.utf8 /usr/lib/locale/en_US
ln -s /usr/share/locale/en /usr/share/locale/en_US
Теперь установка PostgreSQL
Ещё немного зависимостей:
apt-get install postgresql-common postgresql-client-common libicu42 libossp-uuid16
Далее, собираем PostgreSQL так, как это указано в инструкции OpenNet.
Скачиваем с http://v8.1c.ru/overview/postgres_patches_notes.htm все три патча самых последних версий (там еще RPM лежит, но он нам не подойдет).
Версия 8.4.1
- 1c_FULL_84-0.19.2.patch -- патч содержит дополнительные модули расширения и необходимые изменения к СУБД,
добавляющие функциональность, необходимую для работы с сервером 1С: Предприятия 8.1 и 1С: Предприятия 8.2. - postgresql-1c-8.4.patch патч модифицирующий скрипт запуска/останова и конфигурационных файлов PostgreSQL для повышения производительности при работе с сервером 1С: Предприятия 8.1 и 1С: Предприятия 8.2.
- applock-1c-8.4.1.patch патч устраняющий проблему блокировок при использовании AUTOVACUUM.
То, что версия 8.4.1 совсем не страшно, т.к. по информации OpenNet „все минорные исправления не затрагивают того, что патчит фирма 1С.“
>> „Переименовываем патчи, добавляя перед названием «20-», «21-» и «22-», т. е. приводим их к виду: 20-1c_FULL_84-0.19.2.patch, 21-postgresql-1c-8.4.patch, 22-applock-1c-8.4.1.patch.“
Создаем папку 1С, если ещё не сделали этого.
Качаем в неё PostgreSQL:
apt-get source postgresql
>> „После скачивания архивы автоматически распакуются, будут наложены специфичные для Ubuntu патчи (что очень хорошо, так как итоговая сборка будет “родной»). Затем копируем наши патчи в каталог "/debian/patches/". Далее нам предстоит исправить три файла, ответственных за правильную сборку пакета. Все три файла содержаться в каталоге «debian»."
Т.е. если все делать по шагам то это будет нечто вроде "/1c/debian/patches".
>> Файл «changelog». Отвечает за правильное наименование пакетов после сборки. Добавляем туда следующие строки в начало файла:
postgresql-8.4 ([префикс ваш, чтобы версия была выше чем 8, например 18]8.4.4-[как вы хотите назвать сборку]-0ubuntu10.04) lucid; urgency=low
* Apply 1C patch for PostgreSQL (from 8.4.1 version)
— add mchar, fulleq, fasttrun
-- [Имя] [Фамилия] <e-mail> [дата в правильном формате]
Посмотрите внимательно на этот файл и Вы поймете, что сначала идет полное имя сборки, потом, после звездочки что именно изменяется, потом описание, более подробное, потом кто конкретно коммитил патчами и что было сделано.
Таким образом версия наша будет [цифра, которую вы вписали вначале, например]: 18.4.4, чтобы в дальнейшем она самостоятельно не обновилась при апдейте системы.
Если будут выходить новые версии, то всегда можно сделать то же самое пересобрав PostgreSQL.
Да, сейчас вышла 9 версия, хорошо, что она пока не «скачивается автоматом» для Ubuntu 10.04 LTS, т.к. о её совместимости пока толком ничего сказать нельзя.
>> Следующий файл «control».
Необходимо добавить зависимость от библиотеки «libicu42» (требуется для патча от «1С»).
В секции «Build-Depends» (в начале файла) в конце списка добавляем ", libicu-dev".
Целиком строка будет выглядеть вот так:
bison, flex, docbook-utils, openjade, docbook, libicu-dev
И последний файл «postgresql-contrib-8.4.install». В него необходимо добавить строки с именами 1С-овских модулей: mchar, fulleq и fasttrun. После строк:
usr/lib/postgresql/8.4/lib/pg_stat_statements.so
usr/lib/postgresql/8.4/lib/citext.so
usr/lib/postgresql/8.4/lib/btree_gin.so
надо добавить:
usr/lib/postgresql/8.4/lib/mchar.so
usr/lib/postgresql/8.4/lib/fulleq.so
usr/lib/postgresql/8.4/lib/fasttrun.so
Но это не все.
>> Т.к. мы собираем на 32-bit компьютере i386, нам необходимо прописать правильные «обработки дат».
Это указывается в файле /debian/rules, фактически это обычный make-файл, указывающий порядок сборки.
В нем есть в строке 31 опция "--enable-integer-datetimes", ее надо заменить на "--disable-..."
Теперь нужно поправить сам патч от 1С, тот файл, который больше всего по размеру, т.к.
>> Вышло обновление патча 0.19.3 от 1С с небольшим инзменением, вместо строки 2118:
+LANGUAGE C RETURNS NULL ON NULL INPUT IMMUTABLE;
используется она же с одним измененным словом, а именно так:
+LANGUAGE C RETURNS NULL ON NULL INPUT VOLATILE;
Вот теперь "операцию по адаптации можно считать законченой".
Компилируем как указано в статье, через «pbuilder» (>> «Более подробно об этом можно почитать в https://wiki.ubuntu.com/PbuilderHowto»).
Для этого ставим, собственно, его и ещё одну нужную либу.
apt-get install pbuilder cdbs
Создаем сборочный стенд:
pbuilder create
Обновляем сборочный стенд (желательно каждый раз перед компиляцией):
pbuilder update
Переходим в каталог, где лежат наши исходники PostgreSQL и «говорим»:
pdebuild
>> Сборка началась. В первый раз по зависимостям будет вытянуто около 500 мегабайт, надо быть к этому готовым. Либо собирать на unlim-канале (дома, например). В дальнейшем пакеты кешируются. У нас используется пакет apt-proxy, который также умеет это делать. Для предприятий, где работает не один сервер, очень рекомендую.
Сборка проходит ровно и спокойно. По окончанию в каталоге "/var/cache/pbuilder/result" будут лежать собранные пакеты.
Все так и есть.
Берем полученые пакеты куда-нибудь из /var.
Под root (sudo -i) делаем установку.
И, собственно, установка PostgreSQL, последовательность имеет значение, если использовать кнопку TAB для автодополнения то набрать эти длинные имена очень просто:
dpkg -i libpq5_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i libpgtypes3_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i postgresql-client-[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i postgresql-8.4_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
dpkg -i postgresql-contrib-8.4_[имя вашей сборки, у меня вышло 8.4_8.4.5]-0ubuntu10.04_i386.deb
Всё, PostgreSQL установлен, запущен он был на четвертом пакете.
Проверяем просто:
ps aux | grep post
Проверим, чтобы PostgreSQL всегда запускался после перезагрузки:
update-rc.d postgresql-8.4 defaults
У меня написало
System start/stop links for /etc/init.d/postgresql-8.4 already exist.
Проверяем что PostgreSQL встал «как надо», смотрим существует ли:
/etc/postgresql/8.4/main/pg_hba.conf
Заодно поправим pg_hba.conf, так, чтобы PostgreSQL был легко «виден по сети».
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# local all all ident sameuser # БЫЛО
local all all trust # СТАЛО
#host all all 0.0.0.0/0 md5 # БЫЛО
host all all 0.0.0.0/0 trust # СТАЛО
С точки зрения безопасности это, конечно, неверно, зато — работает.
Теперь поправим пароль на PostgreSQL, ведь мы его пока не знаем?
sudo passwd postgres
Это, конечно, не задаст пароль на базу, но задаст пароль на СУБД, по сети мы его увидим.
Теперь, собственно, установка 1С.
Первоначальная подготовка включает в себя:
apt-get install imagemagick msttcorefonts libgsf-1-114 texlive-binaries
Качаем 1С с сайта users.v8.1c.ru, конечно, это касается тех, у кого есть туда доступ.
Можно попытаться поискать на дисках ИТС или в сети...
Далее все вполне стандартно и банально, последовательно ставим:
1c-enterprise82-common_8.2.12-92_i386.deb
1c-enterprise82-common-nls_8.2.12-92_i386.deb
1c-enterprise82-server_8.2.12-92_i386.deb
1c-enterprise82-server-nls_8.2.12-92_i386.deb
1c-enterprise82-ws_8.2.12-92_i386.deb
1c-enterprise82-ws-nls_8.2.12-92_i386.deb
1c-enterprise82-crs_8.2.12-92_i386.deb
1c-enterprise82-crs-nls_8.2.12-92_i386.deb
Проверяем, что всё нормально, что всё установилось:
/opt/1c/v8.2/i386/utils/config_server
Должен отработать, не выдав никаких сообщений.
Если всё-таки что-то выдает, значит, следуем инструкции, он ругается на то, что ему не хватает.
>> Обычно она указывает не на название пакетов, а на недостающие файлы. Узнать в каком они пакете можно через «apt-file search».
Делаем возможность запуска после перезагрузки и запускаем:
update-rc.d srv1cv82 defaults
service srv1cv82 start
ps aux | grep 1c
От имени пользователя «usr1cv82» должно быть запущено три процесса. Если процесса не три, а один (такое почему-то иногда бывает, но только при первоначальном запуске), то грохаем всё в каталоге /home/usr1cv82:
service srv1cv82 stop
грохаем
service srv1cv82 start
Перезагружаемся и проверяем, что все работает:
ps aux | grep apache
ps aux | grep post
ps aux | grep 1c
Теперь разберемся с web сервисом:
Обычно, каждое клиентское подключение хочет ключик, это же касается и web-сервиса, каждый web-клиент забирает 1 «свободную лицензию».
Заморачиваться с установкой HASP LM даже под Ubuntu у меня не было никакого желания, т.к. на сайте Alladin только TAR.
Я пошел в обход. С Windows компьютера, на котором установлена платформа 8.2 берется файл:
C:\Program Files\1cv82\conf\nethasp.ini
Фийл располагается в
/opt/1c/v8.2/i386/conf/nethasp.ini
В файле правятся
;;NH_TCPIP = Enabled or Disabled ; Use the TCP/IP protocol
на
NH_TCPIP = Enabled; Use the TCP/IP protocol
это примерно 24 строка.
И 110 строка
;;NH_SERVER_ADDR = <Addr1>, <Addr2> ; IP addresses of all the NetHASP
на
NH_SERVER_ADDR = IP компьютера, на котором установлен HASP LM
После этого web сервис начнет видеть лицензии.
Теперь сам web.
Я создал папку "/1c/web/".
Положил в неё файл default.vrd следующего содержания:
- <?xml version="1.0" encoding="UTF-8"?>
- <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- base="/unf"
- ib="Srvr="[имя сервера]";Ref="[имя БД сервера]quot;;">
- <ws enable="false"/>
- </point>
* This source code was highlighted with Source Code Highlighter.
В девственно пустой /etc/apache2/httpd.conf добавилась строка:
LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so"
А в /etc/apache-2/sites-enabled/000-default
- Alias /1с "/1c/web"
- <Directory "/1c/web/">
- AllowOverride None
- Options None
- Order allow,deny
- Allow from all
- SetHandler 1c-application
- ManagedApplicationDescriptor "/1c/web/default.vrd"
- </Directory>
* This source code was highlighted with Source Code Highlighter.
Важно, чтобы и apache и 1С имели доступ к папке "/1c/web/".
Я поступил топорно:
chmod 777 -R /1c
Т.к. задолго перед этим уже успел «убить» безопасность вещью типа:
[share]
comment = All Share
browseable = yes
path = /1c/share
guest ok = yes
read only = no
create mask = 0777
directory mask = 0777
В /etc/samba/smb.conf.
Да, платформа для Linux работает не всегда стабильно, часто возникает «падение» сервера, версии разные толком никто ничего не пишет.
Для того, чтобы этого избежать применяем типичный костыль:
- Берём скрипт стартера 1С (для тех, кто в танке: "/etc/init.d/srv1cv82"), копируем куда-нибудь в свою папочку (у меня "/1c/script").
- Правим его как нам угодно, желательно вывести сообщения в лог, методом проб и ошибок разберетесь...
- Вешаем на crontab (man crontab) под root (sudo -i) (можно просто повесить service srv1cv82 start, про start не забываем!)
crontab -e
*/5 * * * * service srv1cv82 start
Если кого-то интересуют «плоские» базы 8.2 в http-Intranet то для них нужно:
- Полная шара типа описанной выше, это для конфигурирования.
- Соответственно, сама конфигурация в этой шаре.
- Сами настройки Apache не меняются, меняется default.vrd:
- <?xml version="1.0" encoding="UTF-8"?>
- <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- base="/new"
- ib="File="[путь до шары типа /1c/baza]";">
- <ws enable="false"/>
- </point>
* This source code was highlighted with Source Code Highlighter.
На этом, вроде как, все.
И, на всякий случай:
- Монтирование доступных ресурсов Windows выполняется так: sudo smbmount \\\\[имя компьютера]\\[имя ресурса] /mnt -o username=[username],password=[password],[rw?],iocharset=utf8
- /etc/network/interfaces:
iface eth0 inet static
address 192.168.XXX.XXX
netmask 255.255.255.0
gateway 192.168.XXX.XXX
а так же смотрим чтобы в /etc/resolv.conf было «все ОК» - Не забываем про /etc/.wgetrc, /etc/apt/apt.conf, /etc/environment если у нас proxy, правим https_proxy http_proxy и ftp_proxy по формату = http://[user]:[pass]@[IP:port]
- Не забываем, что для Samba Share тоже нужно давать chmod
- Не забываем, что строго говоря, apache ничего не знает об /opt, вполне может быть что тоже нужно давать chmod
Замечу, что все в консоли: используем простую истину, что «GUI для слабых духом», а машинка у нас на виртуалке :).
Теперь точно всё.
22.11.2010 14:21+0300