Показаны сообщения с ярлыком nextcloud. Показать все сообщения
Показаны сообщения с ярлыком nextcloud. Показать все сообщения

суббота, 25 августа 2018 г.

Установка ownCloud (Nextcloud) в OMV 4 (Arrakis) без плагинов

Всем привет!
Openmediavault 4 (Arrakis) вышел в релиз и я решил опробовать его на виртуалке.
Что привлекло в новом OMV: Debian 9.2; архитектура только 64х; "из коробки" php 7.0.
Дистрибутив OMV (на момент написания 4.0.14.) скачивается с оф. сайта:https://sourceforge.net/projects/openmediavault/files/4.0.14/openmediavault_4.0.14-amd64.iso/download
Установку самого OMV нет смысла описывать - она ничем не отличается от предыдущих версий, настройка основных сервисов тоже, а вот установка ownCloud имеет некоторые нюансы, поэтому решил сваять этот гайд.

 Общее

После установки OMV Вы увидите консоль с предложением ввести логин. Логин у всех root, а пароль тот, что Вы задали при установке. Далее, для простоты, я везде использую пароль "123", но у меня система виртуальная и не стоит так делать на рабочей системе - это понятно.
После ввода логина и пароля надо узнать (если не знаете), какой IP адрес достался серверу, чтобы зайти на его веб-морду.
Вводим:
 ip a 
В результате увидим IP(первый слева в строке, у меня это 192.168.115.134), который вводим в браузере и больше мы к этой консоли не вернемся!
Все скрины далее можете открыть в новом окне - они развернуться в полном размере.


Для ввода всех последующих команд будем использовать протокол SSH и программу PuTTY https://www.chiark.greenend.org.uk/~sgtatham/putty/
Работу с файлами и папками будем осуществлять в Midnight Commander (mc) запушенном все в том же PuTTY- это консольный файловый менеджер для Linux.
Немного о работе в mc, далее уже повторять не буду:
Копирование файла - F5
Перенос файла - F6
Создать папку - F7
Меню - F9
Перемещение курсора между панелями - Tab
Выход из mc - F10
Открыть файл для чтения - F3
Открыть файл для правки - F4 (в первый раз просит выбрать редактор - самый простой и надежный nano под цифрой 1)
Сохранить изменения в файле Ctrl+O
Выйти из режима редактирования файла Ctrl+X
Для копирования текста внутри файла надо поставить курсор клавишами стрелок (не мышкой) в место, куда вставляется текст, мышкой выделить фрагмент, который копируем, и на ранее установленный курсор кликаем правой кнопкой мышки.
Для копирования текста между файлами или между виндовой машиной и PuTTY лучше использовать сочетание Ctrl+insert (копировать) и Shift+insert (вставить).
Чтобы не писать руками пути до папок, открываем в mc нужную папку и сворачиваем панели mc сочетанием Ctrl+O. После этого открытый путь выделяем мышкой и жмем Ctrl+insert для копирования, затем панели надо вернуть опять нажав Ctrl+O !!! При свернутых панелях можно вводить команды, но не стоит открывать файлы для редактирования - есть баг. Все дело в том, что сохранение редактируемого файла и скрытие панелей используют комбинацию Ctrl+O и если Вы откроете в nano файл для редактирования и потом захотите его сохранить, то при нажатии CTRL+O у вас откроются панели mc и файл не сохранится.
Итак: Мы попали на веб-морду OMV. Стандартный логин: admin, пароль: openmediavault (лучше сразу сменить в общих настройках)


Открываем раздел сервиса SSH (он уже включен по умолчанию) и для первичной настройки можно ничего не менять, просто ввести эти же данные в PuTTY. В дальнейшем лучше отключить вход для рут и сделать для этого другого пользователя.

После ввода пользователя root и его пароля в PuTTY должны увидеть нечто подобное:

Проверяем обновления и ставим mc, поочередно выполняя команды (так как мы зашли под root, можно не писать sudo перед каждой командой)
apt-get update
apt-get upgrade
apt-get install mc
mc
Если все правильно, то Вы увидите файловый менеджер и переходим к следующему этапу.

Установка ownCloud (Nextcloud устанавливается аналогично)

Для работы ownCloud нам понадобится установить 2 плагина, которые идут в пакете OMVExtras
Скачиваем пакет с оф. сайта http://omv-extras.org/openmediavault-omvextrasorg_latest_all4.deb
Заходим на веб-морду OMV -> раздел плагины -> кнопка "загрузить" и выбираем скачанный выше файл.
После этого в списке сразу появится нужный плагин, отмечаем его и устанавливаем:

После установки в разделе плагины ждем кнопку "проверка" для обновления списков плагинов, без этого нужные не отобразятся.
Находим в списке нужные, отмечаем, устанавливаем:

Если все верно, в списке сервисов появится 2 новых, только что добавленных:

Через консоль поочередно ставим пакеты, необходимые для правильной работы ownCloud
apt-get install php7.0-zip
apt-get install php7.0-gd
apt-get install php7.0-curl
apt-get install redis-server php-redis
apt-get install php-apcu
apt-get install memcached php-memcached
Через веб-морду создаем общий каталог www и в нем подкаталок owncloud (права пока не трогаем, оставим по умолчанию). Создаем именно за 2 раза.
У меня примонтирована виртуальная файловая система с меткой "data" поэтому везде далее будет путь на этот диск.

Для хранения данных рекомендую использовать отдельную папку, вне созданной выше. Это облегчит дальнейшее администрирование.
Так же как и выше, создаем в корне диска каталог clouddata, права пока тоже по умолчанию.
С оф. сайта ownCloud скачиваем серверную часть, распаковываем и любым удобным способом закидываем в папку www/owncloud https://download.owncloud.org/community/owncloud-10.0.3.zip
Теперь можно выставить права. Чтобы не писать в консоли, делаем через веб-морду, как на скринах:

Через веб-морду создаем SSL сертификат, нужен будет позже.
Переходим к настройке MySQL.
В списке сервисов открываем MySQL, включаем, сбрасываем пароль по умолчанию:

Кнопкой "show" открываем сайт управления MySQL. Логин по умолчанию omvadmin, пароль установили шагом выше.
- Создаем базу данных owncloud и открываем ее
Через меню Инструменты -> пользователь manager создаем пользователя owncloud и даем ему пароль (у меня все тот же 123)

тут же даем пользователю права на базу owncloud (порядок действий на скрине):

Можно закрывать страницу MySQL - настройка завершена.
Настройка плагина Nginx:
В списке сервисов открываем плагин, включаем.
На вкладке pools добавим запись как на скрине (доп опции пока не трогаем, может не запуститься сайт в первый раз)

На вкладке сервера добавим сервер:

В расширенные опции сервера добавим следующее:
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";

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 / {
# The following 2 rules are only needed with webfinger
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 $socket;
}

# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
Теперь нам надо сделать первичную настройку облака, чтобы сконфигурировался файл config.php, который потом будем править.
В строке сервера кликаем на url и должен открыться сайт ownCloud с первичной настройкой

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

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

Устраним их:
- В файл www/owncloud/config/config.php добавим следующие строки:
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
- в дополнительные опции пула nginx добавим следующее:
env[PATH] = /usr/local/bin:/usr/bin:/bin
- в консоли пишем
crontab -u www-data -e
и в самый низ открывшегося файла добавим строку и сохраним:
*/15  *  *  *  * php -f /тут свой путь до папки/owncloud/cron.php
После этого надо зайти на веб-морду облака и включить в настройках cron, после чего выйти из системы и заново зайти
Вуаля! Все настройки завершены: