Після встановлення Nextcloud (ч.1) та налаштування HTTPS (ч.2) ввійти в профіль адміністратора, зайти в меню 'Додатки', вибрати розділ оновлення та оновити програми/додатки.
Для перевірки налаштувань серверу Nextcloud та виявлення проблем, пов'язаних з безпекою, необхідно ввійти в профіль адміністратора, зайти у меню 'Налаштування' (Settings), далі розділ 'Адміністрування', вибрати вкладку 'Overview'. Система деякий час робитиме перевірку і видасть звіт про існуючі проблеми.
Додатково просканувати свій домен, до якого прив'язано Nextcloud, на сайті Nextcloud Security Scan
Усунення проблем в налаштуваннях та безпеці сервера
Тут наведено ті проблеми, з якими я стикнувся (як правило, після встанновлення, такі ж проблеми з'являються у більшості користувачів).
-
попередження на зразок Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation.
У версії Nextcloud 16 і далі це попередження в основному стосується програми 'rightclick' (помилка '- files_rightclick' -> '- FILE_MISSING').
Хоча загальна рекомендація з документації Nextcloud говорить про те, що потірбно заново завантажити ті файли, що до яких є така помилка, в даному випадку рекомендується вилучити файли, щодо яких вказано помилку 'file_missing' (див. тут)
sudo rm -r /usr/share/webapps/nextcloud/apps/files_rightclick/files_rightclick/*
після цього зробити повторне сканування.
В принципі можна ігнорувати цю проблему, бо це баг, який буде згодом виправлений в нових версіях програми rightclick та Nextcloud.
-
проблема: 'X-Frame-Options not set to SAMEORIGIN'
Для вирішення необхідно у файлі /etc/nginx/sites-available/nextcloud.conf добавити
fastcgi_hide_header X-Frame-Options; proxy_hide_header X-Frame-Options;
Тут обговорення і рішення цієї проблеми. Виникає через те, що цей header встановлюється сервером двічі.
-
Проблема: Ваш веб-сервер не налаштований як треба для вирішення "/.well-known/caldav" / Ваш веб-сервер не налаштований як треба для вирішення "/.well-known/carddav"
Для цього в налаштування серверу nginx (файл /etc/nginx/sites-available/nextcloud.conf) в розділ server, де є директива listen 443, добавити директиви такого змісту
location = /.well-known/carddav { return https://$server_name:443/remote.php/dav; } location = /.well-known/caldav { return https://$server_name:443/remote.php/dav; }
Рішення для веб-серверу nginx зроблено на основі цього і цього та інструкції DigitalOcean по налаштуванню nginx.
-
Повідомлення: This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.
Для вирішення достатньо лише встановити відсутні модулі. В нашому випадку це були
intl imagick
Встановлюємо
sudo pacman -S php-intl php-imagick
Налаштування кешування
Для кешування використовуватиму Redis - як на мене одна з найшвидших та найоптимальніших баз даних для кешування. Крім цього, є досвід практичного застосування цієї БД не лише для кешування.
Найперше встановлюємо Redis (сервер та модуль) та APCu-модуль.
sudo pacman -S redis php-redis php-apcu
APCu
Встановлення та налаштування APCu взято тут і тут.
-
до файлу /etc/php/php.ini додати
extension=apcu ... [APCu] ;apc.enabled=1 ;apc.shm_size=32M apc.ttl=7200 apc.enable_cli=1
Redis
Встановлення та налаштування Redis взято тут і тут.
-
змінити такі налаштування в файлі /etc/redis.conf (коментарі позначено знаком '#')
sudo vim /etc/redis.conf
#заборонити доступ по TCP port 0 #дозволити сокети unixsocket /var/run/redis/redis.sock unixsocketperm 770 #ВіКі на ArchLinux вказує 700. Але сервер не працюватиме, тому потрібно вказувати рівень доступу 770.
зберегти та закрити.
-
додати користувача веб-сервера до групи redis
sudo usermod -a -G redis http
-
копіюємо файл redis.service
sudo cp /usr/lib/systemd/system/redis.service /etc/systemd/system/redis.service
-
редагуємо /etc/systemd/system/redis.service
sudo vim /etc/systemd/system/redis.service
замість
ExecStop=/usr/bin/redis-cli shutdown
вказуємо
ExecStop=/usr/bin/redis-cli shutdown -s /var/run/redis/redis.sock
закриваємо і зберігаємо файл.
-
додаємо такі налаштування до кофігурації php (/etc/php/php.ini)
;ensure igbinary loads before redis ;look here https://bugs.archlinux.org/task/63157 extension=igbinary #цей модуль зазначається першим над redis extension=redis
зберегти та закрити файл.
Важливо! Для роботи Redis з PHP крім встановлення модулю php-redis повинен ще бути встановлений модуль php-igbinary і цей модуль повинен запускатись раніше redis (див. налаштування вище). Цю проблему описано тут.
Для надійності встановити/перестановити igbinary
sudo pacman -S php-igbinary
-
додаємо такі налаштування до файлу конфігураці Nextcloud
sudo vim /usr/share/webapps/nextcloud/config/config.php
'memcache.local' => '\OC\Memcache\Redis', 'memcache.locking' => 'OC\Memcache\Redis', 'memcache.distributed' => '\OC\Memcache\Redis', 'redis' => [ 'host' => '/var/run/redis/redis.sock', 'port' => 0, ],
зберегти та закрити файл.
-
додаємо наступне налаштування до файлу /etc/sysctl.conf (за відсутності - створюємо файл; дане налаштування потрібне для нормальної роботи Redis на RPi)
vm.overcommit_memory = 1
-
дозволяємо службу redis.service і запукаємо сервер
sudo systemctl enable redis sudo systemctl start redis
-
перезапускаємо веб-сервер
sudo systemctl restart nginx
-
також обов'язково перезапускати службу php-fpm (цю проблему описано тут; лише стосується випадку, коли використовується служба php-fpm).
sudo systemctl restart php-fpm
-
перезапускаємо RPi (щоб зміни по Redis запрацювали)
sudo reboot
Чекаємо на перезавантаження, заходимо на свій домен Nextcloud і логінимось. Якщо видає помилку, що сервер не доступний (помилки 500, 501, 502), тоді необхідно дивитись в налаштування Nextcloud (/usr/share/webapps/nextcloud/config/config.php) і змінити кешування з Redis на APCu
'memcache.local' => '\OC\Memcache\APCu',
Всі інші налаштування Redis в цьому файлі вилучити. Зберегти зміни, закрити файл. Перезапустити веб-сервер (nginx) та службу php-fpm.
Оновити сторінку Nextcloud. Якщо все запрацювало, можна так і залишати (кешування працюватиме, хоча й не на основі Redis).
Весь процес по встановленню та налаштуванню Nextcloud на Raspberry Pi на ArchLinux ARM
ч.1: Встановлення Nextcloud локально
ч.2: Налаштування https та підключення домену для віддаленого доступу
Comments
No comments yet. Be the first to react!