Unlocked VPN для iPhone. 7 дней бесплатно, далее 99 ₽/месЗагрузить в AppStore

Установка NextCloud на Ubuntu 20.04

Blog

Об этом не все знают, но первоначально Nextcloud был частью проекта OwnCloud. За небольшой промежуток времени NC вырос и в 2016 году отделился. С того момента Nextcloud стал самостоятельным проектом с открытым исходным кодом. Благодаря этому любой заинтересованный пользователь может создать свое личное облачное хранилище, самостоятельно разместить ПО и собрать индивидуальное решение.

После установки Nextcloud в вашем распоряжении будет рабочее пространство с почтовыми программами, схожими с Gmail, различными документами (вроде Google Docs) и возможностью делиться файлами (как это позволяет Dropbox). Также календарь с заметками, планировщики задач и другие полезные вещи, которые помогают структурировать информацию.

Установка И Использование Nextcloud В Ubuntu 20.04 (1)

Устанавливаем и настраиваем NextCloud

Данное руководство поможет выполнить установку и последующую настройку облачного хранилища NextCloud максимально быстро. Из трех способов установки, упомянутых ниже, мы выбрали второй.

Способы установки NC:

  1. Через систему управления контейнерами Docker .
  2. Через пакет приложений snap. Он поддерживают любые дистрибутивы Linux. Мы будем использовать дистрибутив Ubuntu 20.04.
  3. Ручная установка на сервер.

Второй метод был выбран по нескольким причинам. Во-первых, он наиболее эффективный, доступный и быстрый. Во-вторых, существенную роль сыграли преимущества Snap-пакетов. Они полностью укомплектованы, содержат в себе все зависимости и автоматически обновляются. Чтобы все заработало, достаточно утилиты (менеджер пакетов snapd). Установить этот пакет можно прямо из Snap Store. Единственный минус этой системы в том, что пакет занимает много места на диске.

Мы будем использовать облачный сервер с Ubuntu.

Пошаговая инструкция установки NextCloud на Ubuntu 20.04

Ниже мы расписали все этапы установки, последовательность которых необходимо соблюдать:

  1.     Инсталлируем NextCloud в Ubuntu.
  2.     Создаем профиль (учетную запись пользователя).
  3.     Настраиваем доверенные домены.
  4.     Защищаем веб-интерфейс одним из методов (зависит от наличия доменного имени).
  5.     Тестируем.

Первый шаг

Для загрузки Nextcloud snap запустите команду с использованием утилиты sudo. Это позволит запускать программы без привилегий пользователя root и получить права администратора. 

sudo snap install nextcloud

Проверяем установку приложения:

snap changes nextcloud

Сообщение подтверждает, что установка NextCloud осуществилась:

ID Status Spawn Ready
Summary
4 Done today at 10:30 UTC today at 10:30 UTC
Install "nextcloud" snap

Такое сообщение должно появиться и у вас.

Второй шаг

После установки NextCloud создаем аккаунт с логином и паролем.

sudo nextcloud.manual-install username password

Следом приходит сообщение, что запись настроена правильно. Теперь все права для работы с базой данных переданы пользователю username.

Nextcloud was successfully installed

Третий шаг

Переходим к настройке доменного имени. Так NC будет воспринимать HTTP-запросы, которые поступают не только сервера localhost. Допустим, сервер доступен по адресу 192.168.0.15, но мы хотим, чтобы он был доступен по адресу «mycloud.com». Для этого мы изменяем запись trusted_domains в файле config.php. По умолчанию адрес домена в NextCloud дополняется файлом с расширением «index.php».

Проверим, какие настройки у нас есть сейчас:

sudo nextcloud.occ config:system:get trusted_domains

Вывод:

localhost

Из сообщения видим, что пока массив trusted_domains содержит только localhost. Попробуем добавить еще запись в массив, увеличив номер индекса на один и изменив значение value. Для этого скопируйте и вставьте в свою командную строку команду:

sudo nextcloud.occ config:system:set trusted_domains 1 --value= mycloud.com

Вывод:

System config value trusted_domains => 1 set to string mycloud.com

Проверяем, сколько значений содержит массив сейчас:

sudo nextcloud.occ config:system:get trusted_domains

Результат (в нашем случае должно быть два домена):

localhost
mycloud.com

Используя данный алгоритм, можно добавлять доверенные домены и IP-адреса. Следующим шагом необходимо защитить веб-интерфейс. Порт 80 предназначен для сайтов с незашифрованным HTTP-трафиком, а 443 используется для сайтов с защищенным соединением. Как защитить свои данные, вы узнаете ниже.

Четвертый шаг

Чтобы между браузером и сервером (между клиентом и сервером) обеспечить безопасное соединение, необходимо произвести настройку SSL. При использовании SSL-сертификатов HTTPS заменяет HTTP в URL-адресе. SSL-сертификат информируют пользователей сайта о том, что соединение защищено, и сайту можно доверять. Подробнее об SSL мы писали в статье «Что такое SSL-сертификат и для чего он нужен».

