Nextcloud – это форк ownCloud, сервер для общего доступа к файлам и централизованного удалённого хранения документов. Приложение во многом напоминает Dropbox.
В отличие от большинства подобных приложений, Nextcloud является приложением с открытым исходным кодом. Кроме того, Nextcloud можно установить на собственный сервер, что устраняет необходимость размещать конфиденциальные данные на сторонних серверах, тем самым увеличивая безопасность данных.
Это руководство поможет установить Nextcloud на сервер Ubuntu 16.04.
Требования
- Настроенный сервер Ubuntu 16.04.
- Пользователь с доступом к sudo (чтобы создать такого пользователя, читайте это руководство).
- Стек LAMP (инструкции по установке можно найти здесь).
- Сертификат SSL. Если у вас есть зарегистрированное доменное имя, вы можете получить бесплатный сертификат от сервиса Let’s Encrypt. Если у вас нет домена, вы можете создать самоподписанный сертификат.
1: Загрузка Nextcloud
Откройте страницу релизов Nextcloud. Перейдите в конец страницы, найдите и скопируйте ссылку .tar.bz2 на последний релиз.
Примечание: Номер последнего релиза может отличаться.
Перейдите в каталог tmp:
cd /tmp
С помощью команды curl и ссылки на релиз Nextcloud загрузите архив:
curl -LO https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2
Архив был загружен из надёжного источника; тем не менее, лучше проверить его подлинность и целостность. Для этого вернитесь на страницу Releases, найдите пакет .sha256 для загруженного архива релиза, кликните по нему правой кнопкой мыши и скопируйте ссылку. С помощью команды curl загрузите файл контрольной суммы.
curl -LO https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2.sha256
С помощью команды shasum вычислите контрольную сумму архива .tar.bz2 и сравните её со значением в .sha256. Флаг -a определяет алгоритм, -с читает сумму заданного файла и сравнивает с хэшем .tar.bz2.
shasum -a 256 -c nextcloud-10.0.1.tar.bz2.sha256 < nextcloud-10.0.1.tar.bz2
nextcloud-10.0.1.tar.bz2: OK
После этого можно удалить .sha256:
rm nextcloud-10.0.1.tar.bz2.sha256
2: Установка Nextcloud
Чтобы установить Nextcloud, нужно:
- распаковать загруженный архив и создать каталог document root для Apache;
- выполнить сценарий, чтобы установить права собственности и доступа к извлеченным файлам;
- обновить конфигурации Apache, чтобы сообщить веб-серверу о новом приложении.
Распакуйте архив с помощью команды tar. Флаг –С указывает каталог. Флаг –x распакует архив, -v вернёт развернутый вывод, -j фильтрует архив с помощью утилиты bzip2, -f позволяет задать имя архива, который нужно распаковать.
sudo tar -C /var/www -xvjf /tmp/nextcloud-10.0.1.tar.bz2
Поскольку архив не подогнан под дистрибутив, права собственности и доступа нужно устанавливать самостоятельно. Для этого Nextcloud предоставляет сценарий. Создайте файл для сценария оболочки:
nano /tmp/nextcloud.sh
Вставьте в файл:
#!/bin/bash
ocpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chmod 755 ${ocpath}
printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi
Запустите сценарий:
sudo bash /tmp/nextcloud.sh
Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess
Создайте конфигурационный файл в /etc/apache2/sites-available:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Поместите в него такие параметры:
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
Сохраните и закройте файл. Чтобы включить сайт, введите:
sudo a2ensite nextcloud
Enabling site nextcloud.
. . .
Также для корректной работы Nextcloud нужно включить модуль mod_rewrite
sudo a2enmod rewrite
Enabling module rewrite.
. . .
Прежде чем перезапустить Apache, нужно обновить индекс пакетов и установить дополнительные модули PHP:
sudo apt-get update
sudo apt-get install php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip
Теперь перезапустите Apache:
sudo systemctl reload apache2
Сервер Nextcloud успешно установлен.
3: Создание базы данных MySQL
Войдите в MySQL как администратор:
mysql -u root -p
Введите root-пароль MySQL.
Для хранения данных Nextcloud необходима отдельная БД. В данном руководстве такая БД для простоты будет называться nextcloud, но вы можете выбрать более описательное имя.
CREATE DATABASE nextcloud;
Примечание: Все команды MySQL должны заканчиваться точкой с запятой.
Теперь нужно создать пользователя для управления новой БД и передать ему все права на неё. Наличие отдельной БД и пользователя для каждого приложения очень важно для простоты управления и безопасности. В руководстве пользователь называется nextcloud; вы можете выбрать другое имя.
GRANT ALL ON nextcloud.* to 'nextcloud'@'localhost' IDENTIFIED BY 'set_database_password';
Примечание: Вместо ‘set_database_password’ укажите пароль для этой БД.
После этого нужно сбросить привилегии, чтобы обновить настройки MySQL.
FLUSH PRIVILEGES;
Закройте MySQL:
exit
4: Настройка Nextcloud
Веб-интерфейс Nextcloud доступен в браузере по ссылке:
https://server_domain_or_IP/nextcloud
Если вы используете самоподписанный сертификат, браузер предупредит вас о том, что сайт может быть опасен. Это нормально и происходит потому, что сертификат сайта не подписан центром сертификации, которому браузер может доверять. Данные, передаваемые при соединении, всё равно будут шифроваться. Подтвердите переход, чтобы получить доступ к панели управления Nextcloud. На экране появится приветственная страница и форма для входа.
Чтобы создать аккаунт администратора, выберите имя пользователя и пароль.
Примечание: Использовать имя admin очень опасно.
Откройте ссылку Storage & database. Тут вы увидите настройки БД. Изменять путь в поле Data folder не нужно. В разделе Configure the database укажите данные о БД (имя пользователя, пароль и имя БД).
Нажмите Finish setup, чтобы войти в Nextcloud. На экране появится окно:
A safe home for all your data
Access and share your files, calendars, contacts, mail & more from any device, on your terms
Закройте это окно, чтобы получить доступ к главному интерфейсу приложения.
Теперь вы можете создавать или загружать файлы в своё собственное облачное хранилище.
Заключение
Nextcloud имеет все функции популярных сторонних облачных систем хранения данных. Преимуществом Nextcloud является то, что конфиденциальные данные хранятся на сервере, которым вы можете управлять.
Загрузить плагины и расширения для Nextcloud можно здесь.