1C: различия между версиями
Vovan (обсуждение | вклад) (→Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С) |
Vovan (обсуждение | вклад) (→Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С) |
||
Строка 77: | Строка 77: | ||
listen_addresses = '*' | listen_addresses = '*' | ||
max_connections = 50 | max_connections = 50 | ||
− | shared_buffers = | + | shared_buffers = 4GB |
huge_pages = off | huge_pages = off | ||
temp_buffers = 256MB | temp_buffers = 256MB |
Версия 13:27, 8 июня 2024
Содержание
- 1 На ОС Альт платформы p9 и p10
- 1.1 Обновление ос с платформы p9 на p10
- 1.1.1 Снять дампы баз данных из postgres
- 1.1.2 Обновить дистрибутив до самого свежего p9
- 1.1.3 Изменить источники для обновления
- 1.1.4 Обновиться до p10
- 1.1.5 Удалить старую версию postgres с модификациями для 1С
- 1.1.6 Поставить и настроить актуальную для p10 версию postgres с модификациями для 1С
- 1.1.7 Залить дампы обратно
- 1.1 Обновление ос с платформы p9 на p10
- 2 Установка продуктов 1C на Ubuntu14.04
- 3 Установка платформы 1C:Предприятие
На ОС Альт платформы 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 all postgres md5 # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 0.0.0.0/0 md5 local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 EOF
cat << 'EOF' > /var/lib/pgsql/data/postgresql.conf listen_addresses = '*' max_connections = 50 shared_buffers = 4GB huge_pages = off temp_buffers = 256MB work_mem = 27525kB maintenance_work_mem = 1536MB dynamic_shared_memory_type = posix max_files_per_process = 8000 effective_io_concurrency = 200 max_worker_processes = 32 max_parallel_workers_per_gather = 4 max_parallel_maintenance_workers = 4 max_parallel_workers = 32 wal_buffers = 16MB checkpoint_completion_target = 0.9 max_wal_size = 4GB min_wal_size = 1GB random_page_cost = 1.1 effective_cache_size = 32256MB default_statistics_target = 500 # range 1-10000 from_collapse_limit = 20 join_collapse_limit = 20 log_destination = 'stderr' logging_collector = on log_directory = 'log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_file_mode = 0600 log_rotation_size = 10MB log_min_messages = warning log_checkpoints = off log_timezone = 'Europe/Moscow' datestyle = 'iso, dmy' timezone = 'UTC' lc_messages = 'ru_RU.UTF-8' lc_monetary = 'ru_RU.UTF-8' lc_numeric = 'ru_RU.UTF-8' lc_time = 'ru_RU.UTF-8' default_text_search_config = 'pg_catalog.russian' shared_preload_libraries = 'online_analyze, plantuner' # (change requires restart) max_locks_per_transaction = 150 escape_string_warning = off standard_conforming_strings = off online_analyze.threshold = 50 online_analyze.scale_factor = 0.1 online_analyze.enable = off online_analyze.verbose = off online_analyze.local_tracking = on online_analyze.min_interval = 10000 online_analyze.table_type = 'temporary' 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='en_US.UTF-8', datctype='en_US.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='en_US.UTF-8', datctype='en_US.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='en_US.UTF-8', datctype='en_US.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='en_US.UTF-8', datctype='en_US.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='en_US.UTF-8', datctype='en_US.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