Облачный сервер Nextcloud: различия между версиями
Владимир (обсуждение | вклад) мНет описания правки |
Владимир (обсуждение | вклад) мНет описания правки |
||
| Строка 4: | Строка 4: | ||
<br /> | <br /> | ||
==Настройка Proxmox для Nextcloud== | |||
Наше облако базируется на системном хранилище local-lvm, а вот сами данные будут храниться на SSD на 960 гигабайт из Китая. Пока без рейда (. | Наше облако базируется на системном хранилище local-lvm, а вот сами данные будут храниться на SSD на 960 гигабайт из Китая. Пока без рейда (. | ||
| Строка 17: | Строка 17: | ||
<br /> | <br /> | ||
===Подключение накопителя к Proxmox=== | |||
<br /> | <br /> | ||
====Просмотр разделов==== | |||
Смотрим что там у нас по разделам. | Смотрим что там у нас по разделам. | ||
'''lsblk''' | '''lsblk''' | ||
| Строка 34: | Строка 34: | ||
<br /> | <br /> | ||
====Создание раздела==== | |||
На ней и создадим раздел. | На ней и создадим раздел. | ||
fdisk /dev/sda | fdisk /dev/sda | ||
| Строка 56: | Строка 56: | ||
<br /> | <br /> | ||
====Форматирование раздела==== | |||
от его и нужно форматировать в ext4. | от его и нужно форматировать в ext4. | ||
mkfs.ext4 /dev/sda1 | mkfs.ext4 /dev/sda1 | ||
| Строка 67: | Строка 67: | ||
<br /> | <br /> | ||
====ID разделов==== | |||
Делать будем по '''ID накопителя'''. Узнаем: | Делать будем по '''ID накопителя'''. Узнаем: | ||
blkid | blkid | ||
| Строка 76: | Строка 76: | ||
<br /> | <br /> | ||
====Монтирование раздела==== | |||
Создадим каталог, в который будет монтироваться раздел. Назовем его SATA2 | Создадим каталог, в который будет монтироваться раздел. Назовем его SATA2 | ||
mkdir /var/lib/SATA2 | mkdir /var/lib/SATA2 | ||
| Строка 82: | Строка 82: | ||
mount -t ext4 /dev/sda1 /var/lib/SATA2/ | mount -t ext4 /dev/sda1 /var/lib/SATA2/ | ||
<br /> | <br /> | ||
====Авто монтирование раздела==== | |||
Для авто монтирования в систему открываем в '''nano''' файл '''fstab.''' | Для авто монтирования в систему открываем в '''nano''' файл '''fstab.''' | ||
nano /etc/fstab | nano /etc/fstab | ||
| Строка 97: | Строка 97: | ||
<br /> | <br /> | ||
===Создание виртуальной машины=== | |||
<br />[[Файл:Облачный сервер Nextcloud - Подключение хранилища.png|мини|Подключение хранилища]] | <br />[[Файл:Облачный сервер Nextcloud - Подключение хранилища.png|мини|Подключение хранилища]] | ||
====Подключение хранилища==== | |||
Теперь '''web''' интерфейсе переходим в раздел '''Датацентр'''. | Теперь '''web''' интерфейсе переходим в раздел '''Датацентр'''. | ||
| Строка 126: | Строка 126: | ||
[[Файл:Облачный сервер Nextcloud - демонстрация загруженный образов.png|мини|Демонстрация загруженный образов]] | [[Файл:Облачный сервер Nextcloud - демонстрация загруженный образов.png|мини|Демонстрация загруженный образов]] | ||
====Загрузка образа Ubuntu==== | |||
Получается мы устанавливаем '''ubuntu server''' как виртуальную в среде '''Proxmox'''. | Получается мы устанавливаем '''ubuntu server''' как виртуальную в среде '''Proxmox'''. | ||
| Строка 139: | Строка 139: | ||
Нажимаем “'''Загрузить'''” и выбираем '''наш образ'''. | Нажимаем “'''Загрузить'''” и выбираем '''наш образ'''. | ||
Загружаем, ожидаем. | Загружаем, ожидаем. | ||
====Создание VM==== | |||
Нажимаем: '''создать VM:''' | Нажимаем: '''создать VM:''' | ||
| Строка 200: | Строка 200: | ||
Нажимаем '''Запуск.''' <br /> | Нажимаем '''Запуск.''' <br /> | ||
==Установка Ubuntu== | |||
Установка точно такая же как на реальном железе. Но все буде рассказано. | Установка точно такая же как на реальном железе. Но все буде рассказано. | ||
| Строка 214: | Строка 214: | ||
'''192.168.1.130'''/24 | '''192.168.1.130'''/24 | ||
<br /> | <br /> | ||
===Создание разделов=== | |||
В разделе '''Filesystem setup''' выбираем '''Вручную'''. Мы же профессионалы. | В разделе '''Filesystem setup''' выбираем '''Вручную'''. Мы же профессионалы. | ||
| Строка 270: | Строка 270: | ||
<br /> | <br /> | ||
===Создание пользователя=== | |||
Your name: '''имя_пользователя''' | Your name: '''имя_пользователя''' | ||
| Строка 294: | Строка 294: | ||
<br /> | <br /> | ||
===Первичная настройка=== | |||
ОС перезагрузиться, но уже в '''установленном''' виде. С ней бы выполнить стандартный набор операций. | ОС перезагрузиться, но уже в '''установленном''' виде. С ней бы выполнить стандартный набор операций. | ||
| Строка 315: | Строка 315: | ||
<br /> | <br /> | ||
==Установка Nextcloud== | |||
Начинается все с установки Apache web server | Начинается все с установки Apache web server | ||
<br /> | <br /> | ||
===Apache=== | |||
Устанавливаем из репозиториев apache:<syntaxhighlight lang="bash"> | Устанавливаем из репозиториев apache:<syntaxhighlight lang="bash"> | ||
apt-get -y install apache2 | apt-get -y install apache2 | ||
| Строка 360: | Строка 360: | ||
</syntaxhighlight><br /> | </syntaxhighlight><br /> | ||
===PHP 7=== | |||
С PHP все просто.<syntaxhighlight lang="bash"> | С PHP все просто.<syntaxhighlight lang="bash"> | ||
apt-get install -y php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-apcu php-smbclient php-ldap php-redis php-gd php-xml php-intl php-json php-imagick php-mysql php-cli php-ldap php-zip php-curl | apt-get install -y php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-apcu php-smbclient php-ldap php-redis php-gd php-xml php-intl php-json php-imagick php-mysql php-cli php-ldap php-zip php-curl | ||
</syntaxhighlight>Да - это установка всех нужных модулей одной командой. | </syntaxhighlight>Да - это установка всех нужных модулей одной командой. | ||
<br /> | <br /> | ||
===MariaDB=== | |||
База данных. | База данных. | ||
| Строка 401: | Строка 401: | ||
\q | \q | ||
<br /> | <br /> | ||
==Nextcloud== | |||
[[Файл:Облачный сервер Nextcloud - Демонстрация получения ссылки.png|мини|Демонстрация получения ссылки]] | [[Файл:Облачный сервер Nextcloud - Демонстрация получения ссылки.png|мини|Демонстрация получения ссылки]] | ||
Нам нужно загрузить архив с nextcloud с официального сайта. Там жмем на северную версию и копируем ссылку с кнопки загрузить. | Нам нужно загрузить архив с nextcloud с официального сайта. Там жмем на северную версию и копируем ссылку с кнопки загрузить. | ||
| Строка 408: | Строка 408: | ||
<br /> | <br /> | ||
===Загрузка и распаковка=== | |||
wget полученная_нами_ссылка | wget полученная_нами_ссылка | ||
Пример: | Пример: | ||
| Строка 417: | Строка 417: | ||
unzip nextcloud-18.0.1.zip -d /var/www/html/ | unzip nextcloud-18.0.1.zip -d /var/www/html/ | ||
<br /> | <br /> | ||
===Предоставление прав=== | |||
Делам папку '''/nextcloud''' принадлежащей группе и пользователю www-data: | Делам папку '''/nextcloud''' принадлежащей группе и пользователю www-data: | ||
chown -R www-data:www-data /var/www/html/nextcloud | chown -R www-data:www-data /var/www/html/nextcloud | ||
| Строка 428: | Строка 428: | ||
chmod 755 /media/nextcloud | chmod 755 /media/nextcloud | ||
<br /> | <br /> | ||
===Первый запуск=== | |||
Открываем Nextcloud в браузере: | Открываем Nextcloud в браузере: | ||
<nowiki>http://адрес__машины_nextcloud/nextcloud/</nowiki> | <nowiki>http://адрес__машины_nextcloud/nextcloud/</nowiki> | ||
| Строка 452: | Строка 452: | ||
<br /> | <br /> | ||
===Настройка '''config.php'''=== | |||
После окончания осталось поправить '''config.php''': | После окончания осталось поправить '''config.php''': | ||
nano /var/www/html/nextcloud/config/config.php | nano /var/www/html/nextcloud/config/config.php | ||
| Строка 480: | Строка 480: | ||
<br /> | <br /> | ||
===Скрытие index.php=== | |||
Чтобы убрать index.php в адресной строке | Чтобы убрать index.php в адресной строке | ||
Версия от 11:06, 2 апреля 2020

Своими словами. Аналог Яндекс, Google дисков. То есть web доступ к файлам, и клиент на все платформы для синхронизации. Но есть одно маленькое, но. Размерность, скорость и фишки делаются на свое усмотрение. На собственном железе. Все данные рядом, или точно известно где они.
Настройка Proxmox для Nextcloud
Наше облако базируется на системном хранилище local-lvm, а вот сами данные будут храниться на SSD на 960 гигабайт из Китая. Пока без рейда (.
Поэтому после аппаратного подключения накопителя к серверу, нужно на нем создать раздел и отформатировать в ext4.
Самое интересное то, что Proxmox как бы конфигурируется через web, но работу с накопителями на низком уровне можно осуществить только из консоли.
Туда и переходим, в PowerShell конечно же.
ssh vova@192.168.1.130
Водим пароль.
Подключение накопителя к Proxmox
Просмотр разделов
Смотрим что там у нас по разделам.
lsblk
Тут должно быть несколько дисков. Может быть так что нужный sda или наоборот sdb. Наш тот у которого нет разделов.
Пример:
sda 8:0 0 960G 0 disk sdb 8:16 0 120G 0 disk ├─sdb1 8:17 0 1007K 0 part ├─sdb2 8:18 0 512M 0 part └─sdb3 8:19 0 119.5G 0 part
sda и есть наша SSD на 960 гигабайт.
Создание раздела
На ней и создадим раздел.
fdisk /dev/sda
Запустилась программа по созданию разделов.
Смотрим информацию о командах.
m
Создаем новый раздел
n
Enter, Enter, Enter, Enter
Запишем изменения
w
Теперь если взглянуть на разделы.
lsblk
Видно, что
sda 8:0 0 960G 0 disk └─sda1 8:1 0 960G 0 part
появился раздел sda1.
Форматирование раздела
от его и нужно форматировать в ext4.
mkfs.ext4 /dev/sda1
Соглашаемся и дожидаемся окончания. Теперь у нас есть файловая система на накопителе SSD.
Осталось выполнить монтирование раздела в var/lib/ с нужным нам именем, без разницы каким.
Делать мы это будем не по букве диска, так как эта штука не статичная. Может меняться при следующем запуске системы. И вручную монтировать мы тоже не хотим.
ID разделов
Делать будем по ID накопителя. Узнаем:
blkid
Видим много чего, но нас интересует наш раздел /dev/sda1. Вот он:
/dev/sda1: UUID="2e51447b-2ed3-4380-b497-401114b7261f" TYPE="ext4" PARTUUID="23d0899a-01"
И нужный нам UUID накопителя.
Монтирование раздела
Создадим каталог, в который будет монтироваться раздел. Назовем его SATA2
mkdir /var/lib/SATA2
Монтируем чтобы не перезагружаться.
mount -t ext4 /dev/sda1 /var/lib/SATA2/
Авто монтирование раздела
Для авто монтирования в систему открываем в nano файл fstab.
nano /etc/fstab
В конце добавляем:
UUID=2e51447b-2ed3-4380-b497-401114b7261f /var/lib/SATA2 ext4 defaults 0 1
ctrl + o
ctrl + x
Цифры в конце указываю на то, что система не загрузится если не найдет данный накопитель.
Готово.
Создание виртуальной машины

Подключение хранилища
Теперь web интерфейсе переходим в раздел Датацентр.
Выбираем: “Хранилище”
Нажимаем: “Добавить”, в списке выбираем: “Каталог”.
В появившемся окне:
ID: SATA2
название нашего ранее созданного хранилища.
Каталог: /var/lib/SATA2/
физический путь к примонтированному разделу.
Содержимое: Резервная копия, ISO образ, Шаблон контейнера
то, что можно размещать в этом хранилище.
Добавить.

Загрузка образа Ubuntu
Получается мы устанавливаем ubuntu server как виртуальную в среде Proxmox.
На данный момент это версия 18.04.4 LTS.
На этот раз ни на какие накопители ничего записывать не нужно.
Требуется загрузить образ в пространство Proxmox, в хранилище. В нашем случае подойдет local.
Выбираем local в узле pve, переходим в “Содержимое”.
Нажимаем “Загрузить” и выбираем наш образ.
Загружаем, ожидаем.
Создание VM
Нажимаем: создать VM:
В разделе Общее:
Узел: pve
VM ID: 100
Имя: cloud
В разделе ОС:
Хранилище: local
ISO образ: То, что загрузили с официального сайта Ubuntu.
В разделе Жесткий диск:
Шина: VirtIO Block
Хранилище: local-lvm
Размер: 20
Кэш: Write through
В разделе Процессор:
Ядра: 2
В разделе Память:
Память: 2048
Готово.
Появилась виртуальная машина с номером 100 и названием cloud в разделе pve.
Теперь сразу же подкинем этой машине наш накопитель SSD для хранения “облачных данных”.
Переходим в неё, в раздел Оборудование и нажимаем “Добавить”, выбираем Жесткий диск.
Хранилище: SATA2
Размер: 834
в моем случае, на пару гигабайт меньше, чем доступно.
Кэш: Write through
Добавить.
Нажимаем Запуск.
Установка Ubuntu
Установка точно такая же как на реальном железе. Но все буде рассказано.
Переходим в раздел Консоль нашей 100 виртуальной машины. Или если все на отдельном сервере, просто устанавливаем систему с USB накопителя.
Видим запуск ОС и выбор языка. Выбираем Русский.
Клавиатура остается на Английском.
Готово.
Видим, что машина получила IP адрес от нашего DHCP сервера.
192.168.1.130/24
Создание разделов
В разделе Filesystem setup выбираем Вручную. Мы же профессионалы.
Видим 2 накопителя:
Cначало swop: /dev/vda/ 20G
Жмем и выбираем: Add Partition
Size: 2
Format: swop
Create
Теперь создадим boot /dev/vda/ 20G
Size: 1
Format: ext4
Mount: /boot
Create
Теперь уже основной каталог: /dev/vda/ 20G
Size: ничего
Format: ext4
Mount: /
Create
Теперь диск хранилище: /dev/vdb/ 834G
Size: ничего
Format: ext4
Mount: other /media/nextcloud
Create
Идем в самый низ и выбираем: Готово. Продолжить: Да.
Начинается установка. При этом она идет в фоне.
В это время заполняем данные пользователя и машины:
Создание пользователя
Your name: имя_пользователя
your server’s name: cloud
Pick a username: имя_пользователя
Choose password: пароль_сервера_cloud
Confirm your password: пароль_сервера_cloud
Готово.
На вопрос установить ли ssh соглашаемся, поставив крестик пробелом.
Готово.
Ничего не выбираем и говорим Готово. Ждем окончания установки.
По окончании: Reboot.
Enter
Первичная настройка
ОС перезагрузиться, но уже в установленном виде. С ней бы выполнить стандартный набор операций.
PowerShell
ssh vova@192.168.1.130
Вот мы и в консоли будущего облака. Так как мы не root нужно выполнять все действия через команду sudo, или ввести sudo su и ввести пароль. Это сделает все наши операции от root.
обновляем репозитории.
apt-get update
выполняем обновление пакетов из репозиториев.
apt-get upgrade -y
устанавливаем файловый менеджер mc.
apt-get install mc -y
устанавливаем архиватор.
apt-get install unzip -y
ОС готова переходим к установке Nextcloud.
Установка Nextcloud
Начинается все с установки Apache web server
Apache
Устанавливаем из репозиториев apache:
apt-get -y install apache2
Запускаем процесс apache:
service apache2 start
#или по новому
systemctl start apache2
Делам так чтобы стартовал при перезапуске:
systemctl enable apache2
Смотрим статус, должно быть Active: active (running):
systemctl status apache2
Конфигурация:
nano /etc/apache2/sites-available/nc.mywolfram.ru.conf
Вставляем в документ это:
<VirtualHost *:80>
DocumentRoot "/var/www/html/nextcloud" # Адрес машины с облаком.
ServerName 192.168.1.130
Alias / "/var/www/html/nextcloud/" # Alias / Путь - то, что указано даст возможность попасть в веб интерфейс просто по домену, без дополнительных подкаталогов.
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>
Сохранить изменения. Добавляем сайт, включаем реврайт, перезагружаем apache.
a2ensite nc.mywolfram.ru
a2enmod rewrite
a2enmod env
service apache2 reload && service apache2 restart
PHP 7
С PHP все просто.
apt-get install -y php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-apcu php-smbclient php-ldap php-redis php-gd php-xml php-intl php-json php-imagick php-mysql php-cli php-ldap php-zip php-curl
Да - это установка всех нужных модулей одной командой.
MariaDB
База данных.
Устанавливаем из репозиториев:
apt-get install mariadb-server –y
Запускаем процесс:
systemctl start mariadb
Делам так чтобы стартовал при перезапуске:
systemctl enable mariadb
Смотрим статус, должно быть Active: active (running):
systemctl status mariadb
Далее, настройка:
mysql_secure_installation
Set root password? [Y/n] Y
Вводим пароль пользователя: пароль_для_sql
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Перезагружаем процесс:
systemctl restart mariadb
Настраиваем пользователя.
mysql -u root -p
Вводим вышеуказанный пароль.
CREATE DATABASE имя_базы; CREATE USER 'пользователь_базы'@'localhost' IDENTIFIED BY 'пароль_базы'; GRANT ALL PRIVILEGES ON имя_базы.* TO 'пользователь_базы'@'localhost'; FLUSH PRIVILEGES; \q
Nextcloud

Нам нужно загрузить архив с nextcloud с официального сайта. Там жмем на северную версию и копируем ссылку с кнопки загрузить.
Как это сделать, идем на официальный сайт nextcloud, выбираем загрузку для сервера. И на кнопке скачать выполняем копирование ссылки. Это и есть прямой путь к получению архива.
Загрузка и распаковка
wget полученная_нами_ссылка
Пример:
wget https://download.nextcloud.com/server/releases/nextcloud-18.0.3.zip
Происходит загрузка в каталог, который сейчас открыт
Распаковываем скачанный архив в /var/www/html/
unzip nextcloud-18.0.1.zip -d /var/www/html/
Предоставление прав
Делам папку /nextcloud принадлежащей группе и пользователю www-data:
chown -R www-data:www-data /var/www/html/nextcloud
Так же у меня для хранения самих файлов есть каталог /media/nextcloud, создан был при установке, в него примонтирован раздел на SSD.
Делаю папку /media/nextcloud принадлежащей группе и пользователю www-data:
chown -R www-data:www-data /media/nextcloud
Даю папкам права на запись в соответствии со значением 755:
chmod 755 /var/www/html/nextcloud chmod 755 /media/nextcloud
Первый запуск
Открываем Nextcloud в браузере:
http://адрес__машины_nextcloud/nextcloud/
Пример:
http://192.168.1.130/nextcloud/
Нас приветствует первая настройка.
Имя пользователя: Придумываем свое имя пользователя. (vova0108)
Пароль: Придумываем совой пароль
Каталог с данными: в моём случае выше упомянуты /media/nextcloud
Пользователь базы данных:
Пароль базы данных:
Название базы:
Готово.
Ожидаем первичной настройки.
Настройка config.php
После окончания осталось поправить config.php:
nano /var/www/html/nextcloud/config/config.php
В нем нужно прописать дополнительные доверенные адреса, чтобы он нас с них пускал:
$CONFIG = array (
....
array (
0 => '192.168.1.130',
1 => '127.0.0.1',
2 => 'vovaconst.ddns.net',
3 => '192.168.1.230',
4 => 'nc.mywolfram.ru',
),
....
'htaccess.RewriteBase' => '/',
'overwrite.cli.url' => 'https://nc.mywolfram.ru',
'overwritehost' => 'nc.mywolfram.ru',
'overwriteprotocol' => 'https',
),
Я добавляю много адресов, это уже с учётом того что есть прокси nginx и домен.
1.230 - это машина nginx
1.130 - cам nextcloud
Сохраняем.
Скрытие index.php
Чтобы убрать index.php в адресной строке
Обязательно не от root!
Запустить из каталога /var/www/html/nextcloud/
cd /var/www/html/nextcloud/
sudo -u www-data php occ maintenance:update:htaccess
Настройка Nextcloud закончена.