Теперь о его получении. В начале этого руководства мы упоминали про два развития событий, которые зависят от привязки доменного имени к серверу.

Первый — когда серверу присвоено доменное имя. В этом случае рекомендуем пройти бесплатную сертификацию SSL от Let’s Encrypt. Ниже вы найдете подробную инструкцию как это сделать. Во втором варианте есть возможность произвести настройку сертификата с собственной подписью. Чем они отличаются друг от друга? Интернет-браузеры не доверяют самоподписанному сертификату по умолчанию, и при подключении внешнего посетителя выдает сообщение: «Сертификат безопасности не является доверенным!».

Сертификация от Let’s Encrypt

Срок действия сертификата составляет 90 дней, но по истечении этого промежутка времени он автоматически обновляется. Переходим к настройке.

Открываем порты брэндмауэра:

sudo ufw allow 80,443/tcp

Затем запрашиваем сертификат:

sudo nextcloud.enable-https lets-encrypt

И подтверждаем соответствие своего сервера условиям для запроса сертификата. В конце этого сообщения вопрос. Чтобы продолжить, вводим «Y»:

In order for Let's Encrypt to verify that you actually
own the domain(s)
for which you're requesting a certificate,
there are a number of requirements of which you need to be aware:

 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise.
2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine.
3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router).

Have you met these requirements? (y/n)

В следующей строке указываем email, который потребуется для важных уведомлений.

Please enter an email address (for urgent notices or key recovery):

После чего, чтобы завершить, необходимо ввести само доменное имя.

Please enter your domain name(s) (space-separated): mycloud.com

Если все команды заданы верно, то сервер запросит SSL-сертификат и перезапустит веб-сервер Apache для NextCloud.

Attempting to obtain certificates... done Restarting apache... done

Дальше можно выполнять вход в собственное облачное хранилище.

Самоподписанный сертификат SSL

Такой способ шифрует данные, но не подтверждает домен.

Для создания сертификата с собственной подписью запустите команду:

sudo nextcloud.enable-https self-signed

Сообщение об активации сертификата:

Generating key and self-signed certificate... done Restarting apache... done

Чтобы войти в NC, открываем веб-порты брандмауэра:

sudo ufw allow 80,443/tcp

Пятый шаг

Этапы установки и настройки пройдены. Пора попробовать зайти на сервер. Для этого достаточно ввести в поисковую строку браузера доменное имя или IP-адрес. Мы попадем на главную страницу, где требуется ввод логина и пароля. Если веб-интерфейс защищен самоподписанным сертификатом, то первоначально появиться окошко с предупреждением о небезопасном подключении. Проигнорируйте данное сообщение. При наличии заверенного сертификата сразу открывается окно с приветствием. Закрыв это, сразу можно приступать к работе с файлами.

Работа над ошибками

Для корректной работы Nextcloud необходимо проверить приложение на наличие проблем. В раздел «Проверка безопасности и параметров» можно зайти через настройки или через адресную строку браузера:

https://ваш_домен/settings/admin/overview

После перехода сразу появится страница со списком проблем. Сейчас мы рассмотрим исправления ошибок NextCloud.

1) Не хватает памяти: зачастую для стабильной работы требуется увеличить лимит памяти до 512 МБ. Изначально предоставляется 128 МБ. Для этого входим на сервер при помощи терминала и изменяем настройку для memory_limit с 128 на 512:

sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/apache2/php.ini

2) Необходимо настроить систему кэширования: требуется увеличить производительность сервера и настроить одно из средств кэширования (Memcache, APCu или Redis). У нас будет Memcache. После установки модуля откроем конфигурационный файл и настроим Memcache для сервера.

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

Указываем параметры:


'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
         'host' => 'localhost',
         'port' => 6379,       ),

Затем необходимо перезапустить Apache и PHP-FPM:

sudo systemctl restart apache2 php7.4-fpm

3) Не указано месторасположение сервера: лучше сразу определить регион с той целью, чтобы проверять мобильные номера пользователей без использования кода страны. Для этого добавляем параметр «default_phone_region» в соответствии с ISO 3166-1.

sudo nano /var/www/html/nextcloud/config/config.php
'default_phone_region' => 'RU',

4) Отсутствие некоторых индексов в базе данных: распространенная ошибка, поскольку в связи с экономией времени индексы не добавляются автоматически

Создаем индексы с помощью команды add-missing-indices:

cd /var/www/html/nextcloud/
sudo -u www-data php occ db:add-missing-indices

5) Требуется преобразование индексов базы данных в big int с помощью команды convert-filecache-bigint:

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

Также можно получить дополнительную информацию о конкретных привязках:

snap info nextcloud

Какие службы и приложения содержит пакет snap:

cat /snap/nextcloud/current/meta/snap.yaml

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

После устранения всех ошибок снова заходим в раздел с проверкой безопасности. Если все проверки пройдены и ошибок не обнаружено, то можно переходить к работе, настроить синхронизацию и обмениваться файлами. Узнать еще больше про облачные сервисы можно в блоге Timeweb Cloud.

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать. 

Telegram
VK
Скопировать ссылку

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону