суббота, 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, после чего выйти из системы и заново зайти
Вуаля! Все настройки завершены:

2 комментария:

  1. Доброго времени суток! Крайне благодарен за данную статью, очень помогла! Но можно поподробнее про устранение ошибок PHP (конец статьи) при установке именно nextcloud?

    ОтветитьУдалить
  2. Ошибка 502 Bad Gateway при клике на адрес сервера Nginx :(

    ОтветитьУдалить