1C: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Обновление ос с платформы p9 на p10)
(Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С)
 
(не показано 27 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
=На ОС Альт платформы p9 и p10=
 
=На ОС Альт платформы p9 и p10=
 
==Обновление ос с платформы p9 на p10==
 
==Обновление ос с платформы p9 на p10==
 +
 +
===Снять дампы баз данных из postgres===
  
 
  su - root
 
  su - root
Строка 30: Строка 32:
 
  apt-get clean
 
  apt-get clean
 
  apt-get dist-upgrade -d
 
  apt-get dist-upgrade -d
+
 
 
Первая команда удалит из кэша apt все старые пакеты, вторая скачает (но не установит) все нужные пакеты.
 
Первая команда удалит из кэша apt все старые пакеты, вторая скачает (но не установит) все нужные пакеты.
 
Полученное содержимое /var/cache/apt может быть использовано для последующей массовой установки пакетов посредством rpm.
 
Полученное содержимое /var/cache/apt может быть использовано для последующей массовой установки пакетов посредством rpm.
 +
 +
apt-get dist-upgrade
 +
update-kernel -t std-def
 +
reboot
 +
 +
===Удалить старую версию postgres с модификациями для 1С===
 +
 +
apt-get remove --purge postgresql12-1C postgresql12-1C-server
 +
 +
mv /var/lib/pgsql/data /var/lib/pgsql/data_old
 +
 +
===Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С===
 +
 +
apt-get install postgresql15-1C postgresql15-1C-server postgresql15-1C-contrib postgresql15-1C-llvmjit postgresql15-1C-perl postgresql15-1C-python postgresql15-1C-tcl postgresql15-1C-pg_repack postgresql15-1C-docs
 +
 +
 +
/etc/init.d/postgresql initdb
 +
 +
cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
 +
cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.backup
 +
 +
<pre>
 +
cat << 'EOF' > /var/lib/pgsql/data/pg_hba.conf
 +
# TYPE  DATABASE        USER            ADDRESS                METHOD
 +
 +
# "local" is for Unix domain socket connections only
 +
local  all            all                                    trust
 +
 +
# IPv4 local connections:
 +
host    all            all            127.0.0.1/32            trust
 +
host    all            all            0.0.0.0/0            md5
 +
 +
# Allow replication connections from localhost, by a user with the
 +
# replication privilege.
 +
local  replication    all                                    trust
 +
host    replication    all            127.0.0.1/32            trust
 +
EOF
 +
</pre>
 +
 +
<pre>
 +
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf
 +
listen_addresses = '*'
 +
max_connections = 100 # (change requires restart)
 +
shared_buffers = 4GB # min 128kB
 +
dynamic_shared_memory_type = posix # the default is usually the first option
 +
max_wal_size = 2GB
 +
min_wal_size = 1GB
 +
log_destination = 'stderr' # Valid values are combinations of
 +
logging_collector = on # Enable capturing of stderr, jsonlog,
 +
log_directory = 'log' # directory where log files are written,
 +
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
 +
log_file_mode = 0600 # creation mode for log files,
 +
log_rotation_size = 10MB # Automatic rotation of logfiles will
 +
log_min_messages = warning # values in order of decreasing detail:
 +
log_checkpoints = off
 +
log_timezone = 'Europe/Moscow'
 +
datestyle = 'iso, dmy'
 +
timezone = 'Europe/Moscow'
 +
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
 +
default_text_search_config = 'pg_catalog.russian'
 +
EOF
 +
</pre>
 +
 +
systemctl enable --now postgresql
 +
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='postgres';";
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template0';";
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template1';";
 +
 +
NEW_PASS='ваш новый пароль здесь'
 +
psql -U postgres -c "ALTER USER postgres WITH PASSWORD '${NEW_PASS}'";
 +
 +
===Залить дампы обратно===
 +
 +
cd
 +
 +
====Создать пустые базы====
 +
 +
dbname='cp'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='dcp'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='cp_demo'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='libr'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
dbname='passport'
 +
psql -U postgres -c "CREATE DATABASE ${dbname};"
 +
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
 +
 +
====Залить в них дампы====
 +
 +
psql -U postgres cp -f dump_cp.sql
 +
 +
psql -U postgres dcp -f dump_dcp.sql
 +
 +
psql -U postgres cp_demo -f dump_cp_demo.sql
 +
 +
psql -U postgres libr -f dump_libr.sql
 +
 +
psql -U postgres passport -f dump_passport.sql
  
 
=Установка продуктов 1C на Ubuntu14.04=
 
=Установка продуктов 1C на Ubuntu14.04=

Текущая версия на 14:10, 8 июня 2024

На ОС Альт платформы p9 и p10

Обновление ос с платформы p9 на p10

Снять дампы баз данных из postgres

su - root
pg_dump -U postgres cp > dump_cp.sql
pg_dump -U postgres cp_demo > dump_cp_demo.sql
pg_dump -U postgres dcp > dump_dcp.sql
pg_dump -U postgres libr > dump_libr.sql
pg_dump -U postgres postgres > dump_passport.sql

Обновить дистрибутив до самого свежего p9

apt-get update
apt-get dist-upgrade

Изменить источники для обновления

apt-get install apt-repo
apt-repo set p10

Обновиться до p10

apt-get update
apt-get clean
apt-get dist-upgrade -d

Первая команда удалит из кэша apt все старые пакеты, вторая скачает (но не установит) все нужные пакеты. Полученное содержимое /var/cache/apt может быть использовано для последующей массовой установки пакетов посредством rpm.

apt-get dist-upgrade
update-kernel -t std-def
reboot

Удалить старую версию postgres с модификациями для 1С

apt-get remove --purge postgresql12-1C postgresql12-1C-server
mv /var/lib/pgsql/data /var/lib/pgsql/data_old

Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С

apt-get install postgresql15-1C postgresql15-1C-server postgresql15-1C-contrib postgresql15-1C-llvmjit postgresql15-1C-perl postgresql15-1C-python postgresql15-1C-tcl postgresql15-1C-pg_repack postgresql15-1C-docs


/etc/init.d/postgresql initdb
cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.backup
cp /var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/postgresql.conf.backup
cat << 'EOF' > /var/lib/pgsql/data/pg_hba.conf 
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0            md5

# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
EOF
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf 
listen_addresses = '*'
max_connections = 100			# (change requires restart)
shared_buffers = 4GB			# min 128kB
dynamic_shared_memory_type = posix	# the default is usually the first option
max_wal_size = 2GB
min_wal_size = 1GB
log_destination = 'stderr'		# Valid values are combinations of
logging_collector = on		# Enable capturing of stderr, jsonlog,
log_directory = 'log'			# directory where log files are written,
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
log_file_mode = 0600			# creation mode for log files,
log_rotation_size = 10MB		# Automatic rotation of logfiles will
log_min_messages = warning		# values in order of decreasing detail:
log_checkpoints = off
log_timezone = 'Europe/Moscow'
datestyle = 'iso, dmy'
timezone = 'Europe/Moscow'
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
default_text_search_config = 'pg_catalog.russian'
EOF
systemctl enable --now postgresql
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='postgres';";
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template0';";
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='en_US.UTF-8', datctype='en_US.UTF-8' WHERE datname='template1';";
NEW_PASS='ваш новый пароль здесь'
psql -U postgres -c "ALTER USER postgres WITH PASSWORD '${NEW_PASS}'";

Залить дампы обратно

cd

Создать пустые базы

dbname='cp'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='dcp'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='cp_demo'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='libr'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"
dbname='passport'
psql -U postgres -c "CREATE DATABASE ${dbname};"
psql -U postgres -c "UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8'), datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='${dbname}';GRANT ALL ON DATABASE ${dbname} TO postgres;ALTER DATABASE ${dbname} OWNER TO postgres;"

Залить в них дампы

psql -U postgres cp -f dump_cp.sql
psql -U postgres dcp -f dump_dcp.sql
psql -U postgres cp_demo -f dump_cp_demo.sql
psql -U postgres libr -f dump_libr.sql
psql -U postgres passport -f dump_passport.sql

Установка продуктов 1C на Ubuntu14.04

Установка сервера

Для удобства администрирования был выбран дистрибутив UbuntuMATERemix со старым добрым GNOME-ом версии 2 (ныне существующим под названием MATE)

Установка происходит в обычном режиме. Если нужно, настраивается доступ через NoMachine.

Особенность:

На Ubuntu Server 14.04 из репозитория устанавливается Apache 2.4, с которым не работает 1C при публикации WEB-клиента
Нужно снизить версию Apache до 2.2, чтобы получилось опубликовать веб-клиент по HTTP

Снижение версии Apache до 2.2

Рабочий вариант по снижению версии был найден в этом блоге IT-шника и заключается в следующем:

Открываем файл (его по умолчанию нет):

nano /etc/apt/sources.list.d/ubuntu1204.list

Добавляем туда содержимое:

deb http://ru.archive.ubuntu.com/ubuntu/ precise main

Открываем файл (его по умолчанию тоже нет):

nano /etc/apt/preferences.d/apache22

Добавляем туда содержимое:

Package: apache*
Pin: release a=precise
Pin-Priority: 500

Обновляем список репозиториев

apt-get update

Обновляем систему (если надо)

sudo apt-get dist-upgrade

Устанавливаем apache2

sudo apt-get install apache2

Проверяем версию apache

apache2 -v

Должна быть

2.2

Работало вчера (--Vovan (обсуждение) 06:34, 27 декабря 2014 (UTC))

Установка платформы 1C:Предприятие

Установка

Для установки платформы 1С необходимо

  • Зарегистрироваться на личный кабинет пользователя 1С путем ввода данных регистрационного номера и пин кода с белого конверта, входящего в состав решения, которое приобретено у дилера 1C
  • Найти в личном кабинете дистрибутив в виде deb-пакетов
  • Скачать их, например, в домашнюю директорию пользователя
  • Распаковать, перейти в директорию с пакетами и установить (dpkg -i ./*.deb)

Развёртывание конфигурации

Для развертывания конфигурации нужно

  • запустить 1C:Предприятие и добавить конфигурацию стандартным способом (см. инструкции от 1С)
  • запустить конфигуратор для развернутой конфигурации

После запуска конфигуратора, если запуск производится впервые, система откроет диалог получения программной лицензии. В этом диалоге нужно заполнить форму и выполнить все условия по регистрации программной лицензии.

Теперь самое интересное и В А Ж Н О Е:

Если вы, например, запустили 1С:Предприятие под пользовтаелем administrator и получили программную лицензию,
то в домашней директории пользователя administrator в скрытой директории .1cv8 будет создана директория 1C,
внутри которой будет находиться полученная программная лицензия. С этого момента запуск конфигурации ПРИВЯЗАН к пользовтаелю administrator.
То есть, если Вы вдруг поставили apache2, настроили все как пишут в учебниках и в вебе конфигурация запускается, но просит лицензию, то знайте - 
пока вы не запустите apache2 от пользователя administrator, а не из под www-data (по уполчанию) - лицензия не будет найдена.

Почему?

Видимо, потому, что при запуске веб-клиента, проверяется пользователь, от которого запущен процесс apache2, далее система проверяет наличие
скрытой директории с лицензией в домашней директории пользователя, под которым работает apache2.

Важно:

Даже если Вы захотите переложить директорию с лицензией в домашнюю директорию пользвоателя www-data, ничего не получится, т.к. файл лицензии при её
запросе завязан на имя пользователя, от которого работала платформа в момент получения лицензии (ну и еще на ряд параметров железа, при изменении 
которых лицензия слетает, см. официальные руководства от 1С)

И как же быть? - Заставить apache2 запускаться от пользователя, от которого получали лицензию (в контексте этой статьи - administrator).

Как заставить Apache запускаться от пользователя, под которым была получена программная лицензия?

Открыть файл

nano /etc/apache2/envvars

Заменить строки

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

На

export APACHE_RUN_USER=administrator
export APACHE_RUN_GROUP=administrator

Перезапустить apache2

service apache2 restart