Настройка nextcloud ubuntu server

Обновлено: 05.07.2024

Мало того, что многие не доверяют общедоступным облакам, так они еще и предлагают непозволительно малые объемы дискового пространства.

Однажды мне понадобилось 1Tb облачного хранилища и выбор пал на Nextcloud, который и было решено развернуть на собственном домашнем сервере

В данной статье я опишу как быстро и безболезненно установить и настроить облако Nextcloud и облачный редактор Onlyoffice

Статья предполагает, что у вас уже установлен и настроен Ubuntu.

Все действия были проверены на Ubuntu Server 20.04

Что будем делать:

Установим Nginx, PHP и MariaDB

Добавим бесплатный SSL-сертификат Let's Encrypt

Произведем тонкие настройки сервера

Первым делом, устанавливаем вспомогательные утилиты

Этот пункт можно пропустить, если настраиваете облако на локальный диск, а не на отдельную машину с доступом по nfs, мне понадобилось сделать это именно на nfs

Настраиваем php 7.4

снимаем комментарии со строк

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

sudo nano /etc/php/7.4/fpm/php.ini

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

Запуск сценария безопасности (здесь можно поменять пароль рута, убрать ненужные разрешения):

Создаем базу данных для Nextcloud (в примере указан пароль nextcloud, его лучше заменить на свой) :

Теперь надо создать файл конфигурации Nginx для Nextcloud

И вставляем в него следующий текст, естественно, заменив nextcloud.ваш.домен на свои сервера

Теперь необходимо получить сертификаты для ssl

Установка Certbot и его плагина Nginx:

Сертификаты появятся в папке /etc/letsencrypt/live/ваш.домен
cert.pem chain.pem fullchain.pem privkey.pem

sudo nano /etc/nginx/sites-available/nextcloud.conf

Скачиваем последнюю версию с сайте Nextcloud (версию уточняем на сайте):

Создаем пользователя, пароль, прописываем доступ к каталогу /nfs/nc/ (или вашему каталогу)

Прописываем созданную ранее базу данных и пароль к ней.

Ставим Redis и APCu

sudo apt install memcached php-memcached -y

sudo apt install php-apcu redis-server php-redis -y

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

И добавляем следующие строки перед закрывающей скобкой )

Переиндексация файлов (если скопировали файлы не через интерфейсы nextcloud, то их надо переиндексировать)

Устанавливаем OnlyOffice DocumentServer

После установки PostgreSQL создайте базу данных и пользователя PostgreSQL:

Пользователем и паролем для созданной базы данных должны быть onlyoffice.

Установка rabbitmq и nginx-extras:

Установка ONLYOFFICE Docs

Добавьте репозиторий ONLYOFFICE Docs:

Устанавливаем ONLYOFFICE Docs. Не ошибитесь с вводом пароля. Это должен быть onlyoffice

Вы хотели бы иметь собственный аналог Dropbox или Google Drive? Если вы занимаетесь фото, видео или просто много путешествуете и привозите кучу снимков и видеороликов - наверняка. Однако многих смущал тот факт, что в большинстве случаев программы такого рода проприетарные. Но, как оказалось, не всё так плохо. Ведь существует программа NextCloud.

Разработчик Фрэнк Карличек, который ранее работал в компании OwnCloud, после ухода из компании разработал проект NextCloud. В отличие от других программ для хранения данных, NextCloud имеет открытую архитектуру и позволяет пользователям полностью контролировать свои данные. В этой статье будет рассмотрена установка Nextcloud в Ubuntu 20.04.

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

Шаг 1: Установка веб-сервера Apache

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

sudo apt update

j9SAJVWom+5GQAAAABJRU5ErkJggg==

Apache - это веб-сервер, который необходим для работы системы (в частности для отображения веб-интерфейса). Для его установки выполните:

sudo apt -y install apache2

Подробная установка Apache рассмотрена в статье установка LAMP стека в Ubuntu 20.04

Шаг 2: Установка СУБД MariaDB

MariaDB - это сервер баз данных, который используется в NextCloud для хранения данных. Для установки сервера необходимо выполнить команду:

sudo apt -y install mariadb-server-10.3 mariadb-client

Затем для первоначальной настройки выполните такую команду и следуйте инструкциям скрипта настройки:

Подробная установка MariaDB рассмотрена в статье Установка MariaDB в Ubuntu 20.04

Шаг 3: Установка интерпретатора языка PHP и дополнительных модулей

Для работы NextCloud требуется язык PHP, а также некоторые его модули и библиотеки. Будет установлен PHP версии 7.4. Данная версия уже присутствует в официальных репозиториях Ubuntu 20.04. Для установки PHP и всех необходимых модулей необходимо выполнить одну команду:

sudo apt -y install php7.4 php7.4-gd php7.4-mysql php7.4-curl php7.4-mbstring php7.4-intl php7.4-gmp php7.4-bcmath php-imagick php7.4-xml php7.4-zip libapache2-mod-php7.4

После установки PHP можно проверить что интерпретатор языка PHP успешно установился, выполнив команду для проверки версии PHP:

Команда вернула версию PHP это означает что PHP успешно установлен в системе.

Шаг 4: Настройка базы данных

Теперь необходимо создать базу данных для NextCloud. Сначала необходимо авторизоваться в СУБД при помощи команды:

sudo mysql -u root -p

Здесь root - имя пользователя. А ключ -p запрашивает пароль, который был задан на этапе запуска скрипта настройки безопасности. После входа в консоль СУБД необходимо поочередно выполнить следующие команды для создания базы данных и пользователя:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

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

На этом шаге был создан пользователь с именем username и паролем password, создана база данных с именем nextcloud и выданы все права для работы с ней пользователю username.

Шаг 5: Установка движка NextCloud

NextCloud необходимо устанавливать не из репозиториев, а скачав архив с программой с официального сайта:

Далее необходимо распаковать скачанный архив:

tar -xjvf nextcloud-22.2.0.tar.bz2

На выходе будет создана директория nextcloud. Данную директорию необходимо скопировать в корневую директорию веб-сервера. По умолчанию корневой директорией в apache является папка /var/www/:

sudo cp -r nextcloud /var/www/

Далее необходимо изменить владельца директории /var/www/nextcloud/ с пользователя root на пользователя www-data:

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

Шаг 6: Настройка Apache

На данном этапе производиться настройка конфигурационного файла nextcloud. Открываем файл при помощи любого текстового редактора:

В открывшийся пустой файл копируем следующие строки:

Сохраняем (Ctrl + O) и выходим (Ctrl + X). Далее открываем файл /etc/hosts:

sudo nano / etc /hosts

И добавляем строку:

Шаг 7: Активация модулей NextCloud

В терминале необходимо ввести последовательно следующие команды:

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Далее перезапускаем Apache при помощи команды:

Шаг 8. Первоначальная настройка Nextcloud

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

dlALX3AFmVAAAAAASUVORK5CYII=

Далее необходимо ввести данные для подключения к базе данных. Необходимо ввести имя пользователя, пароль пользователя, имя базы данных и адрес СУБД, которые были заданы ранее на этапе настройки базы данных для NextCloud:

QIV8iC6V2PkAAAAASUVORK5CYII=

По желанию можно установить дополнительное ПО такое как календарь, контакты и тд. Для этого необходимо поставить галочку напротив пункта снизу - Install recommended apps:

FcpIRh4XfClDjofwAqERfC102dHAAAAABJRU5ErkJggg==

После установки всех компонентов отобразится интерфейс NextCloud:

kf7yqyN4TqMAAAAASUVORK5CYII=

Шаг 9. Использование Nextcloud

Для загрузки файлов в NextCloud необходимо перейти в раздел Files который располагается сверху:

wIYot8KjtpZPwAAAABJRU5ErkJggg==

Далее нажать на символ Плюс. В выпадающем меню необходимо выбрать пункт Upload file для выбора необходимого файла из операционной системы. Так же в этом же меню можно создавать директории, текстовые файлы, таблицы, презентации:

d19v8COyFafEMXuX4AAAAASUVORK5CYII=

Загруженные файлы будут отображаться ниже:

Выводы

Как можно увидеть, установка NextCloud в Ubuntu 20.04 не является чем-то сложным. После установки так же потребуется сконфигурировать сервер под свои нужды, настроить бесперебойную работу, реализовать резервное копирование и прочее. Но данный материал уже выходит за рамки данной статьи.






Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(5 оценок, среднее: 3,60 из 5)

Об авторе

27 комментариев

это же owncloud!

Протух твой Owencloud, забудь есть опенсорсный Nextcloud

NextCloud это fork проекта owncloudони там во мнениях не сошлись и разделились, как по мне он более перспективный.

Суть Nextcloud — в подключении к облаку с любого устройства. А как мне это сделать, если IP динамический (в основном, у всех так)? Очевидно, что написанный текст бесполезен без этой информации.

Тогда проси провайдера дать тебе статический. А если ты сидишь за NAT-том и еще и динамический IP, то я тебе соболезную.

Есть такие штуки как port mapping (проброс портов) и DDNS для динамических IP. А так штука не плохая. У себя дома настроил, подключил смартфоны жены, детей + с домашних компов/ноутов документы синхронизируются. Фоток уже на 300 Гб за два года накопилось, все облака платные пусть лесом идут.

Есть еще VPN тунели

Для динамических IP существует DDNS. Ну а если NAT то да, дальше никак.

Через VPN можно настроить

На сервере ставь, какой смысл дома от неё.

В маркетплэйсе некст клауда есть плагин, который решает данную проблему.

Кто-то еще apache в 21-ом веке использует как веб-сервер? Печально.

С такой нагрузкой ты даже не заметишь разницы между ngnix, а вообще да можно вместо ngnix и apache поставить openlitespeed

Как установить NextCloud на Ubuntu 18.04
Шаг 1: Установка веб-сервера Apache
Шаг 2: Установка MariaDB
Шаг 3: Установка PHP и дополнительных модулей
Шаг 4: Настройка таблиц для NextCloud
Шаг 5: Установка движка NextCloud
Шаг 6: Настройка Apache
Шаг 7: Активация модулей NextCloud
Шаг 8. Тестирование работы Nextcloud
Выводы

Как установить NextCloud на Ubuntu 18.04
Шаг 1: Установка веб-сервера Apache

Это веб-сервер, который нужен для работы системы. Устанавливаем его командой в Терминале:

sudo apt install apache2

После этого вводим команду:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

Это отключит список каталогов для Apache. После этого нужно остановить, запустить и активировать службу Apache2. Это позволит ей запускаться при загрузке ОС. Выполняем команды:

sudo systemctl restart apache2
sudo systemctl enable apache2

Шаг 2: Установка MariaDB

Это сервер баз данных, который используется в NextCloud. Установим его командой:

sudo apt install mariadb-client mariadb-server

После установки по аналогии с Apache вводим команды:

sudo systemctl restart mariadb
sudo systemctl enable mariadb

Это позволит серверу стартовать при запуске ОС. Далее настраиваем параметры безопасности. Вводим команду:

После этого система задаст несколько вопросов, отвечаем на них так:

Перезапускаем сервер базы данных командой:

sudo systemctl restart mariadb

Шаг 3: Установка PHP и дополнительных модулей

Для работы установим новый PHP 7.1. Его пока нет в стандартных репозиториях Ubuntu, поому ставим из сторонних. Выполняем команды:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Затем обновляем список пакетов:

sudo apt update

Устанавливаем PHP 7.1 и остальные пакеты одной командой: --конфликт, конфликт, конфликт а дальше ничего.

А как установить на Slackware Linux?

вот как можно сделать целую статью на 5к знаков всего из одной команды: snap install nextcloud
Автору удачи 🙂

Ручками круче. Хацкеры типо.

У snap много ограничений 🙁
-нет возможности изменить расположение хранилища
-нет поддержки samba
А так для дома самое оно!

Это кулхацкеру выше адресовано

Здравствуйте. Столкнулся с такой задачей при установке Ubuntu 18 был выбор установить этот самый nextcloud (из коробки). Однако apache, из коробки, сам по себе не шел после поэтому мне пришлось установить "лампу". Но после того как установился Apache nextcloud перестал запускаться, вернее так: если выключить Apache то nextcloud запускается, а если включить то нет соответственно. Как сделать так чтобы он запускался вместе с Apache? Спасибо

вы нашли ответ? у меня такая же проблема.
какокой правильнй алгоритм установки.

А зачем столько мучений если есть snap пакет? Обновляется атомарно, автоматически, работает как сервис, отполированы зависимости. Установить можно в любой дистр 1-2 командами.

Устанавливаем PHP 7.1 и остальные пакеты одной командой:

После этого видим:

