OwnCloud и Nextcloud в Ubuntu 20.04

Приветствую Вас, уважаемые читатели. Сегодня статья на тему: "OwnCloud и Nextcloud в Ubuntu 20.04". Рассмотрим установку облачных хранилищ OwnCloud и Nextcloud в операционной системе Ubuntu 20.04.
OwnCloud и Nextcloud – это бесплатное программное обеспечение для организации общего доступа и обмена файлами, с возможностью расширения функционала с помощью дополнительных модулей.
Для работы обоих веб-приложений требуется веб-окружение LEMP. Установку и настройку LEMP, мы рассматривали в предыдущей статье, поэтому я не буду описывать всё снова. Как и в статье по установке LEMP, я буду использовать доменное имя test.ru. Конфигурация для обоих хранилищ будет одинаковой, с той лишь разницей, что на выходе Вы получите либо одно, либо другое веб-приложение.
- Будем отталкиваться от того, что у нас уже есть в наличии:
- Директории для работы сайта.
- Веб-сервер Nginx.
- Сервер баз данных MariaDB.
- PHP-FPM и некоторые модули (список модулей в статье о Lemp)
- Открыты 80 и 443 порты в системном Firewall.
- Установлен сертификат от Let’s Encrypt.
- Настроена ротация логов Nginx.
Создание базы данных для OwnCloud и Nextcloud в Ubuntu 20.04
- Первое что нужно сделать, это создать базу данных для нашего будущего облака.
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE cloud; MariaDB [(none)]> GRANT ALL PRIVILEGES ON cloud.* TO 'admin'@'localhost' IDENTIFIED BY '123'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit;
- Я создал базу данных cloud, с пользователем admin, и паролем 123.
Создание конфигурации для облака в Nginx
- В директории /etc/nginx/sites-enabled/, создаём конфигурационный файл для нашего облачного хранилища, либо редактируем имеющийся. Назовём его по имени сайта, в моём случае это будет test.conf.
server { listen 80; server_name test.ru www.test.ru; index index.php index.html index.htm; access_log /var/www/test.ru/log/access.log; error_log /var/www/test.ru/log/error.log; root /var/www/test.ru/site/; return 301 https://$server_name$request_uri; } server { listen 443; server_name test.ru www.test.ru; index index.php index.html index.htm; access_log /var/www/test.ru/log/ssl-access.log; error_log /var/www/test.ru/log/ssl-error.log; root /var/www/test.ru/site/; ssl on; ssl_certificate /etc/letsencrypt/live/test.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/test.ru/privkey.pem; ssl_protocols TLSv1.2; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; client_max_body_size 10G; fastcgi_buffers 64 4K; rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; index index.php; error_page 403 = /core/templates/403.php; error_page 404 = /core/templates/404.php; location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } location / { rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; try_files $uri $uri/ index.php; } location ~ ^(.+?\.php)(/.*)?$ { try_files $1 = 404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$1; fastcgi_param PATH_INFO $2; fastcgi_param HTTPS on; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { expires modified +30d; access_log off; } location = /favicon.ico { log_not_found off; access_log off; } }
- В конфиге уже настроен доступ по HTTPS, и базовая конфигурация для работы облачных хранилищ.
Настройка PHP-FPM для OwnCloud и Nextcloud в Ubuntu 20.04
- Находим конфигурационный файл /etc/php/7.4/fpm/pool.d/www.conf, и раскомментируем несколько строчек.
env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp
- В статье об установке LEMP рассматривается установка всех необходимых модулей, за исключением одного. Это модуль intl, запускаем команду для установки модуля.
# apt install php-intl
Создание отдельной директории для данных
- Создаём директорию для данных вне корневой директории хранилища, и задаём нужные права.
# mkdir -p /data # chown www-data:www-data /data
Загрузка файлов OwnCloud и Nextcloud в Ubuntu 20.04
- Скачать последнюю версию OwnCloud, можно по ссылке:
https://download.owncloud.org/download/community/owncloud-latest.zip
- Для скачивания последней версии Nextcloud, нужно зайти в хранилище, и выбрать требуемый архив:
https://download.nextcloud.com/server/releases/
- Загрузить файлы любого из хранилищ в коревую директорию, в моём случае это /var/www/test.ru/site/, можно двумя способами:
- Скачивание с помощью утилиты wget, и извлечение файлов в корневую директорию уже на сервере.
- Скачивание архива себе на компьютер, и загрузка в корневую директорию уже разархивированных файлов.
- После добавления файлов в корневую директорию, нужно настроить требуемые разрешения.
# chown www-data:www-data -R /var/www/test.ru/site/ # chmod -R 0775 /var/www/test.ru/site/ # chown root:www-data /var/lib/php/sessions/ # chown -R www-data:www-data /var/lib/php/sessions/
- Все настройки произведены, осталось только произвести перезагрузку Nginx и PHP-FPM, чтобы внесённые нами изменения были приняты службами.
# systemctl restart php7.4-fpm # systemctl restart nginx
Установка frontend OwnCloud или Nextcloud
- Теперь можно зайти на главную страницу Вашего сайта с помощью браузера.
- Откроется страница инсталлятора выбранного Вами облака (поля для заполнения, идентичны у обоих приложений).
- Вводим требуемую информацию:
- Учётная запись будущего администратора (логин и пароль)
- Указываем директорию с данными, которую мы создали для этих целей (/data)
- Данные подключения к базе данных, которую мы создали (пользователь, пароль, и название базы данных)
- Введя все требуемые данные, жмём на «Завершить установку».

- Через какое-то время, в зависимости от выбранного приложения, Вы попадёте либо на страницу авторизации OwnCloud…

- Либо на страницу авторизации Nextcloud.

Если в процессе работы инсталлятора, откроется страница с ошибкой, то просто откройте новую вкладку браузера, и перейдите на главную страницу вновь. Это не проблема, просто скриптам не хватает времени на отработку.
- Введя данные администратора, созданного на предыдущем шаге, Вы попадёте в панель управления Вашего облачного хранилища.
Сегодня мы рассмотрели тему: "OwnCloud и Nextcloud в Ubuntu 20.04". Подробно рассмотрели процесс установки веб-приложений OwnCloud и Nextcloud в операционной системе Ubuntu 20.04. Смотрите так же, видео по теме.
Надеюсь статья была вам полезна. До встречи в новых статьях.
✍
С уважением, Андрей Бондаренко.
Видео на тему "OwnCloud и Nextcloud в Ubuntu 20.04":

WMZ-кошелёк = Z667041230317
«Ubuntu»