Если вы хотите изменить расположение папки data в Nextcloud snap, это папка, в которой хранятся данные, то для этого есть два способа.
1 способ до того как вы создали учетную администратора и 2 способ после того как вы создали учетную администратора.
Содержание
- 1 способ
- Рекомендации к 1 способу
- Создаем папку
- Меняем пользователя и группу
- Назначаем права
- Обновляем конфигурацию Nextcloud
- 2 способ
- Рекомендации к 2 способу
- Создаем папку
- Обновляем конфигурацию Nextcloud
- Отключаем Nextcloud
- Переносим каталог с данными
- Запускаем Nextcloud
- Видео Как изменить расположение папки data в Nextcloud snap
1 способ
Рекомендации к 1 способу
В документации папку data рекомендуется монтировать в каталог /media/ или /mnt/.
Но на деле сменить хранилище фалов удалось только когда я расположил его в папке /mnt/.
В каталоге /media/ выдает ошибку: Ошибка Невозможно создать или записать в каталог данных /media/nextcloud/data.
Так же я пробовал указать расположение в каталоге /home.
Интересно, что nextcloud не выдал ошибку как при размещении в каталог /media/, а завершил установку, но если проверить папку где должен располагаться каталог data, то там пусто, а все файлы хранилища находятся по стандартному пути.
Перейдем к смене каталога.
Создаем папку
Создаем папку, в которой у нас будет хранилище файлов, по пути /mnt/nextcloud/data:
sudo mkdir -p /mnt/nextcloud/data
Меняем пользователя и группу
Меняем пользователя и группу каталога на root:
sudo chown -R root:root /mnt/nextcloud/data
Назначаем права
Назначаем права 0770 на каталог /mnt/nextcloud/data:
sudo chmod 0770 /mnt/nextcloud/data
Обновляем конфигурацию Nextcloud
Открываем для редактирования конфиг /var/snap/nextcloud/current/nextcloud/config/autoconfig.php:
sudo vi /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
Находим там строчку ‘directory’ => getenv(‘NEXTCLOUD_DATA_DIR’), и меняем ее на
'directory' => '/mnt/nextcloud/data',
Перезапускаем php:
sudo snap restart nextcloud.php-fpm
Заходим через веб Nextcloud и дальше как обычно создаем пользователя администратора и дожидаемся окончания установки.
Если до изменений конфига вы зашли на веб страницу вашего Nextcloud, не забудьте обновить ее после изменений конфига перед тем как создавать пользователя.
2 Способ
Рекомендации к 2 способу
Тут, я так понимаю, можно монтировать в любой каталог.
Но и здесь тоже есть проблемы с каталогом /media/.
Ошибка Убедитесь, что в корне каталога данных присутствует файл «.ocdata».
Хотя файл на месте и все права назначены.
Если монтировать в каталог /mnt/ и /home/, то все прекрасно работает.
Создаем папку
Создаем папку, в которой у нас будет хранилице файлов, по пути /mnt/nextcloud:
sudo mkdir -p /mnt/nextcloud
Обновляем конфигурацию Nextcloud
Открываем для редактирования конфиг /var/snap/nextcloud/current/nextcloud/config/config.php:
sudo vi /var/snap/nextcloud/current/nextcloud/config/config.php
Находим там строчку ‘datadirectory’ => ‘/var/snap/nextcloud/common/nextcloud/data’, и меняем ее на
'datadirectory' => '/mnt/nextcloud/data',
Отключаем Nextcloud
Для отключения nextcloud вводим в терминал:
sudo snap disable nextcloud
Переносим каталог с данными
Переносим каталог с данными data:
sudo mv /var/snap/nextcloud/common/nextcloud/data /mnt/nextcloud/
Запускаем Nextcloud
Для запуска Nextcloud вводим в терминал:
sudo snap enable nextcloud
Каталог с данными перенесен.
Prerequisites
The partition you want to use must be mounted somewhere in /media/
or /mnt/
. These are the only locations the snap can access under confinement with the removable-media
plug. Connect the removable-media
plug as mentioned in the README in order to grant the snap permission to access external drives.
If you just installed the snap, and haven’t created an admin user yet
-
Decide where you want the new data to live. We’ll use
/media/nextcloud/data
. Make sureroot
has write access, but it’s not accessible by others, for example:$ sudo mkdir -p /media/nextcloud/data $ sudo chown -R root:root /media/nextcloud/data $ sudo chmod 0770 /media/nextcloud/data
Important: Posix permissions take the entire path into account. Even if the
data
directory above is writable by root, if any part of the path above it (e.g./media
, or/media/nextcloud
) is not accessible by root, it will not be able to accessdata
either. -
Update the Nextcloud config to use the new data directory by editing
/var/snap/nextcloud/current/nextcloud/config/autoconfig.php
and making sure thedirectory
setting is pointing to the right place, e.g.:// ... 'directory' => '/media/nextcloud/data', // ...
-
Now, restart the PHP service:
$ sudo snap restart nextcloud.php-fpm
If you visited Nextcloud before now, refresh to re-evaluate the changed config (otherwise the
directory
won’t change from the default). -
Make your admin user as usual and carry on, Nextcloud is using the external data.
If you have already created an admin user
-
Decide where you want the new data to live. We’ll use
/media/nextcloud/data
, but thedata
directory will be created by moving the existing data into place, so we only need to setup/media/nextcloud
right now (although you’ll still want to make sure it’s owned by root):$ sudo mkdir -p /media/nextcloud $ sudo chown -R root:root /media/nextcloud
-
Stop the snap from running for a moment:
$ sudo snap stop nextcloud
-
Update the Nextcloud config to use the new data directory by editing
/var/snap/nextcloud/current/nextcloud/config/config.php
and making sure thedatadirectory
setting is pointing to the right place, e.g.:// ... 'datadirectory' => '/media/nextcloud/data', // ...
-
Move (or copy) the current data directory to the new place:
$ sudo mv /var/snap/nextcloud/common/nextcloud/data /media/nextcloud/
-
Restart the snap:
$ sudo snap start nextcloud
And you should be up and running using external storage for Nextcloud’s data.
Собственный облачный сервер
В этой статье покажу как легко и быстро с минимальными настройками поднять личный облачный сервер NextCloud на операционной системе Ubuntu.
В качестве сервера подойдет любой компьютер или виртуальная машина, которая соответствует минимальным требованиям Ubuntu Server 20.04
Я буду использовать виртуальную машину:
CPU: 2 core 3.0Ghz
ОЗУ: 2Gb
SSD: 10Gb
HDD: 1Tb
Ubuntu 20.04 будет установлена на SSD накопитель, после установки операционной системы и nextcloud вся система занимает 4.7 Gb. А для хранения файлов использую отдельный HDD размером 1 Тб (для надежности рекомендую использовать 2 одинаковых HDD с зеркалированием — RAID1)
Установка Ubuntu Server + NextCloud
Сразу ставлю OpenSSH server
И еще проще когда сразу предлагают nextcloud установить
Если на этом этапе не выбрать, то можно после установки набрать команду
sudo snap install nextcloud
Далее обновляю и ставлю пакеты, которые мне нужны будут вдальнейшем.
apt update
apt upgrade
apt install mc net-tools smbclient -y
Перезагружаю и открываю в браузере ссылку с IP адресом сервера http://IP_ADDRESS
Создаю учетную запись администратора, устанавливаю пароль. Отказываюсь от установки рекомендуемых приложений. На этом основная часть установки завершена.
Хранение пользовательских файлов на другом диске
Так как система у меня на SSD диске объемом 10Gb этого очень мало для хранения моих данных и хотелось бы сделать чтобы данные хранились на другом диске HDD 1Tb который так же подключен к этому серверу.
По умолчанию данные хранятся в папке /var/snap/nextcloud/common/nextcloud/data/ Если у вас система установлена на диске с большим объемом и не смущает данное расположение, то можно этот шаг пропустить.
Дальнейшие действия удобнее проделывать через SSH Putty
Создаю удобную папку для хранения
Узнаю UUID диска HDD 1Tb и копирую его
Настройка автоматического монтирования диска при запуске системы, монтирую диски и проверяю корректность
nano /etc/fstab
UUID=36276a15-1ca6-4c86-9309-288c6c825ae6 /mnt/nextcloud ext4 defaults 0 0
mount -a
df -h или lsblk
Копирую файлы из папки по умолчанию в свою папку
cp -a /var/snap/nextcloud/common/nextcloud/data/. /mnt/nextcloud/data
Редактирую конфигурационный файл.
nano /var/snap/nextcloud/23171/nextcloud/config/config.php
Вместо 23171 у вас будут свои цифры. Нужна строка datadirectory указал свой путь:
‘datadirectory‘ ⇒ ‘/mnt/nextcloud/data‘
snap disable nextcloud
snap enable nextcloud
Также нужно предоставить snap разрешение на доступ к съемным носителям (/mnt)
snap connect nextcloud:removable-media
Настройка домена и HTTPS
Для удобного доступа через интернет к данному серверу необходим домен и внешний IP адрес.
Для теста создаю домен 3 уровня: nc.akmalov.com
В DNS настройках домена указываю внешний адрес виртуального маршрутизатора, а на маршрутизаторе 80 и 443 порты направляю сервер NextCloud (проброс портов)
Добавляю в конфигурации NextCloud доменное имя
nano /var/snap/nextcloud/23171/nextcloud/config/config.php
snap disable nextcloud
snap enable nextcloud
Проверяю доступ к серверу через интернет до доменному имени, должен быть доступен по http (80 порту)
Запрашиваю SSL сертификат в lets-encrypt
sudo nextcloud.enable-https lets-encrypt
-
In order to register with the Let’s Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here:
<https://letsencrypt.org/repository/>
By continuing to use this tool you agree to these terms. Please cancel now if otherwise.
-
You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine.
-
Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router).
- Вы принимаете соглашение которое врядли прочитаете
- У вас должен быть домен который ведет к белому IP адресу
- Порты с белого IP адреса попадают на ваш сервер по портам 80 и 443
Если все готово продолжаю, нажимаю да, указываю email и доменное имя.
Все готово первоначальная настройка выполнено. Теперь можно заходить с любой точки, с приложения на телефоне или компьютере где есть интернет.
Дополнительно
NextCloud очень удобное и интуитивно понятное решение. Имеет удобное приложение на смартфоны, компьютеры, можно заходить через любой web-браузер и без установки приложений.
Можно делится документами, создавать пользователей с гибкими правами доступа на разные папки. Создавать ссылки с парольной защитой или без авторизации к определенным папкам или файлам. Открыть доступ к папке куда другие люди смогут скидывать свои файлы. Ограничивать папки по размеру и еще множество других функций для удобного управления файловым хранилищем.
На этом функционал не заканчивается, в nextcloud имеется возможность добавлять дополнительные пакетные приложения
Например для совместной работы с документами, аналог корпоративного мессенджера с видеозвонками и общим чатом, для интеграции с другими популярными сервисами, удаление дубликатов фотографий, для безопасности и многое многое другое.