E: Unable to locate package libapache2-mod-php7.1
E: Couldn't find any package by glob 'libapache2-mod-php7.1'
E: Couldn't find any package by regex 'libapache2-mod-php7.1'
E: Unable to locate package php7.1-common
E: Couldn't find any package by glob 'php7.1-common'
E: Couldn't find any package by regex 'php7.1-common'
E: Unable to locate package php7.1-mbstring
E: Couldn't find any package by glob 'php7.1-mbstring'
E: Couldn't find any package by regex 'php7.1-mbstring'
E: Unable to locate package php7.1-xmlrpc
E: Couldn't find any package by glob 'php7.1-xmlrpc'
E: Couldn't find any package by regex 'php7.1-xmlrpc'
E: Unable to locate package php7.1-soap
E: Couldn't find any package by glob 'php7.1-soap'
E: Couldn't find any package by regex 'php7.1-soap'
E: Unable to locate package php7.1-apcu
E: Couldn't find any package by glob 'php7.1-apcu'
E: Couldn't find any package by regex 'php7.1-apcu'
E: Unable to locate package php7.1-smbclient
E: Couldn't find any package by glob 'php7.1-smbclient'
E: Couldn't find any package by regex 'php7.1-smbclient'
E: Unable to locate package php7.1-ldap
E: Couldn't find any package by glob 'php7.1-ldap'
E: Couldn't find any package by regex 'php7.1-ldap'
E: Unable to locate package php7.1-redis
E: Couldn't find any package by glob 'php7.1-redis'
E: Couldn't find any package by regex 'php7.1-redis'
E: Unable to locate package php7.1-gd
E: Couldn't find any package by glob 'php7.1-gd'
E: Couldn't find any package by regex 'php7.1-gd'
E: Unable to locate package php7.1-xml
E: Couldn't find any package by glob 'php7.1-xml'
E: Couldn't find any package by regex 'php7.1-xml'
E: Unable to locate package php7.1-intl
E: Couldn't find any package by glob 'php7.1-intl'
E: Couldn't find any package by regex 'php7.1-intl'
E: Unable to locate package php7.1-json
E: Couldn't find any package by glob 'php7.1-json'
E: Couldn't find any package by regex 'php7.1-json'
E: Unable to locate package php7.1-imagick
E: Couldn't find any package by glob 'php7.1-imagick'
E: Couldn't find any package by regex 'php7.1-imagick'
E: Unable to locate package php7.1-mysql
E: Couldn't find any package by glob 'php7.1-mysql'
E: Couldn't find any package by regex 'php7.1-mysql'
E: Unable to locate package php7.1-cli
E: Couldn't find any package by glob 'php7.1-cli'
E: Couldn't find any package by regex 'php7.1-cli'
E: Unable to locate package php7.1-mcrypt
E: Couldn't find any package by glob 'php7.1-mcrypt'
E: Couldn't find any package by regex 'php7.1-mcrypt'
E: Unable to locate package php7.1-ldap
E: Couldn't find any package by glob 'php7.1-ldap'
E: Couldn't find any package by regex 'php7.1-ldap'
E: Unable to locate package php7.1-zip
E: Couldn't find any package by glob 'php7.1-zip'
E: Couldn't find any package by regex 'php7.1-zip'
E: Unable to locate package php7.1-curl
E: Couldn't find any package by glob 'php7.1-curl'
E: Couldn't find any package by regex 'php7.1-curl'

Привет!
Хотел бы подсказать, что если подключить ElasticSearch и немного его настроить, то у вас будет работать и поиск по самим документам (начиная от простых текстовых файлов и заканчивая либраофисныи и мсофисными форматами). Проверено в том числе и на табличных файлах.

Будут вопросы по этой связке - почту добавил 🙂

Молодци канечно но версию нехтклоуд обновить ненадо чтоли ?

А самостоятельно никто не ограничивает Вас изменить версию .

На Ubuntu 20.04 не встал. Ничего не заработало. Надо инструкцию пересматривать/разбираться. "Из коробки" не канает. Пробовал несколько раз.

NextCloud - набор инструментов с открытым исходным кодом для создания личного облачного хранилища.

Возможности NextCloud

  • Бесплатно и с открытым исходным кодом.
  • Сквозное шифрование, то есть файлы могут быть зашифрованы на клиентских устройствах перед загрузкой на сервер, поэтому даже если кто-то получит доступ к вашему серверу, он не сможет прочитать ваши файлы.
  • Может быть интегрирован с пакетом онлайн-офиса (Collobora Online , OnlyOffice), что даст возможность создавать и редактировать файлы doc, ppt, xls прямо из NextCloud.
  • Магазин приложений содержит сотни приложений для расширения функциональности (например, приложение календарь, приложение контактов, приложение для создания заметок, приложение для видеоконференций и т. д.).
  • Приложения-клиент для синхронизации доступны для систем Linux, macOS, Windows, iOS и Android.

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

