Debian + LXDE + XRDP (x11rdp) + 1C on DS or VPS — терминальный сервер

27 Янв

Здесь подробно распишу процесс установки (терминального сервера) GUI (lxde или xfce4) + XRDP + 1С на vps или vds c OS Linux Debian (x64) на борту.

У нас есть сервер:
1 CPU
1 Gb RAM
40 Gb HDD/SSD

Важно: Все проделывалось на виртуальной машине VMware, на рабочий сервер это все не ставилось, но думаю, что все должно работать аналогично.

Устанавливаем на наш сервер Debian (на момент написания статьи, использовался [Debian Jessie 8.7] debian-8.7.1-amd64-netinst.iso) / или Ubuntu.

Языки (локали):
Если хотим узнать какой язык установлен на сервере, и изменить его:

env | grep LANG

Для установки русской локали (языка) как системного — командуем (этот пункт не обязателен!!!):

export LANG=ru_RU.UTF-8

и делаем реконфиг локали:

dpkg-reconfigure locales

Система попросит Вас выбрать язык — вы выбираете необходимые языки используемые в Вашей системе и далее выбираете язык по умолчанию.
После чего необходимо перезагрузиться

reboot

Если вы выполняете команды под обычным юзером, перед каждой командой нужно приписывать слово sudo, например, для перезагрузки сервера из-под обычного пользователя, используйте команду

sudo reboot

Устанавливаем графическую оболочку LXDE

apt-get update && apt-get upgrade
apt-get install lxde

! ИЛИ !

Устанавливаем графическую оболочку XFCE
Для установки Xfce сделайте следующие шаги:

apt-get update && apt-get upgrade
apt-get install xfce4

Это поставит метапакет, который установит основные пакеты Xfce, для его работы.
Так же можно поставить дополнения для окружения рабочего стола Xfce4:

apt-get install xfce4-goodies

После установки LXDE / XFCE можем перезагрузиться:

reboot

Снова обновляем все пакеты:

apt-get update && apt-get upgrade

Производим настройки клавиатуры в LXDE
Добавляем Keyboard layout plugin на панель и добавляем в нее языки, затем копируем настройки от настроенного пользователя USER в скелет конфиги для создания новых юзеров с такими же параметрами:

cp -R -f -b ~USER/.config/ /etc/skel/
cp -R -f -b ~USER/Desktop/ /etc/skel/
Устанавливаем сервис удаленных рабочих столов XRDP:

Устанавливаем xrdp, vnc-server и др. зависимости, но здесь xrdp старой версии (v.0.6.x):

apt install xrdp

[ пакет xrdp установит следующие зависимости: vnc4server x11-apps xbase-clients xbitmaps xinit vnc-java mesa-utils x11-xfs-utils ]
Удаляем xrdp, при этом его конфиги останутся.

apt remove xrdp

(останавливаем сервисы xrdp

service xrdp stop

Теперь собираем xrdp v.0.9.1 (последней версии) от neutrinolabs:
Устанавливаем зависимости для сборки сервера xrdp (оф. документация):

apt-get install git autoconf libtool pkg-config gcc g++ make  libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev  flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev

Я же себе устанавливаю следующие пакеты:

apt-get install git autoconf libtool pkg-config gcc g++ make  libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev  flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev nasm libpixman-1-dev

далее
1 вариант — Забираем себе последний релиз xrdp и распаковываем его:

wget https://github.com/neutrinolabs/xrdp/releases/download/v0.9.1/xrdp-0.9.1.tar.gz
tar xvfz xrdp-0.9.1.tar.gz

2 вариант — Или забираем сорсы с последними изменениями из git:

mkdir git
cd git
git clone git://github.com/neutrinolabs/xrdp
cd xrdp

Начинаем компиляцию:

./bootstrap

В оф. документации предлагают такой конфиг:

./configure --enable-fuse --disable-rfxcodec --enable-mp3lame --enable-pixman --disable-painter --disable-ipv6

Для своей системы я делаю такой:

./configure --enable-fuse --disable-rfxcodec --enable-pixman --disable-painter --disable-ipv6

Компилируем и устанавливаем:

make
make install

Старые сервисы убираем и создаем символические ссылки на новые сервисы:

mv /usr/sbin/xrdp /usr/sbin/xrdp_old
mv /usr/sbin/xrdp-sesman /usr/sbin/xrdp-sesman_old
ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin

Конфигурируем xrdp
Сгенерируйте свой сертификат /etc/xrdp/{cert,key}.pem если не хотите использовать установленный по умолчанию от xrpd org.

sudo xrdp-keygen xrdp auto 2048

Отредактируйте /etc/xrdp/xrdp.ini и /etc/xrdp/sesman.ini под ваши нужды.

Запускаем xrdp

systemctl enable xrdp
service xrdp start

Компилируем X11rdp:

cd xorg/X11R7.6
./buildx.sh /opt/X11rdp
sudo ln -s /opt/X11rdp/bin/X11rdp /usr/bin

Он очень долго компилируется, вот мой собранный пакет для Debian 8.7 (x64) — x11rdp_0.9.1+master-1_amd64.deb

Перезагружаем все сервисы:

sudo systemctl daemon-reload
sudo systemctl enable xrdp-sesman
sudo systemctl enable xrdp
sudo systemctl start xrdp-sesman
sudo systemctl start xrdp
Установка 1C (i386) на Debian x64:

Версии 1C i386 ставится немного сложнее чем под архитектуру x64 на Debian x86_64, но в моем случае нужна именно версия i386:
Просмотреть список поддерживаемых архитектур можно командой:

dpkg --print-architecture

В нашем случае будет только одна amd64, для добавления требуемой архитектуры i386 выполните:

dpkg --add-architecture i386

После чего обязательно обновите список пакетов:

apt-get update

Теперь установим требуемые для работы сервера 1С библиотеки и утилиты нужной разрядности:

apt-get install imagemagick:i386
apt-get install unixodbc:i386

— после данной команды (apt-get install imagemagick:i386), в процессе установки, скорее всего вылетит ошибка:

Errors were encountered while processing:
 imagemagick
E: Sub-process /usr/bin/dpkg returned an error code (1)

Решаем проблему и выполняем:

apt-get install imagemagick-6.q16:i386
apt-get install imagemagick:i386
apt-get autoremove

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

apt-get install unixodbc:i386

Шрифты:
Требуемый пакет шрифтов Microsoft True Type является универсальным для всех архитектур, поэтому его устанавливаем как обычно, без указания архитектуры.
Пакет так просто следующей командой не установится:

apt-get install ttf-mscorefonts-installer

Решаем проблему:

wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
dpkg -i ttf-mscorefonts-installer_3.6_all.deb
apt-get install xfonts-utils cabextract
apt-get -f install
dpkg -i ttf-mscorefonts-installer_3.6_all.deb

2. Вариант — самое время вспомнить про getlibs, скрипт для DEB-совместимых систем, который позволяет автоматически устанавливать 32-разрядные библиотеки на 64-разрядные системы. Скачаем данный скрипт со страницы разработчика на GitHub, настоятельно рекомендуем не использовать для получения скрипта иных источников. Разместим его, скажем, в домашней папке и сделаем исполняемым.

wget https://gist.githubusercontent.com/linuxundich/5536156/raw/getlibs
cd ~
chmod +x getlibs
./getlibs -p libgsf-1-114
apt-get install libgsf-1-114

лечим

Устанавливаем непосредственно наши пакеты 1С:


Сервер 1С:
s
Обязательно:

sudo dpkg -i 1c-enterprise83-common_8.3.10-1877_i386.deb

Опционально для поддержки дополнительных языков:

sudo dpkg -i 1c-enterprise83-common-nls_8.3.10-1877_i386.deb

Обязательно:

sudo dpkg -i 1c-enterprise83-server_8.3.10-1877_i386.deb

Опционально для поддержки дополнительных языков:

sudo dpkg -i 1c-enterprise83-server-nls_8.3.10-1877_i386.deb

Опционально для работы веб-клиента:

sudo dpkg -i 1c-enterprise83-ws_8.3.10-1877_i386.deb

Опционально для поддержки дополнительных языков:

sudo dpkg -i 1c-enterprise83-ws-nls_8.3.10-1877_i386.deb

Опционально для функционирования хранилища конфигураций:

sudo dpkg -i 1c-enterprise83-crs_8.3.10-1877_i386.deb

Клиент 1С:

1c-enterprise83-client_8.3.10-1877_i386.deb
1c-enterprise83-client-nls_8.3.10-1877_i386.deb
1c-enterprise83-thin-client_8.3.10-1877_i386.deb
1c-enterprise83-thin-client-nls_8.3.10-1877_i386.deb

Ругается на libwebkitgtk-1.0-0 ? тогда выполняем:

apt-get -f install

Далее следуют заметки, которые использовались для данной статьи. Этот хлам ниже будет позднее подчищен (:
http://sysadmins.ru/topic441283-20.html
ставим
https://interface31.ru/tech_it/2015/09/ustanovka-32-razryadnogo-servera-1spredpriyatie-na-64-razryadnuyu-platformu-linux-ubuntudebian.html

INFO: http://forum.infostart.ru/forum71/topic123922/

Установка недостающих шрифтов

wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb
sudo apt-get —purge —reinstall install ttf-mscorefonts-installer

dpkg -i 1c-enterprise83-client_8.3.9-2033_amd64.deb
Ругается на libwebkitgtk-1.0-0, тогда выполняем:
apt-get -f install
Продолжаем установку 1с:
dpkg -i 1c-enterprise83-client-nls_8.3.9-2033_amd64.deb

FAQ:
Samba File Server установка:

sudo apt-get install samba
sudo apt-get install smb4k

DNS server: http://diff.org.ua/archives/3083

Русская раскладка клавиатуры:
https://github.com/neutrinolabs/xrdp/wiki/Example-of-xrdp_keyboard.ini-for-russian-keyboard

Для того чтобы подключаться к одной и той же сессии нужно в /etc/xrdp/xrdp.ini в секцию [Global] добавить параметр «fork=no», а значение параметра KillDisconnected в /etc/xrdp/sesman.ini выставить равным «0»

Убрать шелл для обычных юзеров:
usermod -s /bin/false user1

Проблема с wicd-client wicd daemon
sudo gpasswd -a netdev

Необходимые пакеты для системы:
sudo apt-get install mc openssh-server chkconfig subversion libtool automake automake1.7 automake1.9 git libssl-dev libpam0g-dev libx11-dev libxfixes-dev xxkb libpam-mount clamtk smbfs python-software-properties pulseaudio-esound-compat paprefs

# устанавливаем xrdp
cd
mkdir git
cd git
mkdir neutrinolabs
cd neutrinolabs
git clone git://github.com/neutrinolabs/xrdp
cd xrdp
./bootstrap
./configure —enable-fuse
make

СОБРАННЫЙ МНОЙ X11rdp 0.9.1 For Debian 8.7 Jessie x86_64 (64-bit)
./DEV-X11rdp-o-matic.sh —interactive —withjpeg —withkerberos —withpamuserpass —withfreerdp —nocpuoptimize

1 http://www.cb-net.co.uk/linux/getting-x11rdp-working-on-debian-8-jessie-with-the-help-of-x11rdp-o-matic/
+
2 https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8

http://masterprint.at.ua/publ/linux_debian_ubuntu/nastrojka_xrdp_na_xubuntu_xfse/7-1-0-41
http://pro1c.org.ua/index.php?showtopic=22988
c-nergy.be/blog/?p=5357

One thought on “Debian + LXDE + XRDP (x11rdp) + 1C on DS or VPS — терминальный сервер

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *