Как установить Nextcloud на Ubuntu 18.04

Как установить Nextcloud на Ubuntu 18.04

Иллюстрация: синхронизация настольного компьютера, ноутбука и смартфона с Nextcloud.

Nextcloud это самостоятельный облачный сервис. Он предоставляет синхронизированные приложения для хранения, производительности и группового использования для личного или коммерческого использования, к которым вы можете получить доступ в облаке. Он может размещаться локально (в локальной сети) или в VPS в Интернете.

Эти инструкции проведут вас через шаги, необходимые для установки Nextcloud на VPS..

Создайте VPS под управлением Ubuntu Server 18.04 LTS

Начните с новой установки Ubuntu 18.04..

Например, если вы используете Линод, на панели управления Linode выберите Создавать, тогда Линод. Затем под Выберите распространение, выберите Ubuntu 18.04 LTS.

Или, если вы используете Цифровой океан, на панели управления Digital Ocean выберите Создавать, Капли. Затем под Распределения, выберите Ubuntu 18.04.3 (LTS) x64.

Кончик

Услуги Linode и Digital Ocean с минимальными затратами 5 долларов в месяц предлагают 1 ГБ ОЗУ, 25 ГБ SSD хранилище и 1 ТБ ежемесячного сетевого трафика. Для личного использования Nextcloud хорошо справляется с этими характеристиками. Если вам нужно больше места на диске, вы можете выбрать более дорогой тарифный план..

Когда ваш VPS будет создан, убедитесь, что вы знаете его айпи адрес и пароль root прежде чем продолжить выполнение этих инструкций. IP-адрес указан на панели управления вашего VPS. Пароль root был либо выбран вами во время установки (Linode), либо отправлен вам по электронной почте (Digital Ocean).

Обновите DNS-запись вашего домена

Сейчас хорошее время, чтобы обновить DNS-запись вашего домена, чтобы она указывала на ваш VPS. Войдите в свой домен регистратор, и создайте запись A для своего домена с IPv4-адресом вашего VPS. При желании вы можете создать запись AAAA, указывающую на IPv6-адрес VPS..

Если вы не знаете, как это сделать, проверьте документацию на сайте вашего регистратора..

Кончик

Использование доменного имени для вашего сервера рекомендуется, но не обязательно. Если у вас нет доменного имени, вы можете получить его у регистратора, такого как NameCheap или GoDaddy. Если вам не нужно доменное имя, вы можете заменить доменное имя IPv4-адресом вашего VPS в этих инструкциях..

Подключитесь к VPS через SSH

Подключитесь к вашему VPS с SSH, вход в систему как пользователь корень. Например, в Windows 10 откройте командная строка и запустите следующую команду.

ssh [электронная почта защищена]адрес

Заменять адрес с доменным именем или IP-адресом вашего сервера. Например, если IPv4-адрес вашего VPS — 123.45.67.89:

ssh [электронная почта защищена]
Кончик

Если вы недавно обновили свои записи DNS, информация, возможно, еще не распространилась на ваши DNS-серверы. Если вы не можете подключиться, используя свое доменное имя, используйте вместо этого свой IP-адрес..

Если вы подключаетесь к серверу впервые, вам будет предложено проверить подлинность ключа шифрования сервера..

Подлинность хоста example.com (123.45.67.89) не может быть установлена. Отпечаток ключа ECDSA — SHA256: asdfPZq159216hjklgRBhD412b3PvkEjKBf0h352mZp. Вы уверены, что хотите продолжить подключение (да / нет)?

Тип да и нажмите Enter. Затем вам будет предложено ввести пароль root вашего VPS..

Предупреждение: постоянно добавлено 198.74.58.146 в список известных хостов.. [электронная почта защищена]пароль:

Введите пароль root и нажмите Enter..

Обновите Ubuntu и создайте пользователя

Когда вы войдете в систему, вы увидите командную строку для вашего сервера.

[электронная почта защищена]: ~ #

Обновите систему с помощью подходящий менеджер пакетов.

подходящее обновление && apt -y обновление

Создайте обычную учетную запись (без полномочий root). Выберите имя из одного слова со строчными буквами. Например, если вас зовут Алиса, вы можете выбрать имя пользователя Алиса. В этом примере мы назовем пользователя myuser.

adduser myuser

Ответьте на запросы следующим образом.

Введите новый пароль UNIX: (введите пароль и нажмите Enter)
Введите новый пароль UNIX еще раз: (введите его еще раз и нажмите Enter)
Полное имя []: (нажмите Ввод)
Номер комнаты []: (нажмите Ввод)
Рабочий телефон []: (нажмите Ввод)
Домашний телефон []: (нажмите Ввод)
Другой []: (нажмите Ввод)
Ввод правильный? [Да / Нет] (нажмите Ввод)

Использовать usermod команда, чтобы добавить вашего пользователя в судо группа. Usermod позволяет запускать судо команда, поэтому вы можете запускать команды администратора, не входя в систему как root.

usermod -aG судо myuser

Установите имя хоста вашего компьютера на свое доменное имя. (Заменять example.com с вашим реальным доменным именем.)

hostnamectl set-hostname example.com

Выйти из сервера.

выход

Защитите VPS

Снова войдите на сервер, на этот раз как новый пользователь..

ssh [электронная почта защищена]

Вас приветствует обычная пользовательская подсказка.

[электронная почта защищена]: ~ $

Обратите внимание, что вместо #, подсказка заканчивается на $. Это означает, что вы вошли в систему как обычный пользователь, а не как root..

Отключить root SSH-вход

Допускать вход по SSH пользователю root опасно, потому что ваш VPS подключен к Интернету и может получить множество нежелательных попыток входа в систему. Следующие шаги гарантируют, что никто (включая вас) не сможет войти на сервер как root..

Кончик

Вы всегда должны отключать корневые входы SSH как можно скорее после создания VPS..

Открыть файл / и т.д. / SSH / sshd_config в текстовом редакторе. В этих примерах мы используем нано Текстовый редактор. В sshd_config для редактирования файла требуются права администратора, поэтому перед нано команда с судо, и введите свой пароль (не пароль root), когда будет предложено.

sudo nano / etc / ssh / sshd_config

В текстовом редакторе с помощью клавиш со стрелками найдите строку с надписью PermitRootLogin да. Измените слово да к нет.

Отключить root SSH-вход

Сохраните файл, нажав Ctrl + O, Enter. Выйдите из редактора, нажав Ctrl + X.

Перезагрузите SSH-сервер, чтобы загрузить новые настройки..

sudo systemctl перезапустить sshd

Настроить брандмауэр VPS

Чтобы обезопасить свой сервер, используйте утилиту ufw ("Несложный брандмауэр") для ограничения доступа к определенным сетевым портам.

Во-первых, установите общие правила по умолчанию. Настройте брандмауэр, чтобы разрешить весь исходящий трафик и запретить весь входящий трафик..

sudo ufw по умолчанию разрешить исходящие
sudo ufw default deny incoming

Затем создайте исключения, чтобы разрешить входящий трафик для соединений SSH (порт 22), HTTP (порт 80) и HTTPS (порт 443)..

sudo ufw разрешить ssh
sudo ufw разрешить http
sudo ufw разрешить https

Включите брандмауэр, чтобы эти правила вступили в силу.

sudo ufw enable
Команда может нарушить существующие соединения ssh. Продолжить операцию (y | n)?

Тип y и нажмите Enter.

Брандмауэр активен и включается при запуске системы

Установите веб-сервер, базу данных и PHP

Установите Apache веб-сервер, MariaDB система баз данных, а PHP язык сценариев.

sudo apt -y установить apache2 mariadb-server php

Установите модули PHP, необходимые для Nextcloud.

sudo apt -y установить php-curl php-gd php-mbstring php-zip php-xml php-mysql \ php-intl php-bz2 php-imagick

Настроить MariaDB

Подготовьте сервер MariaDB и настройте его корневую учетную запись.

sudo mysql_secure_installation
Введите текущий пароль для root (введите его, если нет): (нажмите Ввод)
Изменить пароль root? [Да / Нет] (нажмите Ввод)
Новый пароль: (введите пароль, нажмите Enter)
Повторно введите новый пароль: (введите его еще раз, нажмите Enter)
Удалить анонимных пользователей? [Да / Нет] (нажмите Ввод)
Запретить удаленный вход root? [Да / Нет] (нажмите Ввод)
Удалить тестовую базу данных и получить к ней доступ? [Да / Нет] (нажмите Ввод)
Перезагрузить таблицы привилегий сейчас? [Да / Нет] (нажмите Ввод)

Откройте клиент MariaDB.

sudo mysql

Выполните следующие команды в командной строке MariaDB.

использовать mysql
обновить пользовательский набор plugin = ‘mysql_native_password’, где user = ‘root’;
сбросить привилегии;
\ q

Настроить Apache

Включите модули Apache, необходимые для Nextcloud.

sudo a2enmod перезаписать заголовки env dir mime

Установите глобальную директиву ServerName

Откройте файл глобальной конфигурации Apache для редактирования.

судо нано /etc/apache2/apache2.conf

Вверху файла вставьте следующую строку, используя свое доменное имя вместо example.com..

ServerName example.com

Установить директиву ServerName

Нажмите Ctrl + O, Войти чтобы сохранить файл. Нажмите Ctrl + X выходить.

Создайте файл конфигурации виртуального хоста Apache для Nextcloud

Создайте новый файл конфигурации веб-сервера для Nextcloud. Файл будет пустым, когда вы его откроете..

судо нано /etc/apache2/sites-available/nextcloud.conf

Поместите этот текст в файл.

<VirtualHost *: 80> ServerName example.com DocumentRoot / var / www / nextcloud / Alias ​​/ "/ var / www / nextcloud /" <Каталог / var / www / nextcloud /> Требовать все предоставленные AllowOverride Все параметры FollowSymLinks MultiViews <IfModule mod_dav.c> Дав выкл </ IfModule> </ Каталог> </ VirtualHost>

Нажмите Ctrl + O, Войти чтобы сохранить файл. Нажмите Ctrl + X закрыть файл.

Скачайте и установите Nextcloud

Измените на свой домашний каталог (сокращенно ~) с использованием CD команда.

cd ~

Создать "Загрузки" каталог с mkdir команду, затем перейдите в этот каталог.

mkdir Загрузки
cd Загрузки

Использовать wget утилита для загрузки последней версии Nextcloud и хеша SHA512. Хеш — это небольшой текстовый файл, содержащий математическую подпись, которая помогает проверить подлинность архива Nextcloud..

wget https://download.nextcloud.com/server/releases/latest.tar.bz2{,.sha512}

Использовать sha512sum утилита для проверки соответствия хэша SHA512 архива Nextcloud содержимому текстового файла.

sha512sum -c latest.tar.bz2.sha512
latest.tar.bz2: ОК

Использовать деготь утилита для извлечения содержимого архива.

tar xjvf latest.tar.bz2

Скопируйте извлеченный каталог nextcloud в каталог / var / www /.

sudo cp -R nextcloud / var / www /

Использовать Chown утилита для изменения пользователя и группы каталога / var / www / nextcloud (и все его файлы и подкаталоги) специальному пользователю / группе веб-сайта www-data.

sudo chown -R www-data: www-data / var / www / nextcloud /

Установите nextcloud с помощью следующей команды. В этой команде замените следующие значения своими собственными.

  • dbpass — пароль root MariaDB, который вы указали в Настроить MariaDB, над.
  • обвинитель — имя пользователя администратора Nextcloud. Это значение не обязательно должно совпадать с вашим именем пользователя VPS. Например, вы можете выбрать админ, или же Алиса, и т.д. Этот пользователь имеет права администратора в приложении Nextcloud..
  • ncpass — пароль для вашего администратора Nextcloud.

sudo -u www-data php / var / www / nextcloud / occ обслуживание: установить \ —database "MySQL" —имя-базы данных "nextcloud" —пользователь базы данных "корень" \ —database-pass "dbpass" —админ-пользователь "обвинитель" —admin-pass "ncpass"

Через несколько секунд, если все работает правильно, отобразится подтверждающее сообщение..

Nextcloud успешно установлен

Рекомендуется очищать историю команд после ввода паролей в виде открытого текста в командной строке..

история -c

Добавьте свое доменное имя в доверенные домены Nextcloud.

sudo -u www-data php / var / www / nextcloud / occ config: system: set \ trusted_domains 1 —value =example.com
Значение конфигурации системы доверенных_доменов => 1 — строка example.com

Включите конфигурацию веб-сервера Nextcloud.

sudo a2ensite nextcloud.conf

Отключить веб-сайт-заполнитель Apache по умолчанию.

sudo a2dissite 000-default.conf

Перезагрузите конфигурацию Apache.

sudo systemctl перезагрузить apache2

Включить HTTPS

Ваше приложение Nextcloud в настоящее время доступно для HTTP Только. Следующим шагом будет включение HTTPS чтобы гарантировать, что данные полностью зашифрованный между вашими устройствами Nextcloud и сервером.

В этих инструкциях используется Certbot утилита для автоматического получения бесплатного TLS свидетельство для вашего домена от Давайте зашифровать. Certbot также настраивает Apache для шифрования вашего трафика Nextcloud с помощью TLS..

Включите Apache SSL модуль и перезапустите Apache.

sudo a2enmod ssl
sudo systemctl перезапустить apache2

Установите и запустите certbot.

sudo apt install -y python-certbot-apache
sudo certbot —apache

Certbot запрашивает информацию. Ответьте следующим образом.

  1. Введите свой адрес электронной почты (обязательно).
  2. Тип А и нажмите Enter, чтобы принять Условия использования Let’s Encrypt.
  3. Тип Y поделиться своим адресом электронной почты с EFF, или же N чтобы отклонить, и нажмите Enter.
  4. В списке перечислены ваши домены Apache. Введите номер домена, трафик которого вы хотите зашифровать. Если это ваш единственный веб-сайт на сервере, введите 1 и нажмите Enter.
  5. Тип 2 для перенаправления HTTP-запросов на HTTPS (настоятельно рекомендуется). нажмите Ввод.

Certbot автоматически перезагружает вашу конфигурацию Apache, и трафик вашего веб-сайта теперь зашифрован через HTTPS. Certbot также настраивает cron для автоматического продления сертификата до истечения срока его действия.

Давать возможность "симпатичный" URL

По умолчанию ваш Nextcloud URL включить index.php как часть веб-адреса. Вы можете настроить Nextcloud, чтобы скрыть эту часть URL-адреса, чтобы они выглядели лучше при совместном использовании, например, при создании ссылок для обмена файлами..

Кончик

Сокращение URL-адресов является косметическим изменением и не влияет на функциональность Nextcloud..

Чтобы исключить index.php из URL-адресов Nextcloud, отредактируйте файл /var/www/nextcloud/config/config.php.

sudo nano /var/www/nextcloud/config/config.php

Сделайте следующие два изменения. Сначала найдите строку, содержащую:

‘overwrite.cli.url’ => ‘http: // localhost’

В этой строке измените http: // localhost к https: //yourdomain так это выглядит так:

‘overwrite.cli.url’ => https://example.com,

Затем добавьте новую строку, содержащую этот текст:

‘htaccess.RewriteBase’ => ‘/’,

Отредактируйте config.php

Сохраните файл и выйдите из редактора. (В nano нажмите Ctrl + O, Enter, Ctrl + X.)

Наконец, запустите эту команду, чтобы обновить свой Nextcloud .htaccess файл с новой конфигурацией.

sudo -u www-data php / var / www / nextcloud / occ обслуживание: обновление: htaccess

Изменение вступает в силу немедленно, без перезапуска каких-либо служб. Старые URL-адреса с «index.php» по-прежнему работают нормально, но для новых запросов используется формат URL-адреса «красивее»..

Довольно URL