Краткое описание: Инструкция по установке NextCloud 15 на Ubuntu Server 18.04 TLS. Установка LAMP, создание короткой ссылки, интеграция Collabora Office, синхронизация NextCloud и LDAP Active Directory.

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

Нужна консультация или помощь в решении IT вопроса?


Что умеет Nextcloud

Функционал NextCloud-а дополняется расширениями типа:

  • Talk — полноценная конференц видеосвязь. Аналог Viber, Skype, Hangouts.
  • Почтовый клиент — сборщик писем с разных ящиков в одном месте.
  • Календарь, задачи — с возможностью синхронизации и стандартными параметрами: сроки, событие, описание.
  • Collabora Office — работа с документами в online режиме(doc, xls), совместный доступ.

И много разного — заметки, радио, новостной сборщик, опросы.

Cloud disk, оптимальный выбор

Использование общедоступных файлообменников имеет широкий спрос, а наличие сервиса GoogleDrive делает это ещё более доступным для обыкновенного пользователя без навязчивой рекламы, суровых ограничений по скорости и размеру, низкого уровня доверия к сервису. А что если иметь аналогичный сервис в собственном IT арсенале? Поиск такого решения меня привел к OpenSource продукту NextCloud. На своем пути я рассмотрел SandStorm, OwnCloud и собственно сам NextCloud. Немного о преимуществах такого сервиса:

  • Экономия трафика In/Out. Сам процесс передачи информации сводится к появлению ссылки, её достаточно сообщить получателю, чтобы процесс загрузки файла начался. При многократном использование это существенно экономит трафик.
  • Файл можно редактировать. Вводится понятие версий и их управление.
  • Срок жизни ссылки может быть разным. Его можно устанавливать в момент загрузки или вообще выключить.

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

В некоторых пунктах есть вытекающие преимущества, которые демонстрируют этот сервис с какой-то новой и удобной в использовании позиции.

Установка LAMP на Ubuntu Server

LAMP это самый распространенный набор пакетов для запуска web сервера. В его состав входит Linux + Apache + MySQL + PHP.

Обновление пакетов ОС

sudo apt update && sudo apt upgrade -y

установка Apache web сервера

sudo apt install -y apache2
sudo nano /etc/apache2/apache2.conf

добавление рекомендация Apache

ServerName 192.168.XX.YY
ServerName disk.topnet.com.ua
sudo a2enmod headers

установка MySQL

sudo apt install -y mysql-server

установка PHP

sudo apt install -y php libapache2-mod-php php-cli php-common php-curl php-xml php-gd php-fpm
sudo apt install -y php-mbstring php-zip php-mysql php-bz2 php-intl php-apcu php-ldap php-imagick

Nexctloud написан на php, поэтому нужно внести соответствующую поправку

sudo nano /etc/apache2/mods-enabled/dir.conf

ставим index.php на первое место в строке. На этой установка LAMP завершена, а впереди установка сертификата от Lets Encrypt. Все DNS записи должны быть обновленными

sudo add-apt-repository ppa:certbot/certbot
sudo apt install -y python-certbot-apache
sudo certbot --apache -d disk.topnet.com.ua

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

добавление расписания для автообновления сертификата

sudo crontab -e
0 0 20 * * /usr/bin/certbot renew --quiet

Установка NextCloud 15 на Ubuntu Server

cd /tmp
curl -LO https://download.nextcloud.com/server/releases/nextcloud-15.0.5.tar.bz2
sudo tar -C /var/www -xvjf /tmp/nextcloud-15.0.5.tar.bz2

создать скрипт для установки

nano /tmp/nextcloud.sh

с текстом

#!/bin/bash
ocpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='adminX'
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chmod 755 ${ocpath}
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

исполнение скрипта

sudo bash /tmp/nextcloud.sh

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

создание конфигурационного файла для Apache

sudo nano /etc/apache2/sites-available/disk.topnet.com.ua.conf

содержимое

Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
#Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/www/nextcloud"
    ServerName disk.topnet.com.ua
