Установка Nextcloud на Windows Server: различия между версиями

Материал из system.c
Перейти к навигации Перейти к поиску
(Новая страница: «===Введение=== Итак Nextcloud. Локальное облако. Я заинтересовался этим проектом для замены у к...»)
 
Строка 13: Строка 13:
 
Последней командой добавляем пользователя в группу wheel.<br>
 
Последней командой добавляем пользователя в группу wheel.<br>
 
Далее необходимо установить пакеты, необходимые для сборки модулей ядра. Все это понадобиться для дополнений гостевой системы.
 
Далее необходимо установить пакеты, необходимые для сборки модулей ядра. Все это понадобиться для дополнений гостевой системы.
     # apt install linux-headers-$(uname -r) cpp gcc make
+
     # sudo apt install linux-headers-$(uname -r) cpp gcc make
 
После того, как все это хозяйство настроится установим дополнения гостевой системы. В меню виртуальной машины выбираем "Устройства" - "Подключить образ диска Дополнений гостевой ОС...". Монтируем виртуальный CD-ROM командой
 
После того, как все это хозяйство настроится установим дополнения гостевой системы. В меню виртуальной машины выбираем "Устройства" - "Подключить образ диска Дополнений гостевой ОС...". Монтируем виртуальный CD-ROM командой
     # mount /media/cdrom -o exec
+
     # sudo mount /media/cdrom -o exec
 
Запускаем установку дополнений
 
Запускаем установку дополнений
 
     # cd /media/cdrom
 
     # cd /media/cdrom
     # ./VBoxLinuxAdditions.run
+
     # sudo ./VBoxLinuxAdditions.run
 
Установка займет некоторое время необходимое для сборки модулей.<br>
 
Установка займет некоторое время необходимое для сборки модулей.<br>
 
В файл '''/etc/fstab''' добавляем следующую строку
 
В файл '''/etc/fstab''' добавляем следующую строку
Строка 43: Строка 43:
 
===Установка Nextcloud===
 
===Установка Nextcloud===
 
Скачиваем Nextcloud [https://download.nextcloud.com/server/releases/ отсюда]. В простейшем варианте просто распаковываем в папку ''/var/www/html'' на виртуальной машине. И меняем права на папку
 
Скачиваем Nextcloud [https://download.nextcloud.com/server/releases/ отсюда]. В простейшем варианте просто распаковываем в папку ''/var/www/html'' на виртуальной машине. И меняем права на папку
     # chown -R www-data:www-data /var/www/html/nextcloud/
+
     # sudo chown -R www-data:www-data /var/www/html/nextcloud/
 
     # sudo chmod -R 755 /var/www/html/nextcloud/
 
     # sudo chmod -R 755 /var/www/html/nextcloud/
 
Далее нам потребуется установить php и необходимые дополнения. Выполняем команду
 
Далее нам потребуется установить php и необходимые дополнения. Выполняем команду
     # apt install php php-mysql php-zip php-dom php-xml php-soap php-apcu  
+
     # sudo apt install php php-mysql php-zip php-dom php-xml php-soap php-apcu  
 
     > php-smbclient php-ldap php-redis php-xmlrpc php-mbstring php-gd php-curl
 
     > php-smbclient php-ldap php-redis php-xmlrpc php-mbstring php-gd php-curl
 
     > php-intl php-json php-imagick  
 
     > php-intl php-json php-imagick  
     # service apache2 restart
+
     # sudo service apache2 restart
 
Можно пробовать. В адресной строке браузера вводим http://''адрес_сервера''/nextcloud и переходим к настройке.
 
Можно пробовать. В адресной строке браузера вводим http://''адрес_сервера''/nextcloud и переходим к настройке.
  

Версия 09:09, 17 октября 2019

Введение

Итак Nextcloud. Локальное облако. Я заинтересовался этим проектом для замены у клиентов бесконечных "общих папок", которые в смысле безопасности и распределения прав доступа вообще никак. Плюс возможность отправлять вместо собственно файла во вложении к письму, ссылку на него. Данное описание не претендует на полноту. В любом случае, в интернете достаточно описаний. Скорее это заметки о моментах, которые обычно опускают.

Подготовка системы

Установка VirtualBox

Все попытки установить Nextcloud на IIS закончились ничем :(. Установка запускалась, но при завершении настроек не создавались таблицы в базе данных. Тестовая установка на Debian показала, что это именно проблема Windows сервера. Было решено устанавливать на виртуальную машину apache, php, а SQL сервер и папку с данными оставить на host машине. Это вопрос удобства миграции. На виртуальной машине достаточно перенести папку web сервера, а все данные сохраняются на host машине.
В качестве виртуальной машины был выбран VirtualBox. QEMU работает очень медленно, а поддержки KVM в Windows понятно нет.
Скачиваем установщик по ссылке. Сначала я установил 6-ю версию, но при запуске виртуальной машины мне выдало ошибку. Поиск по коду свелся к советам типа "протрите фары и похлопайте дверцами". Удалил 6-ю версию и скачал 5.2, все заработало.
Установка и создание виртуальной машины в VirtualBox достаточно тривиально и здесь я это описывать не буду. Диск я выбрал размером 16Gb, памяти 1Gb и два виртуальных процессора.

Установка Debian

Образ Debian берем отсюда. Запускаем VM. При установке следуем инструкциям. При выборе пакетов указываем web-server, чтобы apache не устанавливать потом. После завершения добавляем необходимые пакеты. Сначала sudo.

   # apt install sudo
   # usermod -a -G sudo sergiy

Последней командой добавляем пользователя в группу wheel.
Далее необходимо установить пакеты, необходимые для сборки модулей ядра. Все это понадобиться для дополнений гостевой системы.

   # sudo apt install linux-headers-$(uname -r) cpp gcc make

После того, как все это хозяйство настроится установим дополнения гостевой системы. В меню виртуальной машины выбираем "Устройства" - "Подключить образ диска Дополнений гостевой ОС...". Монтируем виртуальный CD-ROM командой

   # sudo mount /media/cdrom -o exec

Запускаем установку дополнений

   # cd /media/cdrom
   # sudo ./VBoxLinuxAdditions.run

Установка займет некоторое время необходимое для сборки модулей.
В файл /etc/fstab добавляем следующую строку

   имя_общей_папки точка_монтирования vboxsf auto,uid=33,gid=33,umask=0007 0 0

,где

  • имя_общей_папки имя общей папки его указали в диалоге создания VirtualBox,
  • точка_монтирования - куда монтируем общую папку,
  • vboxsf - тип файловой системы,
  • auto,uid=33,gid=33,umask=0007 - параметры монтирования, uid и gid указываем для пользователя и папки www-data, umask - для прав доступа к папке монтирования равным 770, это требования nextcloud.

Настройки сети я в данном описании пропускаю, так как это вещь достаточно индивидуальная.
По окончании перезагружаем виртуальную машину.

Установка и настройка MySQL

Установка MySQL на WIndows описана в этой статье, так что остается только создать базу данных для Nextcloud. Запускаем командную строку от имени Администратора и переходим в папку bin каталога с MySQL. Запускаем MySQL командой

   mysql -u root -p

и выполняем следующие команды:

   CREATE DATABASE nextcloud;
   CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'new_password_here';
   GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
   FLUSH PRIVILEGES;
   EXIT;

Естественно имена имена бызы данных, пользователя, пароль указываете собственные. И не забудьте заменить localhost на адрес вашего сервера в виртуальной машине.

Установка Nextcloud

Скачиваем Nextcloud отсюда. В простейшем варианте просто распаковываем в папку /var/www/html на виртуальной машине. И меняем права на папку

   # sudo chown -R www-data:www-data /var/www/html/nextcloud/
   # sudo chmod -R 755 /var/www/html/nextcloud/

Далее нам потребуется установить php и необходимые дополнения. Выполняем команду

   # sudo apt install php php-mysql php-zip php-dom php-xml php-soap php-apcu 
   > php-smbclient php-ldap php-redis php-xmlrpc php-mbstring php-gd php-curl
   > php-intl php-json php-imagick 
   # sudo service apache2 restart

Можно пробовать. В адресной строке браузера вводим http://адрес_сервера/nextcloud и переходим к настройке.

После установки

WebDAV

При монтировании папки Nextcloud как сетевого диска в Windows возникают проблемы. Запрашивает пароль и выдает ошибку 67 - "Сетевой путь не найден". Для исправления ошибке необходимо в реестре по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters в параметре BasicAuthLevel проставить значение 2 и перезапустить службу Веб-клиент.

Запуск виртуальной машины как службы

Для этих целей можно использовать VirtualboxVmService. Скачайте программу соответственно свой версии VirtualBox, запустите установку. Собственно все, остается только отредактировать файл VBoxVmService.ini (по умолчанию он находится в папке C:\vms).

   [Settings]
   # Путь к дирректории .VirtualBox для вашего профиля. Она обычно располагается 
   # в персональной папке пользователя.
   VBOX_USER_HOME=C:\Users\Администратор\.VirtualBox
   # Стартовать или нет VBoxWebSrv.exe, VirtualBox HTTP веб сервер автоматически.
   # Может быть «yes» или «no». Оставьте ее в «no» если вы не знаете что это.
   RunWebService=no
   # Параметр используется для замедления выключения компьютера чтобы предотвратить
   # крах виртуальной машины при выключении или перезагрузке. (5000=5 секунд). 
   # Заметьте что Windows имеет ограниченя как долго контроллер сервиса будет ждать
   # когда система перезагрузится. Лимит времени определен в переменной 
   # WaitToKillServiceTimeout в следующей ветке реестра 
   # HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Ваше значение PauseShutdown
   # не должно превышать это значение в реестре.
   PauseShutdown=5000
   # Далее следуют секции виртуальных машин. Их может быть несколько, сответственно
   # Vm0, Vm1 и т. д.
   [Vm0]
   # Имя для запуска VM (Чуствительно к регистру!)
   VmName=nextcloud
   # Метод выключения («savestate», или «acpipowerbutton»). Когда используется
   # «savestate», состояние машины сохраняется и может быть возобновлено когда
   # она старует в следующий раз. Когда используется «acpipowerbutton» , VM просто
   # выключится. Если ваша VM долго выключается рекомендуется использовать
   # savestate, который завершает намного быстрее.
   ShutdownMethod=acpipowerbutton
   # Будет или нет VM стартовать автоматически когда VBoxVmService работает. 
   # По умолчанию установлено в «yes».
   AutoStart=yes

После редактирования ini-файла требуется запустить службу VBoxVmService.