sysadmin:nextcloud

Это старая версия документа!


Nextcloud

Перейти в каталог с nextcloud

/var/www/nextcloud

Выполнить команду occ

sudo -u www-data php occ {команда}

Источник для версии 28.х

Включен

php occ maintenance:mode --on

Выключен

php occ maintenance:mode --off
 sudo -u www-data php /path_to_nextcloud/occ user:resetpassword User_Login 
 sudo -u www-data php /path_to_nextcloud/occ user:list 

выполним команду с правили пользователя веб-сервера www-datа. Ключ files:scan ищет новые файлы и обновляет файловый кеш.

cd /var/www/nextcloudsudo -u www-data php occ files:scan --all

например с именем username, команда немного отличается.

cd /var/www/nextcloudsudo -u www-data php occ files:scan username

При установленном nextcloud в контейнере

docker exec -it nextcloud sudo -u abc php /config/www/nextcloud/occ db:add-missing-indices

что требуется для возможности проверки номеров телефонов без указания кода страны. Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с ISO 3166-1.

Добавить в config.php

'default_phone_region' => 'RU',

Для лучшей совместимости рекомендуется установить его.

apt install imagemagick

Есть два варианта

files:scan

каждую минуту через крон (не айс).
И есть недокументированная опция

'filesystem_check_changes' => 1

в конфиге и не нужен крон.

Поместите их в директорию:

%CLOUD_ROOT%/core/skeleton

где %CLOUD_ROOT% — директория, в которую установлено облако.

в Параметры сервера → Журналирование При нахождении Nextcloud за NGINX proxy maneger (NPM), необходимо в NPM в раздел Advanced необходимого хоста внести запись

add_header X-Frame-Options "SAMEORIGIN";

или для большей безопасности

proxy_hide_header Upgrade;
proxy_hide_header X-Powered-By;
add_header Content-Security-Policy "upgrade-insecure-requests";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Cache-Control "no-transform" always;
add_header Referrer-Policy no-referrer always;
add_header X-Robots-Tag none;

,а в

nano /var/www/nextcloud/config/config.php

добавить

'trusted_proxies' =>
  array (
    0 => 'IP_address proxy',
  ),
  'forwarded_for_headers' =>
  array (
    0 => 'HTTP_X_FORWARDED_FOR',
  ),

Источник

Что бы реаьный IP отражался и в журнале nextcloud и в log файлах сервера надо убрать настройки Advanced

add_header X-Frame-Options "SAMEORIGIN";

или

proxy_hide_header Upgrade;
proxy_hide_header X-Powered-By;
add_header Content-Security-Policy "upgrade-insecure-requests";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Cache-Control "no-transform" always;
add_header Referrer-Policy no-referrer always;
add_header X-Robots-Tag none;

Добавить настройки config.php

'trusted_proxies' =>
  array (
    0 => 'IP_address proxy',
  ),
  'forwarded_for_headers' =>
  array (
    0 => 'HTTP_X_FORWARDED_FOR',
  ),

Открыть

mcedit /etc/nginx/nginx.conf

добавить в раздел

