Установка NextCloud: домашний NAS бесплатно или файлопомойка своими руками

15 Ноября 2018

Наверняка у каждого из нас накопилось куча снимков и подборка видео. Фирменные NAS стоят прилично, но в этой статье мы расскажем, как можно сэкономить и развернуть облако на сервере Ubuntu. Суть заключается в следующем: берем пылившийся в углу стационарник (или ноутбук — не важно) и превращаем его в NAS с помощью бесплатного программного обеспечения.

NextCloud — это набор Open Source программ для создания (и, разумеется, использования) облачного хранилища. Что-то вроде аналога Dropbox, но будет работать на вашем компьютере.

Настройку будем производить на примере операционной системы Ubuntu Linux версии 18.04. Вы можете выбрать, как настольную, так и серверную версию — разницы нет. Если вы хотите использовать компьютер не только под облачный сервис, можно смело выбирать настольную версию. Если же планируется выделение под NAS отдельного компьютера, то необходимости в настольной версии нет и нужно использовать Ubuntu Server. 

Шаг 1. Подготовительные мероприятия: установка Apache, PHP и MariaDB 

Для работы нашего персонального облака необходимы Apache, PHP и MariaDB (сервер БД на основе MySQL). Откройте терминал и введите команду: 

sudo apt install apache2 php mariadb-client mariadb-server 

Данная команда установит все необходимое программное обеспечение. 

1.png

Установка дополнительного ПО: ответьте y 

Шаг 2. Настройка вспомогательного ПО 

После установки вспомогательного ПО его необходимо настроить. Начнем с Apache. Введите команду: 

sudo sed -i «s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf 

Данная команда отключит список каталогов веб-сервера. Затем перезапустим веб-сервер и обеспечим его автоматический запуск (первая команда используется для запуска оболочки bash с привилегиями суперпользователя, остальные команды выполняются с этими привилегиями): 

sudo bash
# systemctl restart apache2
# systemctl enable apache2

2.png

Apache установлен и готов к работе 

Теперь переходим к MariaDB. По аналогии с веб-сервером, перезапустим сервер баз данных и обеспечим его автоматический запуск: 

# systemctl restart mariadb
# systemctl enable mariadb

Необходимо позаботиться о безопасности базы данных. Введите команду: 

# mysql_secure_installation 

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

3.png

Полная безопасность 

После этого перезапускаем MariaDB снова 

# systemctl restart mariadb 

Шаг 3. Установка дополнительных модулей PHP 

Ранее мы установили только общие пакеты PHP, но для работы облака нам нужны дополнительные пакеты, а именно: 

php7.2-mbstring
php7.2-xmlrpc
php7.2-soap
php-apcu
php-smbclient
php-ldap
php-redis
php-gd
php7.2-xml
php-intl
php-json
php-imagick
php7.2-mysql
php-zip
php-curl

Вы можете установить эти пакеты по одному, можете все в одной команде или разбить на группы (устанавливать по несколько пакетов за один раз) — как вам будет удобно. Для установки пакетов используется та же команда (sudo apt install).

Далее редактируем файл конфигурации php.ini: 

# nano /etc/php/7.2/apache2/php.ini 

Найдите и измените следующие директивы конфигурации: 

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 150M
display_errors = Off
date.timezone = Russia/Moscow

При желании можно разрешить загрузку файлов большего размера, как и часовой пояс. 

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Шаг 4. Создание базы данных 

Введите следующую команду: 

# mysql -u root -p 

Затем вводите SQL-запросы 

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

Здесь мы создаем базу данных nextcloud, в нее добавляем пользователя nextclouduser. Единственное, что нужно изменить — 123 — на реальный пароль. 

4.png

Подготовка базы данных

Шаг 5. Установка nextcloud 

В серверной версии Ubuntu можно установить nextcloud из репозитариев, в настольной придется скачивать с сайта (поскольку мы используем PHP 7.2, нужна версия не ниже 13): 

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.1.zip 

Распакуем архив во временный каталог, а затем переместим в каталог веб-сервера

unzip nextcloud-13.0.1.zip
sudo mv nextcloud /var/www/html/cloud/

Установите права доступа:

sudo chown -R www-data:www-data /var/www/html/cloud/
sudo chmod -R 755 /var/www/html/cloud/
5.png

Загрузка архива

Шаг 6. Создание виртуального узла Apache 

Создадим файл, в котором будет храниться конфигурация облачного сервиса: 

sudo nano /etc/apache2/sites-available/cloud.conf 

В этот файл добавим строки: 

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/cloud/
     ServerName example.com
     ServerAlias www.example.com
     Alias /nextcloud "/var/www/html/cloud/"
     <Directory /var/www/html/cloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/html/cloud
        SetEnv HTTP_HOME /var/www/html/cloud
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Сохраните файл и откройте файл /etc/hosts: 

sudo nano /etc/hosts 

В него добавим строку: 

127.0.0.1 example.com 

Далее нужно активировать следующие модули веб-сервера

sudo bash
# a2ensite cloud.conf
# a2enmod rewrite
# a2enmod headers
# a2enmod env
# a2enmod dir
# a2enmod mime

После чего — перезапустить веб-сервер:

sudo systemctl restart apache2 

Шаг 7. Проверяем, что получилось 

Откройте браузер и введите адрес, указанный в конфигурации Апача (в нашем случае — http://example.com). Далее нужно ввести имя пользователя и пароль администратора вашего персонального облака и указать параметры базы данных. 

6.png

Укажите имя пользователя и пароль администратора 

7.png

Укажите параметры базы данных и нажмите кнопку Завершить установку (на рисунке не видна) 

Собственно, на этом все. Далее вам останется настроить nextcloud под себя и подумать над бэкапами. Но в любом случае вы получили облако для хранения своих данных совершенно бесплатно

Получить консультацию специалиста