Найти в Дзене
Руки не для скуки

Домашний сервер - это просто. Часть 7: NEXTCLOUD - персональное облако.

Часть 1: Предыстоия и настоящее.
Часть 2: Подготовка среды. Установка и первоначальная настройка Debian 12
Часть 3: Носители информации. RAID. Создание файловой структуры.
Часть 4: Установка компонентов WEB-сервера. Let’s Encrypt.
Часть 5: Samba и Webdav
Часть 6: Home Assistant Supervised
Часть 7: NEXTCLOUD - персональное облако.
Часть 8: Медиа-сервер. MiniDLNA/PLEX
Часть 9: Torrent-клиент. Transmission/Deluge
Часть 10: Яндекс-Диск
Часть 11: Переезд на новое железо.

7.1. Установка СУБД MariaDB

Устанавливаем MariaDB, добавляем в автозапуск и включаем:

sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb

Запускаем утилиту, чтобы задать пароль для суперпользователя MariaDB:

sudo mysqladmin -u root password

Подключаемся к MariaDB:

sudo mysql -uroot -p

создаем базу данных:

CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

создаем пользователя:

GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'nextcloud';

Отключаемся от MariaDB:

\q

7.2. Установка Nextcloud

Скачиваем исходник для установки с последней версией портала и распаковываем скачанный архив:

sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip

Переносим содержимое архива в каталог /var/www и делаем его владельцем web-сервер :

sudo mv nextcloud /var/www
sudo chown -R www-data:www-data /var/www/nextcloud

7.3. Создание файла конфигурации виртуального хоста

Напоминаю, что домен 475cloud.ru - это мой тестовый домен. Везде где в именах файлов вы его видите - меняйте на свое доменное имя.

Создаем файл конфигурации nc.475cloud.conf:

nano /etc/apache2/sites-available/nc.475cloud.conf

Добавляем в него:

<VirtualHost *:80>
ServerName nc.475cloud.ru
ServerAlias www.nc.475cloud.ru
DocumentRoot /var/www/nextcloud
</VirtualHost>
<VirtualHost *:443>
ServerName nc.475cloud.ru
ServerAlias www.nc.475cloud.ru
DocumentRoot /var/www/nextcloud

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>

<Directory /var/www/nextcloud>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

И сохраняем (Ctrl +O).

Включаем сайт (в /etc/apache2/sites-enabled создается ссылка на файл конфигурации виртуального хоста):

sudo a2ensite nc.475cloud.conf

Перезапускаем Apache:

sudo systemctl restart apache2

Если после перезапуска Apache выводится сообщение об ошибке 4.3 части 4 этой серии статей.

7.4. Установка сертификата Let’s Encrypt

Устанавливаем SSL-сертификат:

sudo certbot --apache -d nc.475cloud.ru -d www.nc.475cloud.ru

Перезапускаем Apache:

sudo systemctl restart apache2

После перезапуска Apache можно получить доступ к Nextcloud, используя web-адрес:

https://nc.475cloud.ru

-2

  • На открывшейся странице указываем:
  • Логин администратора – задаем имя
  • Пароль администратора – придумываем пароль
  • Имя базы данных — nextcloud
  • Пароль базы данных — nextcloud
  • Логин пользователя БД — nextcloud

После завершения установки заходим в параметры сервера:

-3

И видим ошибки, которые предстоит исправить:

-4

7.5. Изменение объема доступной памяти

Открываем и настраиваем php.ini:

nano /etc/php/8.3/fpm/php.ini

Находим строки и приводим их в такой вид:

opcache.enable_cli=1
opcache.interned_strings_buffer=32
opcache.revalidate_freq=1
memory_limit = 512M

Для поиска нужных строк используем Ctrl+w.

И сохраняем (Ctrl +O).

Перезапускаем Apache и php8.3-fpm:

sudo systemctl restart apache2 php8.3-fpm

7.6. Настройка кэширования памяти:

Устанавливаем memcached и php-apcu:

sudo apt install -y memcached php-memcached php-apcu

Разрешаем автозапуск и запускаем:

sudo systemctl enable memcached
sudo systemctl start memcached

Перезапускаем Apache:

sudo systemctl restart apache2

Открываем конфигурационный файл nextcloud:

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

В самый конец файла, перед «);», добавляем:

'filelocking.enabled' => true,
'memcache.locking' => '\\OC\\Memcache\\Memcached',
'memcache.local' => '\OC\Memcache\Memcached',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcached_servers' => [
[ '127.0.0.1', 11211 ],
],
'maintenance_window_start' => 4,

И сохраняем (Ctrl +O).

7.7. Настраиваем выполнение фоновых заданий

Создаем новое задание от пользователя www-data

crontab -e -u www-data

В открывшемся редакторе текста, внизу добавляем

* * * * * /usr/bin/php /var/www/nextcloud/cron.php

И сохраняем (Ctrl +O).

Перезапускаем сервер:

reboot

При подключении к Nextcloud, возможно, появится ошибка:

-5

В этом случае нужно открыть конфигурационный файл nextcloud:

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

И в директиву 'trusted_domains' добавляете URL и/или IP-адрес, по которому вы заходите. Должно выглядеть как-то так:

'trusted_domains' =>
array (
0 => 'nc.475cloud.ru',
1 => '192.168.2.11',
),

Установка завершена!

Часть 1: Предыстоия и настоящее.
Часть 2: Подготовка среды. Установка и первоначальная настройка Debian 12
Часть 3: Носители информации. RAID. Создание файловой структуры.
Часть 4: Установка компонентов WEB-сервера. Let’s Encrypt.
Часть 5: Samba и Webdav
Часть 6: Home Assistant Supervised
Часть 7: NEXTCLOUD - персональное облако.
Часть 8: Медиа-сервер. MiniDLNA/PLEX
Часть 9: Torrent-клиент. Transmission/Deluge
Часть 10: Яндекс-Диск
Часть 11: Переезд на новое железо.