Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wptelegram domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114

Notice: Функция _load_textdomain_just_in_time вызвана неправильно. Загрузка перевода для домена kirki была запущена слишком рано. Обычно это индикатор того, что какой-то код в плагине или теме запускается слишком рано. Переводы должны загружаться при выполнении действия init или позже. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114
Установка NextCloud Ubuntu Server, облачное хранилище

Установка NextCloud Ubuntu Server, облачное хранилище

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

Что умеет Nextcloud

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

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

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

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

Использование общедоступных файлообменников имеет широкий спрос, а наличие сервиса GoogleDrive делает это ещё более доступным для обыкновенного пользователя без навязчивой рекламы, суровых ограничений по скорости и размеру, низкого уровня доверия к сервису. А что если иметь аналогичный сервис в собственном IT арсенале? Поиск такого решения меня привел к OpenSource продукту NextCloud. На своем пути я рассмотрел SandStormOwnCloud и собственно сам 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

Nexcloud установка Ubuntu Server, первый запуск после установки

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

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

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' => 'OCMemcacheAPCu',
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

Nexcloud установка Ubuntu Server, включение модуля LDAP
Nexcloud установка Ubuntu Server, настройка LDAP

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

после этого будет доступна консоль для настройки импорта с Active Directory(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.