Установка NextCloud (Apache, MariaDB)

Установим Apach и MariaDB:

Установим необходимые PHP модули:

Войдем в консоль базы данных. Поскольку MariaDB теперь использует плагин unix_socket для аутентификации входа пользователя, нет необходимости вводить пароль root MariaDB. Нам просто нужно добавить к команде mysql префикс sudo:

Создаем базу данных, пользователя и задаем свой пароль:

Выходим из консоли базы данных:


В самом верху следующей команды добавляем название своего домена:


Создаём виртуальный хост Apache для Nextcloud:

Меняем владельца каталога:

Устанавливаем NextCloud, задаем нашу базу данных, создаем администратора:

Добавляем свой домен в базу доверенных доменов NextCloud:

Шифрование домена NextCloud:

Не забудьте открыть порты 80 и 443:

Удаление index.php с домена NextCloud

Убираем index.php , тем самым делая адрес более красивым.

И под ним добавляем следующую строку:

Пример на скриншоте.


Затем обновляем .htaccess:

Известные ошибки

Решение ошибки: Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ

В конце, под блоком SSL добавляем следующий параметр:



И перезапускаем веб-сервер:

Решение ошибки: Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информации

Добавляем следующий параметр:


Перезапускаем Apache и PHP-FPM:

Увеличиваем предел размера загружаемого файла

При использовании модулей Apache PHP, по умолчанию задан предел загружаемого файла в 2 МБ. Обходим данное ограничение, увеличиваем предел загружаемого файла по своему усмотрению (в этом примере мы задаем предел в 5024 МБ):

Решение ошибки: В базе данных отсутствуют некоторые индексы. Из-за того, что добавление индексов в большие таблицы могло занять некоторое время, они не добавлялись автоматически

Решение ошибки: В некоторых столбцах базы данных отсутствует преобразование в большой тип int. Из-за того, что изменение типов столбцов в больших таблицах могло занять некоторое время, они не менялись автоматически

Переводим NextCloud в режим обслуживания:

И вводим следующую команду:

Отключаем режим обслуживания:

После этого Проверка безопасности и параметров, скорее всего не выявит проблем.


Установите Nextcloud на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.

Шаг 2. Установите стек LAMP.

Требуется сервер Ubuntu 20.04 LAMP. Если у вас не установлена ​​LAMP, вы можете следовать нашему руководству здесь .

Шаг 3. Установка Nextcloud на Ubuntu 20.04.

Распакуйте архив Nextcloud в корневой каталог документов на вашем сервере:

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

Шаг 4. Настройка MariaDB для Nextcloud.

По умолчанию MariaDB не усилен. Вы можете защитить MariaDB с помощью mysql_secure_installation скрипта. Вы должны внимательно прочитать и под каждым шагом, который установит пароль root, удалит анонимных пользователей, запретит удаленный вход root, а также удалит тестовую базу данных и доступ к безопасности MariaDB.

Настройте это так:

Затем нам нужно будет войти в консоль MariaDB и создать базу данных для Nextcloud. Выполните следующую команду:

Вам будет предложено ввести пароль, поэтому введите пароль root для MariaDB и нажмите Enter. После входа на сервер базы данных вам необходимо создать базу данных для установки Nextcloud:

Шаг 5. Настройка веб-сервера Apache для Nextcloud.

Создайте новую директиву виртуального хоста в Apache. Например, создайте новый файл конфигурации Apache с именем nextcloud.conf на своем виртуальном сервере:

Добавьте следующие строки:

Перезапустите веб-сервер Apache, чтобы изменения вступили в силу:

Затем выполните следующую команду, чтобы получить бесплатный сертификат TLS с помощью плагина Apache:

Если проверка прошла успешно, перезагрузите Apache, чтобы изменения вступили в силу:

Шаг 7. Доступ к веб-интерфейсу Nextcloud.


Поздравляю! Вы успешно установили Nextcloud . Благодарим вас за использование этого руководства по установке персонального облачного хранилища Nextcloud в вашей системе Ubuntu 20.04 LTS Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Nextcloud .

Читайте также: