Облачный сервер Nextcloud: различия между версиями

Материал из wolfram
Перейти к навигации Перейти к поиску
мНет описания правки
мНет описания правки
Строка 1: Строка 1:
[[Файл:Nextcloud - презентация.png|мини|Nextcloud - презентация]]
[[Файл:Nextcloud - презентация.png|мини|Nextcloud - презентация]]
Своими словами. Аналог Яндекс, Google дисков. То есть '''web''' доступ к файлам, и клиент на все платформы для синхронизации. Но есть одно маленькое, но. Размерность, скорость и фишки делаются на свое усмотрение. На собственном железе. Все данные рядом, или точно известно где они.
Своими словами. Аналог Яндекс, Google дисков. То есть '''web''' доступ к файлам, и клиент на все платформы для синхронизации. Но есть одно маленькое, но. Размерность, скорость и фишки делаются на свое усмотрение. На собственном железе. Все данные рядом, или точно известно где они.
<br />


===Настройка Proxmox для Nextcloud===
===Настройка Proxmox для Nextcloud===
Строка 12: Строка 14:
  ssh vova@192.168.1.130
  ssh vova@192.168.1.130
Водим [[Облачный сервер Nextcloud#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5%20.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8F|пароль]].
Водим [[Облачный сервер Nextcloud#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5%20.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8F|пароль]].
<br />


====Подключение накопителя к Proxmox====
====Подключение накопителя к Proxmox====
 
<br />
=====Просмотр разделов=====
=====Просмотр разделов=====
Смотрим что там у нас по разделам.
Смотрим что там у нас по разделам.
Строка 27: Строка 31:
  └─sdb3          8:19 0 119.5G 0 part
  └─sdb3          8:19 0 119.5G 0 part
'''sda''' и есть наша SSD на 960 гигабайт.
'''sda''' и есть наша SSD на 960 гигабайт.
<br />


=====Создание раздела=====
=====Создание раздела=====
Строка 47: Строка 53:
  └─sda1          8:1 0 960G  0 part  
  └─sda1          8:1 0 960G  0 part  
появился раздел '''sda1'''.
появился раздел '''sda1'''.
<br />


=====Форматирование раздела=====
=====Форматирование раздела=====
Строка 56: Строка 64:


Делать мы это будем не по букве диска, так как эта штука не статичная. Может меняться при следующем запуске системы. И вручную монтировать мы тоже не хотим.
Делать мы это будем не по букве диска, так как эта штука не статичная. Может меняться при следующем запуске системы. И вручную монтировать мы тоже не хотим.
<br />


=====ID разделов=====
=====ID разделов=====
Строка 63: Строка 73:
  /dev/sda1: UUID="2e51447b-2ed3-4380-b497-401114b7261f" TYPE="ext4" PARTUUID="23d0899a-01"
  /dev/sda1: UUID="2e51447b-2ed3-4380-b497-401114b7261f" TYPE="ext4" PARTUUID="23d0899a-01"
И нужный нам '''UUID''' накопителя.
И нужный нам '''UUID''' накопителя.
<br />


=====Монтирование раздела=====
=====Монтирование раздела=====
Строка 69: Строка 81:
Монтируем чтобы не перезагружаться.
Монтируем чтобы не перезагружаться.
  mount -t ext4 /dev/sda1 /var/lib/SATA2/
  mount -t ext4 /dev/sda1 /var/lib/SATA2/
 
<br />
=====Авто монтирование раздела=====
=====Авто монтирование раздела=====
Для авто монтирования в систему открываем в '''nano''' файл '''fstab.'''
Для авто монтирования в систему открываем в '''nano''' файл '''fstab.'''
Строка 83: Строка 95:
Готово.
Готово.


==== Создание виртуальной машины ====
<br />
[[Файл:Облачный сервер Nextcloud - Подключение хранилища.png|мини|Подключение хранилища]]


===== Подключение хранилища =====
====Создание виртуальной машины====
<br />[[Файл:Облачный сервер Nextcloud - Подключение хранилища.png|мини|Подключение хранилища]]
 
=====Подключение хранилища=====
Теперь '''web''' интерфейсе переходим в раздел '''Датацентр'''.  
Теперь '''web''' интерфейсе переходим в раздел '''Датацентр'''.  


Строка 107: Строка 121:
''то, что можно размещать в этом хранилище.''  
''то, что можно размещать в этом хранилище.''  


'''Добавить.'''  
'''Добавить.'''
 
<br />
[[Файл:Облачный сервер Nextcloud - демонстрация загруженный образов.png|мини|Демонстрация загруженный образов]]
[[Файл:Облачный сервер Nextcloud - демонстрация загруженный образов.png|мини|Демонстрация загруженный образов]]


===== Загрузка образ Ubuntu =====
=====Загрузка образа Ubuntu=====
Получается мы устанавливаем '''ubuntu server''' как виртуальную в среде '''Proxmox'''.  
Получается мы устанавливаем '''ubuntu server''' как виртуальную в среде '''Proxmox'''.  


Строка 123: Строка 139:
Нажимаем “'''Загрузить'''” и выбираем '''наш образ'''.  
Нажимаем “'''Загрузить'''” и выбираем '''наш образ'''.  


Загружаем, ожидаем.  
Загружаем, ожидаем.


===== Создание VM =====
=====Создание VM=====
Нажимаем: '''создать VM:'''  
Нажимаем: '''создать VM:'''  


Строка 183: Строка 199:
'''Добавить'''.  
'''Добавить'''.  


Нажимаем '''Запуск.'''  
Нажимаем '''Запуск.''' <br />
<br />
===Установка Ubuntu===
===Установка Ubuntu===
Установка точно такая же как на реальном железе. Но все буде рассказано.  
Установка точно такая же как на реальном железе. Но все буде рассказано.  
Строка 195: Строка 210:


'''Готово.'''
'''Готово.'''


Видим, что машина получила '''IP адрес''' от нашего '''DHCP''' сервера.  
Видим, что машина получила '''IP адрес''' от нашего '''DHCP''' сервера.  
  '''192.168.1.130'''/24  
  '''192.168.1.130'''/24  
 
<br />
====Создание разделов====
====Создание разделов====
В разделе '''Filesystem setup''' выбираем '''Вручную'''. Мы же профессионалы.  
В разделе '''Filesystem setup''' выбираем '''Вручную'''. Мы же профессионалы.  
Строка 298: Строка 312:
  '''apt-get install unzip -y'''
  '''apt-get install unzip -y'''
ОС готова переходим к установке '''Nextcloud'''.
ОС готова переходим к установке '''Nextcloud'''.
<br />


===Установка Nextcloud===
===Установка Nextcloud===
Начинается все с установки Apache web server
Начинается все с установки Apache web server
<br />


====Apache====
====Apache====
Строка 341: Строка 359:
service apache2 reload && service apache2 restart  
service apache2 reload && service apache2 restart  


</syntaxhighlight>
</syntaxhighlight><br />
 
====PHP 7====
====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 />
====MariaDB====
====MariaDB====
База данных.
База данных.
Строка 383: Строка 400:
  FLUSH PRIVILEGES;
  FLUSH PRIVILEGES;
  \q
  \q
 
<br />
===Nextcloud===
===Nextcloud===
[[Файл:Облачный сервер Nextcloud - Демонстрация получения ссылки.png|мини|Демонстрация получения ссылки]]
[[Файл:Облачный сервер Nextcloud - Демонстрация получения ссылки.png|мини|Демонстрация получения ссылки]]
Строка 390: Строка 407:
Как это сделать, идем на официальный сайт [https://nextcloud.com/install/ nextcloud], выбираем загрузку для сервера. И на кнопке скачать выполняем копирование ссылки. Это и есть прямой путь к получению архива.
Как это сделать, идем на официальный сайт [https://nextcloud.com/install/ nextcloud], выбираем загрузку для сервера. И на кнопке скачать выполняем копирование ссылки. Это и есть прямой путь к получению архива.


<br />
====Загрузка и распаковка====
====Загрузка и распаковка====
  wget полученная_нами_ссылка
  wget полученная_нами_ссылка
Строка 398: Строка 416:
Распаковываем скачанный архив в '''/var/www/html/'''
Распаковываем скачанный архив в '''/var/www/html/'''
  unzip nextcloud-18.0.1.zip -d /var/www/html/
  unzip nextcloud-18.0.1.zip -d /var/www/html/
 
<br />
====Предоставление прав====
====Предоставление прав====
Делам папку '''/nextcloud''' принадлежащей группе и пользователю www-data:
Делам папку '''/nextcloud''' принадлежащей группе и пользователю www-data:
Строка 409: Строка 427:
  chmod 755 /var/www/html/nextcloud
  chmod 755 /var/www/html/nextcloud
  chmod 755 /media/nextcloud
  chmod 755 /media/nextcloud
 
<br />
====Первый запуск====
====Первый запуск====
Открываем Nextcloud в браузере:
Открываем Nextcloud в браузере:
Строка 430: Строка 448:


Готово.
Готово.


Ожидаем первичной настройки.
Ожидаем первичной настройки.


<br />
====Настройка '''config.php'''====
====Настройка '''config.php'''====
После окончания осталось поправить '''config.php''':
После окончания осталось поправить '''config.php''':
Строка 461: Строка 479:
Сохраняем.  
Сохраняем.  


<br />
====Скрытие index.php====
====Скрытие index.php====
Чтобы убрать index.php в адресной строке
Чтобы убрать index.php в адресной строке

Версия от 11:04, 2 апреля 2020

Nextcloud - презентация

Своими словами. Аналог Яндекс, 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 закончена.