Nextcloud
Данная статья описывает частные случаи установки Nextcloud, официально рекомендованный способ его установки описан в документации дистрибутива ОС Альт, например в Руководстве пользователя Альт Сервер 10.1. Также стоит иметь в виду, что Nextcloud присутствует в репозитории p11, но по умолчанию не входит в состав продукта Альт Сервер 11.
В некоторых случаях описанные здесь (или в документации дистрибутива) способы установки (это не касается настройки самого Nextcloud) могут привести к трудно разрешимым проблемам при попытке апгрейда версии Nextcloud до актуальной. В этих условиях может иметь смысл использовать способ установки в виде "All-in-one Docker image" (рекомендованный) или "All-in-one VM image" (ограниченно рекомендованный) по ссылке https://nextcloud.com/install/.
Что такое Nextcloud
Nextcloud — веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке». Файлы Nextcloud хранятся в обычных структурах каталогов и могут быть доступны через WebDAV, если это необходимо. Основной сайт проекта: https://nextcloud.com/. Nextcloud можно установить при установке ALT Linux Server 10.1, выбрав для установки пункт Сервер Nextcloud (подробнее описано в главе Установка системы).
- Руководство пользователя Альт Сервер 10.1
- Сайт: https://nextcloud.com (документация)
- Лицензия: AGPL-3.0
Установка Nextcloud
Установить Nextcloud можно из репозитория или с официального сайта, если не устраивает версия из репозитория.
php<мажорная>.<минорная версии>-<имя модуля>Из репозитория можно установить и эксплуатировать в одной системе одновременно разные версии php.
Из репозитория
Используя Deploy
Развернуть Nextcloud можно используя пакет deploy (см. Deploy):
# apt-get install deploy
# deploy nextcloud
Nextcloud будет установлен в /var/www/webapps/nextcloud, веб-интерфейс будет доступен по ссылке:
http://localhost/nextcloud
Пользователь: ncadmin
Пароль пользователя ncadmin
При разворачивании nextcloud через deploy без параметров пароль пользователя ncadmin будет сгенерирован автоматически и будет совпадать с паролем пользователя базы данных. Поэтому его можно найти в файле /var/www/webapps/nextcloud/config/config.php в параметре dbpassword.
# cd /var/www/webapps/nextcloud/config
# cat config.php|grep 'dbpassword'
Также, чтобы узнать пароль пользователя ncadmin сразу после разворачивания, можно посмотреть значение параметра admin-pass в журнале:
# journalctl -b | grep admin-pass
Смена пароля
Установить пароль пользователю ncadmin можно, выполнив команду (пароль должен быть достаточно сложным и содержать не менее 10 символов):
# deploy nextcloud password=5Z4SAq2U28rWyVz
По шагам (веб-сервер Apache2)
Установить Nextcloud и все необходимые для его работы модули можно, установив пакеты nextcloud и nextcloud-apache2:
# apt-get install nextcloud nextcloud-apache2
Nextcloud будет установлен в /var/www/webapps/nextcloud, файл конфигурации — /var/www/webapps/nextcloud/config/config.php.
В пакет nextcloud-apache2 входит файл настроек виртуального хоста nextcloud: /etc/httpd2/conf/sites-available/nextcloud.conf. Также при установке этого пакета автоматически этот хост включается в разрешенные и включаются все необходимые для оптимальной работы сервиса модули apache2.
Запустить веб-сервер Apache2 и добавить его в автозагрузку:
# systemctl enable --now httpd2
Веб-интерфейс будет доступен по ссылке http://your_web_server_adress/nextcloud
Далее необходимо зайти на веб-интерфейс Nextcloud и завершить установку.
По шагам (веб-сервер nginx)
Для установки Nextcloud с веб-сервером nginx необходимо установить пакеты (с зависимостями):
- в p11:
# apt-get install nextcloud nextcloud-nginx php8.3-{fpm-fcgi,opcache} # systemctl enable --now php8.3-fpm
- Не забудьте установить СУБД (MariaDB, SQLite или PostreSQL) и php-pdo для выбранной СУБД (по зависимостям устанавливаются php8.3-pdo_sqlite и libsqlite3, но разработчики nextcloud его не рекомендуют): см. https://www.altlinux.org/Nextcloud#Выбор_БД
- Для нагруженного сервера имеет смысл установить пакет для кэширования (php8.3-apcu, php8.3-memcached,php8.3-redis, понадобится дополнительная настройка):
# apt-get install php8.3-apcu
- в p10:
# apt-get install nextcloud nextcloud-nginx php8.2-{fpm-fcgi,apcu,opcache} # systemctl enable --now php8.2-fpm
- в p9:
# apt-get install nextcloud nextcloud-nginx php7-{fpm-fcgi,apcu,opcache} # systemctl enable --now php7-fpm
Пакет nextcloud-nginx включает файл настроек виртуального хоста nextcloud: /etc/nginx/sites-available.d/nextcloud.conf.
В файле /etc/nginx/sites-available.d/nextcloud.conf проверьте версию php и, если она отличается от установленной, измените её:
server unix:/var/run/php8.3-fpm/php8.3-fpm.sock;
и имя сервера в поле server_name.
Включить виртуальный хост и запустить веб-сервер:
# ln -s /etc/nginx/sites-available.d/nextcloud.conf /etc/nginx/sites-enabled.d/
# systemctl enable --now nginx
Веб-интерфейс будет доступен по ссылке http://your_web_server_adress/nextcloud
Далее необходимо зайти на веб-интерфейс Nextcloud и завершить установку.
Также можно настроить получение сертификатов от Let's Encrypt, например, с помощью пакета dehydrated.
С официального сайта Nextcloud с сервером Apache2 (с помощью веб-установщика)
Подготовка окружения
Для работы Nextcloud нужен настроенный веб-сервер. Потребуется установить следующие пакеты[1][2]:
# apt-get install apache2 apache2-mod_ssl apache2-mod_php8.3 tzdata php8.3
# apt-get install php8.3-{curl,dom,exif,fileinfo,gd2,gmp,imagick,intl,libs,mbstring,memcached,opcache,openssl,pcntl,pdo,xmlreader,zip}
$ apt-cache depends nextcloud nextcloud-apache2
Разрешим нужные модули Apache2:
# for mod in dir env headers mime rewrite ssl; do a2enmod $mod; done
Запустим веб-сервер Apache2 и добавим его в автозагрузку:
# systemctl enable --now httpd2
Установка
С сайта https://nextcloud.com/install/ (раздел «Download» -> «Web-installer») необходимо скачать в корень веб-сервера /var/www/html файл setup-nextcloud.php, например:
# cd /var/www/html/
# wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
У веб-сервера должны быть права на запись в каталог с файлом setup-nextcloud.php. Права можно назначить, временно, добавив пользователя apache2 в группу webmaster:
# gpasswd -a apache2 webmaster
# systemctl restart httpd2
Далее переходим по ссылке http://your_web_server_adress/setup-nextcloud.php и следуем инструкциям установщика.
По умолчанию Nextcloud устанавливается в подкаталог nextcloud (например, /var/www/html/nextcloud).
После установки удалим пользователя apache2 из группы webmaster:
# gpasswd -d apache2 webmaster
Для завершения установки необходимо создать учетную запись администратора Nextcloud и выбрать тип используемой БД.
# sed -i "s|/usr/share/doc/indexhtml|/var/www/html|" /etc/httpd2/conf/sites-available/{default,default_https}.conf
И затем перезагрузить веб-сервер:
# systemctl restart httpd2
Рекомендации по безопасности
Рекомендуется сменить владельца файлов nextcloud на root, оставив Apache2 доступ на запись к каталогам data, config, apps:
# chown -R root /var/www/html/nextcloud/
# chown -R apache2 /var/www/html/nextcloud/{apps,config,data}/
Завершение установки
Для завершения установки необходимо создать учетную запись администратора Nextcloud и выбрать тип используемой БД.
По умолчанию используется SQLite, но для крупных проектов рекомендуется выбрать другой тип базы данных.
Выбор БД
SQLite
Если будет использоваться база данных SQLite, для создания учётной записи администратора Nextcloud достаточно заполнить поля «Имя пользователя» и «Пароль», и нажать кнопку «Завершить установку».
MySQL/MariaDB для Nextcloud
Если будет использоваться база данных MySQL/MariaDB :
- Установить необходимые пакеты для MySQL или для MariDB (php8.2-pdo_mysql — в p10, php7-pdo_mysql — в p9):
# apt-get install MySQL[mariadb]-server php8.3-pdo_mysql php8.3-mysqlnd- Версия php должна быть указана та, которая использовалась при установке Nextcloud.
- Запустить сервер mysqld и добавить его в автозагрузку:
# systemctl enable --now mysqld (mariadb.service)
- Создать базу данных для Nextcloud:
- авторизоваться на сервере базы данных:
$ mysql -u root
- или, если пароль пользователя root@localhost в MySQL установлен:
$ mysql -u root -p Enter password:
- Выполнить команды для создания базы данных nextcloud и пользователя базы данных nextcloud с паролем nextpass:
MariaDB [(none)]> create user 'nextcloud'@'localhost' identified by 'nextpass'; MariaDB [(none)]> create database nextcloud default character set utf8 collate utf8_unicode_ci; MariaDB [(none)]> grant all privileges on nextcloud.* to nextcloud@localhost; MariaDB [(none)]> exit;
- авторизоваться на сервере базы данных:
- В веб-интерфейсе Nextcloud заполнить поля «Имя пользователя» и «Пароль», раскрыть список «Хранилище и база данных», выбрать «MySQL/MariaDB», и заполнить поля подключения к базе данных, данными, которые использовались на этапе настройки базы данных. Для завершения установки необходимо нажать кнопку «Завершить установку».
PostgreSQL
Для p10 следует установить следующие пакеты (версия postgresql 14):
# apt-get install postgresql14-server php8.2-{pgsql,pdo_pgsql}
Для p9 следует установить следующие пакеты (версия postgresql 9.6):
# apt-get install postgresql9.6-server php7-{pgsql,pdo_pgsql}
Если будет использоваться СУБД PostgreSQL:
- Установить необходимые пакеты:
# apt-get install postgresql17-server php8.3-pgsql php8.3-pdo_pgsql- Версия php должна быть указана та, которая использовалась при установке Nextcloud.
- Подготовить к запуску и настроить службу postgresql:
- создать системные базы данных:
# /etc/init.d/postgresql initdb
- включить по умолчанию и запустить службу postgresql:
# systemctl enable --now postgresql
- создать системные базы данных:
- Создать базу данных Nextcloud:
- создать пользователя nextcloud (пароль необходимо запомнить) и базу данных nextcloud:
# su - postgres -s /bin/bash -c 'createuser --no-superuser --no-createdb --no-createrole --encrypted --pwprompt nextcloud' Введите пароль для новой роли: Повторите его: # su - postgres -s /bin/bash -c 'createdb -O nextcloud nextcloud'
- создать пользователя nextcloud (пароль необходимо запомнить) и базу данных nextcloud:
- В веб-интерфейсе Nextcloud заполнить поля «Имя пользователя» и «Пароль», раскрыть список «Хранилище и база данных», выбрать PostgreSQL, и заполнить поля подключения к базе данных, данными, которые использовались на этапе создания базы данных. Для завершения установки необходимо нажать кнопку «Завершить установку».
Настройка кэширования
Можно значительно повысить производительность сервера Nextcloud с помощью кэширования, при котором часто запрашиваемые объекты сохраняются в памяти для более быстрого извлечения.
Установить следующие пакеты:
# apt-get install php8.3-{apcu,memcached} memcached
Версия PHP должна быть указана та, которая использовалась при установке Nextcloud.
Добавить службу memcached в автозагрузку и запустить её:
# systemctl enable --now memcached
Добавить в config.php (находится в каталоге /var/www/html/nextcloud/config/ или /var/www/webapps/nextcloud/config/ — при установке из репозитория) следующие строки:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Memcached',
'memcache.locking' => '\OC\Memcache\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
),
Доверенные домены
Все URL-адреса, используемые для доступа к серверу Nextcloud, должны быть внесены в белый список в файле config.php в настройках trusted_domains. Пользователям разрешено входить в Nextcloud только в том случае, если они указывают в своих браузерах URL-адрес, указанный в настройке доверенных_доменов.
Пример настройки trusted_domains в файле конфигурации:
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'nextcloud.test.alt',
2 => '192.168.0.123',
),
Настройка SSL
Для правильной работы nextcloud запросы должны идти по https. Для работы SSL необходимы SSL-сертификаты. Их можно купить или сгенерировать.
Создание самоподписных SSL-сертификатов
- Создать и перейти в каталог ~/ssl:
$ mkdir ~/ssl && cd ~/ssl
- Создать закрытый ключ корневого хранилища:
$ openssl genrsa -des3 -out nextcloud-domain-ca.key 2048
- Создать и подписать ключом корневого хранилища корневой сертификат, сертификат издателя сертификатов (при запросе «Common Name» необходимо указать IP-адрес или FQDN вашего сервера):
$ openssl req -new -x509 -days 3650 -key nextcloud-domain-ca.key -out nextcloud-domain-ca.crt
- Создать закрытый ключ веб-сервера, который вы намерены защитить сертификатом:
$ openssl genrsa -des3 -out nextcloud.key 1024
- Создать запрос на подпись сертификата веб-сервера (при запросе «Common Name» необходимо указать IP-адрес или FQDN вашего сервера):
$ openssl req -new -key nextcloud.key -out nextcloud.csr
- Создать и подписать сертификат веб-сервера, используя запрос на подпись сертификата, корневой ключ и корневой сертификат:
$ openssl x509 -req -in nextcloud.csr -out nextcloud.crt -sha1 -CA nextcloud-domain-ca.crt -CAkey nextcloud-domain-ca.key -CAcreateserial -days 3650
- Apache2 будет требовать при запуске пароль к ключу веб-сервера. Если этого не требуется, можно сделать резервную копию ключа веб-сервера:
$ cp nextcloud.key nextcloud.key.dist
- и очистить пароль ключа веб-сервера:
$ openssl rsa -in nextcloud.key.dist -out nextcloud.key
- Создать цепочку сертификатов CA-bundle:
$ cat nextcloud.crt nextcloud-domain-ca.crt > nextcloud.ca-bundle
- В итоге должны получиться следующие файлы:
nextcloud.crt — сертификат сервера nextcloud.csr — запрос на сертификат nextcloud.key — ключ сертификата сервера nextcloud.ca-bundle — ca-bundle файл сайта nextcloud-domain-ca.crt — корневой сертификат nextcloud-domain-ca.key — ключ корневого сертификата
- Скопировать корневой сертификат, сертификат сервера и ca-bundle файл сайта в /var/lib/ssl/certs/, а ключ сертификата сервера в /var/lib/ssl/private/:
# cp /home/user/ssl/nextcloud.key /var/lib/ssl/private/ # cp /home/user/ssl/{nextcloud-domain-ca.crt,nextcloud.crt,nextcloud.ca-bundle} /var/lib/ssl/certs/
Конфигурационный файл Apache2
Теперь создадим конфигурационный файл нашего сайта и настроим SSL-доступ.
Включить 443 порт:
# a2enport https
Скопировать стандартный конфигурационный файл и назовём его nextcloud.conf:
# cd /etc/httpd2/conf/sites-available/
# cp default_https.conf nextcloud.conf
Пример конфигурационного файла /etc/httpd2/conf/sites-available/nextcloud.conf (вместо DNS-имени можно указать IP-адрес):
<IfModule ssl_module>
<VirtualHost *:443>
DocumentRoot "/var/www/html/nextcloud" (завелось после правки в вид "/var/www/html")
ServerName nextcloud.test.alt:443
ServerAdmin webmaster@example.com
ErrorLog "/var/log/httpd2/error_log"
TransferLog "/var/log/httpd2/access_log"
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "/var/lib/ssl/certs/nextcloud.crt"
SSLCertificateKeyFile "/var/lib/ssl/private/nextcloud.key"
SSLCertificateChainFile "/var/lib/ssl/certs/nextcloud.ca-bundle"
SSLCACertificateFile "/var/lib/ssl/certs/nextcloud-domain-ca.crt"
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
<Directory /var/www/html/nextcloud>
AllowOverride All
</Directory>
</VirtualHost>
</IfModule>
Так же можно настроить редирект с http на https добавив в файл конфигурации раздел:
<VirtualHost *:80>
ServerName nextcloud.test.alt
Redirect permanent / https://nextcloud.test.alt/
</VirtualHost>
Добавить сайт nextcloud в разрешенные и перезапустить веб-сервер:
# a2ensite nextcloud
# systemctl restart httpd2
Теперь Nextcloud доступен по адресу https://nextcloud.test.alt/ При первом заходе по https браузер будет ругаться на самоподписанный сертификат (ошибка SEC_ERROR_UNKNOWN_ISSUER) необходимо добавить его в исключения.
Конфигурационный файл nginx
upstream php-handler {
server unix:/var/run/php8.0-fpm/php8.0-fpm.sock;
}
server {
listen 80;
server_name nextcloud.test.alt;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name nextcloud.test.alt;
ssl_certificate /var/lib/ssl/certs/nextcloud.crt;
ssl_certificate_key /var/lib/ssl/private/nextcloud.key;
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag "noindex, nofollow";
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;
add_header X-Frame-Options SAMEORIGIN;
# Path to the root of your installation
root /var/www/webapps/nextcloud;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/webfinger {
return 301 $scheme://$host/index.php/.well-known/webfinger;
}
location = /.well-known/nodeinfo {
return 301 $scheme://$host/index.php/.well-known/nodeinfo;
}
# set max upload size
client_max_body_size 512M;
fastcgi_buffers 64 4K;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff|woff2|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}
Обновление мажорных версий
По умолчанию непоследовательное обновление мажорных версий запрещено (например, с версии 20 сразу до 22), и при попытке доступа к веб-интерфейсу после обновления пакета будет возникать ошибка "Exception: Updates between multiple major versions and downgrades are unsupported". Для того, чтобы обойти эту ошибку, продолжить обновление и получить доступ к веб-интерфейсу, можно сделать следующее. В файле /var/www/webapps/nextcloud/config/config.php в параметре 'version' изменить старую версию на новую. Затем снова перейти в веб-интерфейс, обновить страницу и обновление должно продолжиться.
Collabora Online в Nextcloud
Описание
Collabora Online это мощный онлайн офисный пакет, основанный на LibreOffice, который позволяет работать со всеми основными офисными форматами (документы/таблицы/презентации) прямо в браузере.
Особенности:
- Базовое редактирование
- Поддержка документов:
- DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF
- Импорт/Просмотр Visio, Publisher, + более 100
- WYSIWYG редактор
- Анонимное редактирование файлов доступных для общего пользования
Встраиваемый сервер CODE (Collabora Online Development Edition)
Простой в установке вариант, предназначенный для использования дома или в небольших группах. Производительность несколько ниже, чем в варианте использования отдельного сервера, а также отсутствуют возможности для масштабирования.
Установка:
- Установить приложение «Collabora Online - Built-in CODE Server» («Значок пользователя» → «Приложения» → «Офис и текст» → «Collabora Online - Built-in CODE Server» -> «Скачать и включить»).
- Установить приложение «Nextcloud Office» («Значок пользователя» → «Приложения» → «Офис и текст» → «Nextcloud Office» -> «Скачать и включить»).
- Перейти в «Значок пользователя» → «Параметры сервера» → «Офис» и выбрать пункт «Использовать встраиваемый сервер CODE (Collabora Online Development Edition)»:
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|oc[ms]-provider/.+)\.php(?:$|/) {
на:
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|oc[ms]-provider/.+|.+\/richdocumentscode\/proxy)\.php(?:$|/) {
И перезапустить nginx:
# systemctl restart nginx
Перейти к папкам и файлам на облачном сервисе. Попробовать открыть любой документ или создать новый — он должен открыться в Collabora:
Собственный сервер Collabora Online
В данном разделе приведён пример запуска собственного сервера «Nextcloud Office» на одном сервере с Nextcloud.
Установка и запуск сервера Collabora
Для работы собственного сервера Collabora Online необходимо установить и настроить Podman.
# control fusermount public
Далее необходимо скачать образ Collabora Online:
$ podman pull collabora/code
Запустить образ:
$ podman run -t -d -p 127.0.0.1:9980:9980 -e 'aliasgroup=https://nextcloud.test.alt:443' --restart always --cap-add MKNOD --privileged collabora/code
где:
- контейнер будет слушать сетевые запросы на порту 9980 (параметр -p);
- в параметре aliasgroup должен быть указан хост, на котором работает Nextcloud.
Настройка reverse proxy
Далее надо настроить reverse proxy.
Для пересылки запросов демону Coolwsd на порт 9980 должны быть установлены следующие правила:
- /browser
- /hosting/discovery
- /hosting/capabilities
- /cool/adminws
- /cool
- Подключение к веб-сокету через /cool/(.*)/ws
Веб-сервер Apache2
Загрузить необходимые модули:
# for mod in proxy proxy_wstunnel proxy_http proxy_connect; do a2enmod $mod; done
После этого необходимо правильно сконфигурировать Apache2, в данном примере мы запустим обратный прокси на порту 4443. Его можно также запустить на поддомене (например, office.test.alt).
Создадим в каталоге /etc/httpd2/conf/sites-available/ файл officenextcloud.conf следующего содержания:
<VirtualHost *:4443>
ServerName nextcloud.test.alt:4443
SSLEngine on
SSLCertificateFile "/var/lib/ssl/certs/nextcloud.crt"
SSLCertificateKeyFile "/var/lib/ssl/private/nextcloud.key"
SSLCertificateChainFile "/var/lib/ssl/certs/nextcloud.ca-bundle"
SSLCACertificateFile "/var/lib/ssl/certs/nextcloud-domain-ca.crt"
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLHonorCipherOrder on
ErrorLog "/var/log/httpd2/office_error_log"
TransferLog "/var/log/httpd2/office_access_log"
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from coolwsd
# browser is the client part of Collabora Online
ProxyPass /browser https://127.0.0.1:9980/browser retry=0
ProxyPassReverse /browser https://127.0.0.1:9980/browser
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Capabilities
ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities
# Main websocket
ProxyPassMatch "/cool/(.*)/ws$" wss://127.0.0.1:9980/cool/$1/ws nocanon
# Admin Console websocket
ProxyPass /cool/adminws wss://127.0.0.1:9980/cool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /cool https://127.0.0.1:9980/cool
ProxyPassReverse /cool https://127.0.0.1:9980/cool
# Compatibility with integrations that use the /lool/convert-to endpoint
ProxyPass /lool https://127.0.0.1:9980/cool
ProxyPassReverse /lool https://127.0.0.1:9980/cool
</VirtualHost>
<IfModule ssl_module>
Listen 4443
</IfModule>
Самоподписные сертификаты необходимо добавить в Nextcloud, для покупных сертификатов данное действие не требуется:
# cat /var/lib/ssl/certs/nextcloud.ca-bundle >> /var/www/html/nextcloud/resources/config/ca-bundle.crt
Затем следует добавить сайт в разрешенные и перезапустить Apache2:
# a2ensite officenextcloud
# systemctl restart httpd2
Веб-сервер nginx
Добавить новый блок server в конфигурацию nginx для nextcloud.test.alt (файл /etc/nginx/sites-available.d/nextcloud.conf):
server {
listen 4443 ssl;
server_name nextcloud.test.alt;
ssl_certificate /var/lib/ssl/certs/nextcloud.crt;
ssl_certificate_key /var/lib/ssl/private/nextcloud.key;
# static files
location ^~ /browser {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# Capabilities
location ^~ /hosting/capabilities {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/cool/(.*)/ws$ {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ ^/(c|l)ool {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /cool/adminws {
proxy_pass https://127.0.0.1:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
}
Перезапустить nginx:
# systemctl restart nginx
Проверка конфигурации
Рекомендуется выполнить следующие проверки:
- Возможность доступа клиента к пользовательскому интерфейсу Nextcloud. Используйте браузер или запустите команду:
$ сurl -k https://nextcloud.test.alt/status.php
- или:
$ сurl -k https://nextcloud.test.alt/nextcloud/status.php
- Возможность доступа клиента к Collabora. Используйте браузер или запустите команду:
$ сurl -k https://nextcloud.test.alt:4443/hosting/discovery
- результатом должен быть XML-документ, описывающий возможности клиента WOPI (длинный список различных типов файлов, которые можно открыть). Убедитесь, что содержимое документа отражает правильную схема URL-адресов (https://) .
- Возможность доступа из Nextcloud к Collabora:
$ сurl -k https://nextcloud.test.alt:4443/hosting/discovery
- Возможность доступа из Collabora к пользовательскому интерфейсу Nextcloud:
$ сurl -k https://nextcloud.test.alt/status.php
DNS-имена должны разрешаться как на сервере, так и на клиенте. DNS-имена не должны разрешаться в 127.0.0.1.
Если для Nextcloud и Collabora используются разные домены, убедитесь, что оба сервера доверяют назначенному TLS-сертификату другой системы, а клиент доверяет TLS-сертификатам как Nextcloud, так и Collabora.
Настройка Collabora Online в Nextcloud
- Установить приложение «Nextcloud Office» («Приложения» → «Офис и текст» → «Nextcloud Office» -> «Скачать и включить»).
- Перейти в «Параметры сервера» → «Офис»/«Набор офисных приложений для Nextcloud», выбрать пункт «Использовать собственный сервер». В поле «URL-адрес (и порт) сервера документов Collabora Online» указать адрес сервера Collabora с портом (https://nextcloud.test.alt:4443):
- Если сертификат самоподписной или если, например, нет полной цепочки, то необходимо установить отметку «Отключить проверку сертификата (небезопасно)».
Перейти к папкам и файлам на облачном сервисе. Попробовать открыть любой документ или создать новый — он должен открыться в Collabora:
Обновление Collabora Docker
- Скачиваем свежий образ:
$ podman pull collabora/code
- Выясняем id контейнера:
$ podman ps
- Останавливаем и удаляем старый контейнер:
$ podman stop CONTAINER_ID $ podman rm CONTAINER_ID
- Запускаем новый контейнер:
$ podman run -t -d -p 127.0.0.1:9980:9980 -e 'aliasgroup=https://nextcloud.test.alt:443' --restart always --cap-add MKNOD --privileged collabora/code
Интеграция с LDAP
Nextcloud поставляется с приложением LDAP, позволяющим пользователям LDAP (включая Active Directory и FreeIPA) появляться в списках пользователей Nextcloud.
На сервере LDAP должна быть настроена учётная запись с правами чтения (DN user). От данной учётной записи будет выполняться подключение к серверу каталогов.
# apt-get install php8.2-ldap
# systemctl restart httpd2
Для настройки интеграции базы пользователей с LDAP необходимо в списке приложений Nextcloud включить приложение «LDAP user and group backend».
Ниже показана настройка интеграции с FreeIPA (ipa.example.test).
Перейти на страницу администрирования Nextcloud: «Параметры сервера» -> «LDAP/AD Интеграция» («LDAP/AD integration»). На этой странице необходимо указать параметры подключения к LDAP.
На вкладке «Сервер» нужно указать имя хоста LDAP-сервера, порт и ввести учётные данные пользователя:
- сервер: ipa.example.test;
- порт: 389;
- DN пользователя: uid=nextcloud,cn=users,cn=accounts,dc=example,dc=test
- база поиска (Base DN): dc=example,dc=test
Для базы поиска пользователей и групп можно нажать кнопку «Определить базу поиска DN» — тогда будет определен корень домена. Или можно ввести самому конкретное подразделение.
Проверить конфигурацию можно, нажав на кнопку «Проверить базу поиска DN». При ответе «Конфигурация в порядке» можно продолжать настройку.
На вкладке «Пользователи» («Users») следует указать, какие пользователи LDAP будут отображаться как пользователи Nextcloud. В поле «Фильтр LDAP» указать: (|(objectclass=inetorgperson)(objectclass=person))
На вкладке «Учетные данные» («Login Attributes») следует указать атрибуты, которые можно будет использовать в качестве логина. Например:
- (&(|(objectclass=person))(|(uid=%uid)(|(mailPrimaryAddress=%uid)(mail=%uid)))) — в качестве логина можно использовать имя пользователя или email;
- (&(|(objectclass=inetorgperson)(objectclass=person))(uid=%uid)) — в качестве логина можно использовать имя пользователя.
Проверить данную настройку можно, вписав пользователя FreeIPA в поле «Проверить логин» и нажав на кнопку «Проверить настройки».
На вкладке «Группы» («Groups») необходимо задать фильтры для групп (например, (|(cn=ipausers))):
Вкладка «Дополнительно» («Advanced») -> раздел «Настройки каталога» («Directory Settings»):
- «Поле отображаемого имени пользователя» («User Display Name Field»): displayname
- «База дерева пользователей» («Base User Tree»): cn=users,cn=accounts,dc=example,dc=test
- «База дерева групп» («Base Group Tree»): cn=groups,cn=accounts,dc=example,dc=test
Вкладка «Эксперт» («Expert»):
- «Атрибут для внутреннего имени» («Internal Username Attribute»): uid
- «UUID-атрибуты для пользователей» («UUID Attribute for Users»): uid
Проверить конфигурацию, нажав на кнопку «Проверить конфигурацию».
Просмотреть список пользователей можно в разделе «Пользователи» (должны подгрузиться пользователи из ldap):
Теперь можно попробовать зайти доменным пользователем используя свой логин и пароль.
Настройка SSO
https://nextcloud.test.alt/index.php/login?direct=1.
Для работы прозрачной аутентификации (SSO) необходимо настроить веб-сервер (Apache, Nginx) и настроить интеграцию c LDAP (см. Интеграция с LDAP).
Включить приложение «SSO & SAML authentication».
Далее перейти на страницу администрирования Nextcloud: «Параметры сервера» -> «Подтверждение подлинности SSO и SAML» («SSO & SAML authentication»), выбрать пункт «Использовать переменные окружения», указать переменную REMOTE_USER, установить отметку «Разрешайте аутентификацию только в том случае, если учетная запись существует на каком-либо другом бэкэнде (например, LDAP)», чтобы SSO пускал только известных пользователей.
Решение ошибок в конфигурации Nextcloud
В разделе Параметры сервера ⇾ Общие сведения располагаются сообщения об ошибках, предупреждения или рекомендации. Ниже в статье перечислено решение некоторых из них.
Целостность кода
Ошибка со следующим текстом:
Некоторые файлы не прошли проверку целостности. Список недопустимых файлов… Повторное сканирование…
Одна из причин - программная ошибка в текущей версии. Например, в Nextcloud 34.0.0, установленной с помощью deploy из репозитория. Проблема решается обновлением до версии 34.0.2.
Далее описан процесс обновления Nextcloud:
- В Nextcloud перейдите в раздел Параметры сервера ⇾ Общие сведения. Найдите на странице группу "Обновление" и нажмите на кнопку Открыть окно обновления. В открывшейся странице нажмите на кнопку Start update.
- Во время обновления может появиться ошибка "Check for write permissions". В этом случае вам необходимо сверить владельца и группу папки приложения Nextcloud, включая вложенные файлы и папки, а также папку конфигурации, если на неё указывает мягкая ссылка. Если владелец и группа отличаются от пользователя веб-сервера Apache, то хотя бы на время обновления их нужно переопределить.
Откройте терминал и введите следующие команды:
# Повышение прав пользователя su - # Проверка пользователя веб-сервера Apache. По умолчанию в Альт это apache2, но лучше перепроверить apachectl -S | grep User # Проверка владельца и группы всех папок и файлов, включая вложенные ls -lah /var/www/webapps/nextcloud ls -lah /etc/nextcloud/config # Переопределение владельца и группы chown apache2:apache2 -R /var/www/webapps/nextcloud chown apache2:apache2 -R /etc/nextcloud/config # Повторная проверка владельца и группы ls -lah /var/www/webapps/nextcloud ls -lah /etc/nextcloud/config
- После смены владельца и группы вернитесь на страницу обновления в браузере и нажмите на кнопку Retry update.
Дождитесь окончания процесса обновления и нажмите на кнопку
Disable maintenance mode and continue in the web based updater. - Рекомендуемый шаг, можно пропустить. На данном этапе есть вероятность, что дальнейшее обновление завершится с критической ошибкой, если лимит оперативной памяти 512 мегабайт или ниже. Лимит задан в файле php.ini. В 11 платформе файл находится по адресу: /etc/php/8.3/apache2-mod_php/php.ini.
Узнать текущий лимит можно в разделе Параметры сервера ⇾ Система либо с помощью команды в терминале:cat /etc/php/8.3/apache2-mod_php/php.ini | grep memory_limitОтредактируйте файл от имени пользователя root в любом удобном для вас редакторе и перезапустите службу веб-сервера Apache. Либо воспользуйтесь следующими командами:
# Повышение прав пользователя su - # Замена значения sed -i 's/memory_limit = 512M/memory_limit = 1024M/g' /etc/php/8.3/apache2-mod_php/php.ini # Перезапуск службы веб-сервера Apache systemctl restart httpd2.service # Выход из учётной записи root exit # Повторная проверка лимита cat /etc/php/8.3/apache2-mod_php/php.ini | grep memory_limit
- Теперь вернитесь на страницу обновления Nextcloud и нажмите на кнопку Запустить обновление.
- Готово! После обновления до версии 34.0.2 несовпадение хеш-сумм файлов пропадёт.
Владелец каталога приложений
Предупреждение со следующим текстом:
Владельцем некоторых каталогов не является учётная запись, под которой исполняется процесс web-сервера. Как правило это случается при установке вручную. Проверьте права доступа к следующим каталогам приложения: /var/www/webapps/nextcloud/apps/activity /var/www/webapps/nextcloud/apps/admin_audit ... /var/www/webapps/nextcloud/apps/workflowengine
Владелец и группа папки apps отличаются от пользователя веб-сервера Apache и их нужно переопределить. Откройте терминал и введите следующие команды:
# Повышение прав пользователя
su -
# Проверка пользователя веб-сервера Apache. По умолчанию в Альт это apache2, но лучше перепроверить
apachectl -S | grep User
# Переопределение владельца и группы
chown apache2:apache2 -R /var/www/webapps/nextcloud/apps
Модуль PHP OPcache
Ошибка со следующим текстом:
Модуль PHP OPcache настроен неправильно. Модуль OPcache подсистемы PHP не загружен. Для повышения производительности рекомендуется его установить.
Для установки модуля откройте терминал и введите следующие команды:
# Повышение прав пользователя
su -
# Обновления кэша пакетов репозиториев и установка модуля
apt-get update && apt-get install php8.3-opcache
Откройте в любом удобном для вас редакторе файл /etc/php/8.3/apache2-mod_php/php.d/opcache.ini. Измените значение параметра opcache.interned_strings_buffer с 8 на 32, а затем перезапустите веб-сервер Apache.
Либо в терминале введите следующие команды:
# Повышение прав пользователя
su -
# Замена значения
sed -i 's/opcache.interned_strings_buffer = 8/opcache.interned_strings_buffer = 32/g' /etc/php/8.3/apache2-mod_php/php.d/opcache.ini
# Перезапуск веб-сервера для применения изменений в настройках модуля
systemctl restart httpd2.service
Начало окна обслуживания
Ошибка со следующим текстом:
Не настроено время начала окна обслуживания. Это означает, что ресурсоемкие ежедневные фоновые задачи будут выполняться во время основного использования. Рекомендуется установить время в период низкой активности, чтобы снизить влияние выполнения ресурсоемких процедур на пользователей.
Перейдите в раздел Параметры сервера ⇾ Основные параметры. В группе "Фоновые задания" установите переключатель в положение "Cron".
От имени пользователя root откройте файл конфигурации Nextcloud, расположенный по пути /var/www/webapps/nextcloud/config/config.php. Добавьте параметр maintenance_window_start с необходимым вам значением, например 20:
'maintenance_window_start' => 20,
Этот параметр задаёт в часах (временная зона - UTC) начало окна обслуживания. Окно обслуживания длится 4 часа.
Например, если задать значение 20, то выполнение обслуживания будет происходить с 23:00 до 02:00 по времени Москвы.
Если задать значение 100, то выполнение ресурсоемких задач будет выполняться одновременно с обычными заданиями планировщика Cron.
Не забудьте добавить выполнение обычных заданий Nextcloud в планировщик Cron:
# Повышение прав пользователя
su -
# Открытие планировщика задач от имени пользователя веб-сервера Apache в редакторе nano
EDITOR=nano crontab -u apache2 -e
Добавьте в конце файла следующую строку, чтобы задание выполнялось каждые 10 минут и сохраните файл:
*/10 * * * * php -f /var/www/webapps/nextcloud/cron.php
Доступны миграции Mimetype
Предупреждение со следующим текстом:
Доступны одна или несколько миграций mimetype. Иногда добавляются новые mimetype для лучшей обработки определенных типов файлов. Миграция mimetype занимает много времени на больших экземплярах, поэтому она не выполняется автоматически во время обновлений. Используйте команду `occ maintenance:repair --include-expensive` для выполнения миграций.
-
Из текста предупреждения понятно какую команду нужно выполнить. Однако, по умолчанию, лимит памяти для командного интерфейса PHP установлен в 128 мегабайт. Этого может оказаться недостаточно, поэтому нужно сначала его увеличить до 2048 мегабайт.
Узнать текущий лимит можно с помощью команды в терминале:cat /etc/php/8.3/cli/php.ini | grep memory_limit -
Отредактируйте файл от имени пользователя root в любом удобном для вас редакторе и перезапустите службу веб-сервера Apache. Либо воспользуйтесь следующими командами:
# Повышение прав пользователя su - # Замена значения sed -i 's/memory_limit = 128M/memory_limit = 2048M/g' /etc/php/8.3/cli/php.ini # Перезапуск службы веб-сервера Apache systemctl restart httpd2.service # Выход из учётной записи root exit # Повторная проверка лимита cat /etc/php/8.3/cli/php.ini | grep memory_limit
-
Откройте терминал и выполните следующие команды:
sudo -u apache2 php /var/www/webapps/nextcloud/occ maintenance:repair --include-expensive
Заголовки HTTP
Предупреждение со следующим текстом:
Некоторые заголовки в вашем экземпляре установлены неправильно - Заголовок HTTP «Strict-Transport-Security» не установлен (должен быть настроен как минимум на `15552000` секунд. Для улучшения безопасности рекомендуется включить HSTS.
От имени пользователя root откройте в текстовом редакторе файл /var/www/webapps/nextcloud/.htaccess.
Найдите строку с текстом <IfModule mod_headers.c> и под ней добавьте новую строку со следующим текстом:
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
Телефонный регион по умолчанию
Рекомендация со следующим текстом:
В вашей установке не установлен телефонный регион по умолчанию. Это необходимо для проверки телефонных номеров в настройках профиля без указания кода страны. Чтобы разрешить использование номеров без кода страны, пожалуйста, добавьте "default_phone_region" с соответствующим кодом региона ISO 3166-1 в свой конфигурационный файл.
От имени пользователя root откройте в текстовом редакторе файл /var/www/webapps/nextcloud/config/config.php.
Внутри массива $CONFIG = array () добавьте следующие параметр и значение:
'default_phone_region' => 'RU',
ID сервера конфигурации
Рекомендация со следующим текстом:
Идентификатор сервера не настроен. Рекомендуется использовать его, если ваш экземпляр Nextcloud работает на нескольких PHP-серверах. Добавьте идентификатор сервера в конфигурацию.
От имени пользователя root откройте в текстовом редакторе файл /var/www/webapps/nextcloud/config/config.php.
Внутри массива $CONFIG = array () добавьте параметр serverid с необходимым вам значением (например, 1):
'serverid' => '1',
Язык пользователя по умолчанию
Если при создании нового пользователя вы хотите, чтобы у него язык интерфейса был русский, то от имени пользователя root откройте в текстовом редакторе файл /var/www/webapps/nextcloud/config/config.php.
Внутри массива $CONFIG = array () добавьте следующие параметр и значение:
'default_language' => 'ru',
Тестовое письмо
Рекомендация со следующим текстом:
Параметры сервера электронной почты ещё не заданы или не проверены. Чтобы произвести настройку, перейдите в раздел основных параметров, после чего для проверки нажмите кнопку «Отправить сообщение».
В разделе Параметры сервера ⇾ Основные параметры в группе настроек "Почтовый сервер" внесите параметры вашего почтового ящика, включая шифрование, адрес почты с доменом, адрес сервера с портом и данные аутентификации. Нажмите на кнопку Отправить тестовое письмо.
Подключение почтового ящика к Nextcloud позволит избежать появления ошибок в системном журнале после регистрации новых пользователей в системе.
Модуль PHP Sodium
Рекомендация со следующим текстом:
На этом сервере не установлены некоторые рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить следующие модули: - apcu - sodium для использования функции Argon2 для хэширования паролей
Для установки модуля откройте терминал и введите следующие команды:
# Повышение прав пользователя
su -
# Обновления кэша пакетов репозиториев и установка модуля
apt-get update && apt-get install php8.3-sodium
Адреса .well-known
Предупреждение со следующим текстом:
Ваш веб-сервер неправильно настроен для решения `.well-known` URL-адреса, сбой при: `/.well-known/webfinger`
Убрать это предупреждение в версии 34.0.2 не удалось. Скорее всего, это программная ошибка. Однако, вам обязательно нужно проверить наличие и корректность перенаправлений:
- От имени пользователя root откройте в текстовом редакторе файл /var/www/webapps/nextcloud/.htaccess.
-
Найдите строку с началом блока <IfModule mod_rewrite.c>. Убедитесь, что в этом блоке есть следующие строки:
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L] RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L] RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L] RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]
- Проверьте в браузере, что перенаправления работают. По очереди открывайте адреса, указанные в файле .htaccess:
Решение ошибок в системном журнале
В разделе Параметры сервера ⇾ Системный журнал располагаются сообщения об ошибках и предупреждения. Ниже в статье перечислено решение некоторых из них.
Критическая ошибка webhook_listeners
Критическая ошибка со следующим текстом:
TypeError Could not boot webhook_listeners: json_decode(): Argument #1 ($json) must be of type string, false given
Ошибка появляется периодически в системном журнале без видимых причин.
Если вы не используете веб-хуки (webhooks), в разделе Приложения ⇾ Активные приложения найдите и отключите приложение "Nextcloud Webhook Support".
Ошибка после регистрации пользователя
Ошибка со следующим текстом:
ForbiddenException Following symlinks is not allowed Could not load storage info for ...
Ошибка возникает в системном журнале после регистрации нового пользователя в системе.
Связана она с тем, что после установки Nextcloud из репозитория Альт через Deploy папка с данными является мягкой ссылкой на другой каталог. Разработчики Nextcloud считают переход по мягким ссылкам небезопасным. Путей решения несколько, среди которых:
- Расположить данные в другой папке или в другом разделе диска или на другом накопителе и монтировать их по пути /var/www/webapps/nextcloud/data
- Перенести папку с данными в папку nextcloud
Для выполнения второго решения откройте терминал и введите следующие команды:
# Повышение прав пользователя
su -
# Удаление мягкой ссылки
rm -f /var/www/webapps/nextcloud/data
# Перемещение папки с данными внутрь папки с программой
mv -f /var/lib/nextcloud /var/www/webapps/nextcloud/data
# Изменение владельца, группы и прав у папки с данными
chown apache2:apache2 -R /var/www/webapps/nextcloud/data
chmod 755 /var/www/webapps/nextcloud/data
Примечания
- ↑ В старых версиях Nextcloud требовался php7 и его пакеты, так что зависимости по мере устаревания этой статьи нужно уточнять на официальном сайте Nextcloud.
- ↑ Вместо сервера Арache2 может использоваться сервер Nginx.
- ↑ При использовании nginx необходимые для него пакеты покажет команда apt-cache depends nextcloud-nginx
- ↑ Версию php необходимо указать свою