Redirect permanent / https://disk.topnet.com.ua/
</VirtualHost>
<VirtualHost *:443>
ServerName disk.topnet.com.ua
SSLCertificateFile /etc/letsencrypt/live/disk.topnet.com.ua/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/disk.topnet.com.ua/privkey.pem
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
</VirtualHost>

активация конфигурации

sudo a2ensite disk.topnet.com.ua
sudo a2enmod rewrite
sudo systemctl reload apache2

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

создание базы данных MySQL

sudo mysql -u root -p
CREATE DATABASE disk_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

создание пользователя MySQL

CREATE USER adminX@localhost identified by 'ROOT-PASS';
GRANT ALL ON disk_db.* TO 'adminX'@'localhost' IDENTIFIED BY 'ROOT-PASS';
FLUSH PRIVILEGES;
EXIT;

Настройка NextCloud

На этом этапе можно подключиться к только что установленному серверу можно по адресу https://disk.topnet.com.ua/nextcloud и заполнить выводимую форму.
Nexcloud установка Ubuntu Server, первый запуск после установки
Первый запуск будет сопровождаться инструкциями по оптимизации:

sudo nano /var/www/nextcloud/.htaccess

сразу после строчки <IfModule mod_headers.c> добавить

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

далее

sudo rm -rf /var/www/html/
sudo nano /var/www/nextcloud/config/config.php

в конце, до закрытия скобки добавить

'memcache.local' => '\OC\Memcache\APCu',
sudo nano /etc/php/7.2/apache2/php.ini

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

в разделе opcahce добавить

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

индексация базы данных MySQL по рекомендации NextCloud

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Nexcloud установка Ubuntu Server, индексация базы данных MySQL

sudo systemctl restart apache2

Nexcloud установка Ubuntu Server, проверка ошибок

Короткая ссылка NextCloud

По умолчанию ссылка Nexcloud начинается с адреса https://доменное_имя/nextcloud/index.php/ и стоит очевидная задача сделать её короче:

sudo nano /var/www/nextcloud/config/config.php

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

эта редакция сократит промежуточный каталог https://disk.topnetc.om.ua/nextcloud/index.php/

'overwrite.cli.url' => 'https://disk.topnet.сom.ua',

а редакция убирает index.php в ссылке NextCloud. Это строку нужно разместить следующей(в этом же файле /var/www/nextcloud/config/config.php)

'htaccess.RewriteBase' => '/',

обновить конфигурацию Apache

sudo nano /etc/apache2/sites-available/disk.topnet.com.ua.conf
Alias / "/var/www/nextcloud/"

обновление проведенных изменений

sudo chown www-data:www-data /var/www/nextcloud/.htaccess
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
sudo systemctl restart apache2

Nexcloud установка Ubuntu Server, тестирование защищенности сервера

NextCloud подключение LDAP

Синхронизация с Active Directory одно из самых популярных требований со стороны безопасности корпоративного сервиса. Все, что нужно для этого — активация соответствующего модуля
Nexcloud установка Ubuntu Server, включение модуля LDAP
после этого будет доступна консоль для настройки импорта с Active Directory(LDAP)
Nexcloud установка Ubuntu Server, настройка LDAP

Обновление NextCloud

Подготовка для обновления NextCloud будет состоять из переноса каталога с приложениями и пользовательскими данными:

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
cd ../..
sudo mkdir /datanc/
sudo mv /var/www/nextcloud/data /datanc/
sudo ln -s /datanc/data /var/www/nextcloud/data
sudo chown -R www-data:www-data /datanc/data /var/www/nextcloud/data
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Аналогичные действия можно совершить с директорией apps, которая содержит установленные приложения. Далее нужно перенести старую директорию в другое место

sudo systemctl stop apache2
sudo mv /var/www/nextcloud /var/www/nextcloud-old

и повторно пройтись по процедуре установки Nexcloud.

Понравилась статья, отблагодари автора, посмотри рекламу. СпасибоПоддержи автора статьи, просмотри рекламу ↓↓↓

Если у вас есть профессиональный интерес в расширении данной статьи — заполните форму запроса.