http {

# ...

##
# Logging Settings
##

log_format specialLog '$remote_addr forwarded for $http_x_real_ip - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';

access_log /var/log/nginx/access-special.log specialLog;

проверим конфиг и перезагрузим nginx

nginx -t
nginx -s reload

Источник

'default_language' => 'ru',
'default_locale' => 'ru_RU',
'force_language' => 'ru',
'default_phone_region' => 'RU',

Дополнительная информация представлена в документации.

Буфер интернированных строк OPcache почти заполнен. Чтобы обеспечить эффективное кэширование повторяющихся строк, рекомендуется установить opcache.interned_strings_buffer в конфигурации PHP со значением выше, чем 8.

sudo nano /etc/php/8.1/fpm/php.ini

добавить

opcache.interned_strings_buffer=16

перезагрузить fpm

sudo systemctl restart php8.1-fpm

Следующая опция для тех, кто обновился выше 20 версии и при заходе на главную облака видит новый dashboard вместо знакомого списка файлов.

Исправляется просто добавлением в файл config.php следующей строки

'defaultapp' => 'files',

Для доступа к файлам, используя обратный прокси, особых настроек делать не надо, достаточно в директиве proxy_pass указать IP сервера с Nextcloud. Однако, если вы используете клиент Nextcloud, то он при авторизации запустит окно браузера с IP сервера Nextcloud, а не его доменным именем. Чтобы это исправить, делаем следующее:

Для примера IP обратного прокси — 192.168.0.1, IP Nextcloud-сервера — 192.168.0.2

В файле nextcloud/config/config.php

'trusted_domains' =>
array (
0 => '192.168.0.2',
1 => '192.168.0.1',
),

'overwritehost' => 'domain.name.example.org',
'overwriteprotocol' => 'https',
'overwritewebroot' => '',
'overwritecondaddr' => '^192\.168\.0\.1$',
'overwrite.cli.url' => 'https://domain.name.example.org',

'trusted_proxies' =>
array (
    0 => '192.168.0.1',
),

Таким образом, опция trusted_proxies исправляет проблему «Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси»

Этот пункт можно пропустить, если настраиваете облако на локальный диск, а не на отдельную машину с доступом по nfs

Ставим nfs-client

sudo apt install nfs-common -y

Монтируем папку nfs

sudo mkdir -p /nfs/nc
sudo mount your_host_ip:/папка_шары_nfs/ /nfs/nc
sudo ls -l /nfs/nc/
sudo df -h
sudo du -sh /nfs/nc/

Монтируем nfs при загрузке

sudo nano /etc/fstab

Добавим такую строку в конец файл

your_host_ip:/папка_шары_nfs/  /nfs/nc  nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

потребовалось изменить в файле /etc/nginx/

add_header X-Robots-Tag none;

на

add_header X-Robots-Tag "noindex, nofollow" always;

В настоящее время вы используете PHP 8.1.33. PHP 8.1 устарел с момента выхода Nextcloud 30. Nextcloud 32 может потребовать как минимум PHP 8.2. Пожалуйста, обновитесь до одной из официально поддерживаемых версий PHP, предоставляемых PHP Group, как можно скорее. За дополнительными сведениями обратитесь к документации

Рекомендуемая версия 8.2

NC на NGINX + php-fpm

Обновление

Сначала необходимо добавить репозитории для PHP 8.2:

sudo apt-get install ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Теперь посмотрим перечень пакетов php, которые установлены в системе:

sudo apt list --installed php8*

Все эти пакеты нужно будет обновить до версии 8.2. Запускаем установку обновленных пакетов:

sudo apt install -y php8.2-apcu php8.2-bcmath php8.2-bz2 php8.2-cli php8.2-common php8.2-curl php8.2-fpm php8.2-gd php8.2-gmp php8.2-igbinary php8.2-imagick php8.2-imap php8.2-intl php8.2-ldap php8.2-mbstring php8.2-opcache php8.2-pgsql php8.2-readline php8.2-redis php8.2-smbclient php8.2-xml php8.2-zip php8.2 php8.2-msgpack php8.2-memcached

После установки новой версии PHP не забываем скорректировать лимиты по потреблению памяти. Для сервера NextCloud рекомендуется установить потолок в 1 ГБ:

sudo nano /etc/php/8.2/fpm/php.ini
memory_limit = 1024M

Теперь отключим PHP 8.1 и включим PHP 8.2

mcedit /etc/nginx/sites-available/MY_SITE

Изменить на

upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/run/php/php8.2-fpm.sock;

Раскомментировать в

mcedit /etc/php/8.2/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

Расскомментировать строку в

mcedit /etc/php/8.2/fpm/php.ini
opcache.interned_strings_buffer = 16

Перезапустить NGINX и PHP-pfm

systemctl restart nginx
systemctl restart php8.2-fpm

Полезные ссылки

Тюнинг Nextcloud

Обновление php

Установка PHP 8.3 на Debian 12 Bookworm после блокировки репозитория deb.sury.org

  • Последнее изменение: 18:10:2025 23:55