ONLYOFFICE Community Server - это многофункциональный офисный пакет с веб-интерфейсом, который может быть установлен на любом Linux-сервере. Это офисный пакет с открытым исходным кодом, интегрированный с CRM-системой, сервером документов, инструментами управления проектами и агрегатором электронной почты.
Сервер документов ONLYOFFICE - это онлайновый офисный пакет с открытым исходным кодом, подобный "Office Online", предлагаемый компанией Microsoft. Это онлайновый офисный пакет для просмотра и редактирования текста, электронных таблиц и презентаций. ONLYOFFICE Document Server полностью совместим с форматами Open XML, такими как .docx, .xlsx и .pptx. С помощью сервера документов вы можете обеспечить совместное редактирование для вашей команды в режиме реального времени.
Сервер документов ONLYOFFICE может быть установлен двумя способами. Мы можем установить его через Docker или установить вручную на сервер Linux. В этом руководстве мы расскажем вам, как установить и настроить "ONLYOFFICE Document Server" вручную на вашем сервере Linux CentOS 7. Мы установим сервер документов под базу данных Postgres с Nginx в качестве веб-сервера.
Системные требования
- ОС - Ubuntu CentOS 7 64-битный сервер с ядром 3.13 или более поздней версии
- ОЗУ - 2 ГБ или более - мы будем использовать 4 ГБ
- HDD - не менее 2 ГБ свободного места
Установка репозитория Epel и подготовка ОС
В этом шаге мы установим в систему CentOS репозиторий Epel (Extra Packages for Enterprise Linux) стороннего производителя. Установите репозиторий Epel с помощью команды yum, приведенной ниже.
1 | yum -y install epel-release |
Для установки сервера документов ONLYOFFICE нам необходимо отключить SELinux (Security-Enhanced Linux), отредактировав файл конфигурации '/etc/sysconfig/selinux'.
Отключите SELinux, отредактировав конфигурационный файл с помощью vim.
1 | nano /etc/sysconfig/selinux |
Измените значение 'selinux' на 'disabled'.
1 | selinux=disabled |
Сохраните и выйдите, затем перезагрузите сервер.
1 | reboot |
Если все завершено, снова войдите на сервер и проверьте состояние SELinux с помощью команды 'sestatus'.
1 | sestatus |
результат
1 | SELinux status: disabled |
Установка и настройка PostgreSQL
Сервер документов может быть установлен с базой данных MySQL и PostgreSQL. В этом руководстве мы будем использовать PostgreSQL вместо MySQL. Установите базу данных PostgreSQL из репозитория с помощью команды yum.
1 | yum -y install postgresql.x86_64 postgresql-server.x86_64 postgresql-contrib.x86_64 |
После завершения установки нам необходимо инициализировать базу данных в первый раз, выполнив команду postgres setup, приведенную ниже.
1 | postgresql-setup initdb |
Теперь запустите PostgreSQL и включите его автоматический запуск при загрузке системы.
1 2 | systemctl start postgresql systemctl enable postgresql |
База данных PostgreSQL будет запущена на IP-адресе localhost с портом по умолчанию 5432 - проверьте это с помощью команды netstat.
1 | netstat -plntu |
Далее нам нужно отредактировать файл аутентификации Postgres pg_hba.conf с помощью vim.
1 | nano /var/lib/pgsql/data/pg_hba.conf |
Измените метод аутентификации для localhost с 'ident' на 'trust', как показано ниже. Это необходимо для разрешения аутентификации с локального сервера.
1 2 | host all all 127.0.0.1/32 trust host all all ::1/128 trust |
Сохраните и выйдите, затем перезапустите службу PostgreSQL.
1 | systemctl restart postgresql |
Установка и настройка PostgreSQL завершена.
Создание базы данных для сервера документов ONLYOFFICE
PostgreSQL был установлен в систему, и мы создадим новую базу данных и нового пользователя для установки ONLYOFFICE Document Server.
Необходимо создать базу данных и пользователя:
1 2 3 | sudo -u postgres psql -c "CREATE DATABASE onlyoffice;" sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';" sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;" |
Установка и настройка сервера RabbitMQ
RabbitMQ - это программное обеспечение брокера сообщений с открытым исходным кодом, реализующее протокол AMQP (Advanced Message Queuing Protocol). Он написан на языке Erlang, может быть установлен для кластеризации и обхода отказа.
RabbitMQ необходим серверу документов, и нам нужно установить его в систему с помощью команды yum.
1 | yum -y install rabbitmq-server |
После завершения установки настройте сервер RabbitMQ на работу только на localhost, создав новый конфигурационный файл 'rabbitmq-env.conf' в каталоге rabbitmq.
1 | nano /etc/rabbitmq/rabbitmq-env.conf |
Вставьте конфигурацию ниже.
1 2 3 | export RABBITMQ_NODENAME=rabbit@localhost export RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 export ERL_EPMD_ADDRESS=127.0.0.1 |
Сохраните и выйдите.
Запустите RabbitMQ Server и включите его автоматический запуск каждый раз при загрузке системы.
1 2 | systemctl start rabbitmq-server systemctl enable rabbitmq-server |
Проверьте установку и конфигурацию RabbitMQ, для этого выполните команду netstat и вы увидите, что сервер RabbitMQ запущен под IP-адресом localhost с портом 5672.
Далее нам нужно создать нового пользователя rabbitmq для конфигурации сервера документов ONLYOFFICE. Создайте нового пользователя onlyoffice с паролем onlyoffice123 с помощью команд rabbitmqctl, приведенных ниже.
1 2 3 | rabbitmqctl add_user onlyoffice onlyoffice123 rabbitmqctl set_user_tags onlyoffice administrator rabbitmqctl set_permissions -p / onlyoffice ".*" ".*" ".*" |
Установка и настройка RabbitMQ Server завершена.
Перед установкой сервера документов нам необходимо установить программу установки шрифтов Microsoft и добавить новый последний репозиторий Nginx.
Установите 'Microsoft fonts installer' с помощью команды yum, приведенной ниже.
1 | yum -y install https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm |
Добавьте новый последний репозиторий Nginx в каталог 'yum.repos.d', создав новый файл nginx.repo.
1 | nano /etc/yum.repos.d/nginx.repo |
Вставьте конфигурацию ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key |
Сохраните и выйдите.
И добавьте новый файл репозитория onlyoffice 'onlyoffice.repo'.
/etc/yum.repos.d/onlyoffice.repo
Вставьте репозиторий сервера документов ONLYOFFICE ниже.
1 2 3 4 5 | [onlyoffice] name=onlyoffice repo baseurl=http://download.onlyoffice.com/repo/centos/main/noarch/ gpgcheck=1 enabled=1 |
Сохраните и выйдите, затем установите сервер документов.
1 | yum -y install onlyoffice-documentserver |
Эта команда установит сервер документов с веб-сервером Nginx и супервизором управления процессами.
Запустите службы nginx и супервизора, затем включите их автоматический запуск при загрузке.
1 2 3 4 | sudo service supervisord start sudo systemctl enable supervisord sudo service nginx start sudo systemctl enable nginx |
Сервер документов установлен, теперь настройте его, выполнив приведенную ниже команду.
1 | bash documentserver-configure.sh |
Вам будет задан вопрос о базе данных PostgreSQL.
Host: localhost
Database: onlyoffice
User: onlyoffice
Password: onlyoffice
и RabbitMQ:
Host: localhost
User: guest
Password: guest
Установка и настройка сервера документов ONLYOFFICE завершена.
Включение HTTPS для сервера документов ONLYOFFICE
Конфигурация виртуального хоста для сервера документов доступна в директории 'conf.d', она автоматически создается во время установки.
Пожалуйста, перейдите в каталог nginx 'conf.d'.
1 | cd /etc/nginx/conf.d/ |
Создайте резервную копию конфигурации виртуального узла без SSL и скопируйте новый шаблон виртуального узла SSL для сервера документов 'onlyoffice-documentserver-ssl.conf'.
1 2 | mv onlyoffice-documentserver.conf onlyoffice-documentserver.conf.backup cp onlyoffice-documentserver-ssl.conf.template onlyoffice-documentserver-ssl.conf |
Отредактируйте файл SSL виртуального хоста с помощью vim.
1 | nano onlyoffice-documentserver-ssl.conf |
Измените значение server_name на ваш домен в строке 7.
1 | server_name onlyoffice.irsyadf.me; |
Добавьте новую конфигурацию ниже строки '29', задайте значение server_name как имя вашего домена.
1 | server_name onlyoffice.irsyadf.me; |
Измените путь к SSL файлам в каталог файлов сертификатов в строках 37-38, и отключите файлы SSL сертификатов на стороне клиента, как показано ниже.
1 2 3 4 | ssl_certificate /etc/nginx/ssl/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/privkey.pem; #ssl_verify_client {{SSL_VERIFY_CLIENT}}; #ssl_client_certificate {{CA_CERTIFICATES_PATH}}; |
Для строки 44 конфигурации HSTS задайте max-age новое значение.
1 | add_header Strict-Transport-Security max-age=31536000; |
И для файла DHPARAM измените на ваш каталог путей строка 68.
1 | ssl_dhparam /etc/nginx/ssl/dhparam.pem; |
Сохраните и выйдите.
Затем проверьте конфигурационный файл и убедитесь в отсутствии ошибок, после чего перезапустите службу nginx.
1 2 | nginx -t systemctl restart nginx |
HTTPS для сервера документов ONLYOFFICE включен.
Настройка Firewalld
Если на вашем сервере нет Firewalld, установите его с помощью следующей команды.
1 | yum -y install firewalld |
После завершения установки запустите его и добавьте, чтобы он запускался автоматически при загрузке.
1 2 | systemctl start firewalld systemctl enable firewalld |
Далее, добавьте новые HTTP и HTTPS сервисы в конфигурацию firewalld с помощью команды 'firewall-cmd'.
1 2 | firewall-cmd -permanent -add-service=http firewall-cmd -permanent -add-service=https |
Перезагрузите конфигурацию firewalld, проверьте все доступные службы и убедитесь, что HTTP и HTTPS есть в списках.
1 | firewall-cmd -reload |
Настройка firewalld для сервера документов завершена.
Тестирование
Откройте веб-браузер, посетите доменное имя сервера документов 'onlyoffice.hakase-labs.me', и вы будете перенаправлены на защищенное соединение HTTPS. Убедитесь, что результат выглядит так, как показано ниже.
Мы успешно установили сервер документов ONLYOFFICE с PostgreSQL в качестве базы данных и Nginx в качестве веб-сервера, используя систему CentOS 7.