В предыдущей статье я писал как можно установить и настроить nextcloud на операционной системе Ubuntu Server 20.04 с web-сервером nginx+php-fpm и базой данных postgresql. Почитать можно тут.
После успешного запуска nextcloud в панели администратора Вы можете в пункте общие сведения, увидеть следующие предупреждения:
Индексирование файлов
Для устранения запустим команды для ускорения индексирования файлов. В терминале набираем:
cd /var/www/nextcloud/
Включаем режим обслуживания:
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
И вводим данные строки:
sudo -u www-data php occ db:add-missing-indices
sudo -u www-data php occ db:convert-filecache-bigint
Выключаем режим обслуживания
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
После данной манипуляции ошибка должна исчезнуть.
Предупреждения о текущей конфигурации /.well-known/.
- Веб-сервер не настроен должным образом для разрешения «/.well-known/webfinger».
- Веб-сервер не настроен должным образом для разрешения «/.well-known/nodeinfo».
- Веб-сервер не настроен должным образом для разрешения «/.well-known/caldav».
- Веб-сервер не настроен должным образом для разрешения «/.well-known/carddav».
Чтобы исправить данные предупреждения в конфигурационный файл nginx вашего облака внесем следующую location:
location /.well-known {
location = /.well-known/carddav { return 301 https://$host/remote.php/dav/; }
location = /.well-known/caldav { return 301 https://$host/remote.php/dav/; }
location ~ /.well-known/acme-challenge { allow all; }
rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
location ^~ /.well-known { return 301 https://host/index.php$uri; }
try_files $uri $uri/ =404;
}
Адрес https://mynextcloud.ru измените на свой.
Также внесём следующие строки в файл .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ https://%{SERVER_NAME}/remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^.well-known/host-meta https://%{SERVER_NAME}/public.php?service=host-meta [QSA,L]
RewriteRule ^.well-known/host-meta.json https://%{SERVER_NAME}/public.php?service=host-meta-json [QSA,L]
RewriteRule ^.well-known/webfinger https://%{SERVER_NAME}/public.php?service=webfinger [QSA,L]
RewriteRule ^.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) https://%{SERVER_NAME}/remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/.well-known/(acme-challenge|pki-validation)/.*
RewriteRule ^(?:.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
Зависание входа в панель NextCloud
Включил https на web сервере для nextclou и появился неприятный глюк: в google chrome, opera и яндекс браузере, а также в firefox, IE и edge при входе в аккаунт и выходе из него браузер “зависает” на странице входа, но при этом авторизуется. Если нажать F5, то окажемся в своем аккаунте.
Как же победить данную проблему?
Лечится добавлением в конфигурационный файл NexCloud:
sudo nano /var/www/nextcloud/config/config.php
следующего содержимого:
'overwriteprotocol' => 'https',
Не настроена система кэширования.
Не настроена система кэширования. Для увеличения производительности сервера, по возможности, настройте memcache.
Хочу использовать Memcached. Для этого надо установите модуль для PHP и сам memcached.
Как оказалось есть два похожих пакета:
- php-memcache – модуль Memcache для PHP,
- php-memcached – расширение PHP для взаимодействия с memcached.
Нужен с буквой d в конце.
Установливаем:
sudo apt install memcached php8.0-memcached
настройки в /etc/php/8.0/mods-available/memcached.ini
оставляю все без изменений.
В выводе phpinfo(); появился блок с описанием memcached.
Настройки запуска сервиса в /etc/systemd/system/multi-user.target.wants/memcached.service
и конфигурационный файл /etc/memcached.conf
тоже не менял.
Запускаем memcached:
sudo systemctl start memcached
Проверяем запустился ли сервис
sudo ps ax | grep memcached
Должно выдать что-то вроде этого
725 ? Ssl 0:11 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
Теперь в конфиге NextCloud добавим строки:
sudo nano /var/www/nextcloud/config/config.php
'memcache.local' => 'OCMemcacheMemcached',
'memcache.distributed' => 'OCMemcacheMemcached',
'memcached_servers' => [
[ '127.0.0.1', 11211 ],
],
Модуль php-imagick не поддерживает SVG
Для устранения данного предупреждения необходимо установить модуль imagick:
sudo apt install imagemagick
Не указан регион размещения этого сервера Nextcloud
Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны.
Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с ISO 3166-1↗.
Для устранения данного предупреждения откроем конфигурационный файл NextCloud :
sudo nano /var/www/nextcloud/config/config.php
и добавим следующие строки:
'default_phone_region' => 'RU',
Предупреждение headers
Для устранения данных ошибок в терминале набираем следующее:
sudo nano /etc/nginx/conf.d/headers.conf
И заполняем данным текстом:
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Cache-Control "public, max-age=7200";
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
Сохраняем файл (ctrl+o, ctrl+x). И перезагружаем nginx
sudo service nginx restart
Заголовок HTTP «Strict-Transport-Security»
Для устранения данного предупреждения отредактируем файл Nginx headers.conf:
sudo nano /etc/nginx/conf.d/headers.conf
Добавим следующие строки:
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
Перезапустим nginx:
sudo service nginx restart
PHP не настроен для системного окружения.
PHP не настроен правильно для получения переменных системного окружения.
Запрос getenv(«PATH») возвращает пустые результаты.
Обратитесь к разделу о конфигурации PHP и примечаниям к конфигурации PHP из руководства по установке. Обратите внимание на настройку параметров PHP, особенно при использовании механизма php-fpm.
Когда вы используете php-fpm, системные переменные среды, такие как PATH, TMP или другие, не заполняются автоматически так же, как при использовании php-cli. Вызов функции PHP, такой как getenv(‘PATH’); может возвращать пустой результат. Поэтому вам может потребоваться вручную настроить переменные среды в файле конфигурации php-fpm.
Редактируем файл:
sudo nano /etc/php/8.0/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
И сними с них комментарий (;).
Далее перезапустим php8.0-fpm
sudo service php8.0-fpm restart
Значение PHP ниже рекомендуемого значения .
Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.
В терминале набираем:
sudo nano /etc/php/8.0/fpm/php.ini
Находим и редактируем следующие строки:
max_execution_time = 300
max_input_time = 600
memory_limit = 512M
post_max_size = 20M
upload_max_filesize = 40M
Не скачиваются файлы больше 1Гб
При попытках скачать из облака файлы объемом более 1гб скачивание прерывается при достижении 1гб. Такое происходит при условии использования Nginx как реверс-прокси. Решается очень просто, нужно добавить в конфигурационный файл сайта опцию «proxy_buffering off». Открываем и добавляем эту опцию:
server {
…
proxy_buffering off;
…
}
[endtxt]
. . . .
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11