Вы хотели бы иметь собственный аналог Dropbox или Google Drive? Если вы занимаетесь фото, видео или просто много путешествуете и привозите кучу снимков и записей — наверняка. Однако многих останавливал тот факт, что в большинстве случаев программы такого рода проприетарные. А за фирменные NAS-ы нужно выложит кругленькую сумму. Но, как оказалось, не всё так плохо. Ведь есть NextCloud.
Разработчик Фрэнк Карлитшек, который ранее работал в OwnCloud, Inc, после ухода из компании разработал NextCloud и продолжает развивать его совместно с другими разработчиками OwnCloud. И сегодня мы поговорим о том, как установить Nextcloud в Ubuntu 18.04.
Как установить NextCloud на Ubuntu 18.04
Шаг 1: Установка веб-сервера Apache
Это веб-сервер, который нужен для работы системы. Устанавливаем его командой в Терминале:
sudo apt install apache2
После этого вводим команду:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Это отключит список каталогов для Apache. После этого нужно остановить, запустить и активировать службу Apache2. Это позволит ей запускаться при загрузке ОС. Выполняем команды:
sudo systemctl restart apache2
sudo systemctl enable apache2
Шаг 2: Установка MariaDB
Это сервер баз данных, который используется в NextCloud. Установим его командой:
sudo apt install mariadb-client mariadb-server
После установки по аналогии с Apache вводим команды:
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Это позволит серверу стартовать при запуске ОС. Далее настраиваем параметры безопасности. Вводим команду:
sudo mysql_secure_installation
После этого система задаст несколько вопросов, отвечаем на них так:
Перезапускаем сервер базы данных командой:
sudo systemctl restart mariadb
Шаг 3: Установка PHP и дополнительных модулей
Для работы установим новый PHP 7.1. Его пока нет в стандартных репозиториях Ubuntu, поому ставим из сторонних. Выполняем команды:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Затем обновляем список пакетов:
sudo apt update
Устанавливаем PHP 7.1 и остальные пакеты одной командой:
sudo apt install php7.1 libapache2-mod-php7.1 php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-apcu php7.1-smbclient php7.1-ldap php7.1-redis php7.1-gd php7.1-xml php7.1-intl php7.1-json php7.1-imagick php7.1-mysql php7.1-cli php7.1-mcrypt php7.1-ldap php7.1-zip php7.1-curl
Производим настройку после установки. Вводим команду:
sudo nano /etc/php/7.1/apache2/php.ini
В файле находим нужные строчки и ставим как в примере (таймзону можете поставить свою). Для поиска по файлу используется комбинация Ctrl + W. Для записи изменений — Ctrl + O. Для выхода — Ctrl + X.
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
display_errors = Off
date.timezone = Russia/Moscow
Шаг 4: Настройка таблиц для NextCloud
Теперь нужно сконфигурировать первую базу MariaDB. Для авторизации на сервере вводим:
sudo 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;
На этом шаге мы создали базу, юзера в ней, назначили ему пароль и дали пользователю все права для работы с базой.
Шаг 5: Установка движка NextCloud
Сам NextCloud нужно устанавливать не из репозиториев, а с сайта. Это также делаем в Терминале. Вводим:
cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip
unzip nextcloud-11.0.1.zip
sudo mv nextcloud /var/www/html/nextcloud/
После распаковки настраиваем NextCloud:
sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/
Шаг 6: Настройка Apache
Это шаг, на котором мы настроим работу пользователей с контентом в облаке. Для этого вводим:
sudo nano /etc/apache2/sites-available/nextcloud.conf
В открывшийся пустой файл копируем следующие данные:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/nextcloud/
ServerName example.com
ServerAlias www.example.com
Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраняем (Ctrl + O) и выходим (Ctrl + X). Далее открываем /etc/hosts и добавляем туда строку:
sudo nano /etc/hosts
Шаг 7: Активация модулей NextCloud
В терминале вводим последовательно команды:
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
Перезапускаем службу командой:
sudo systemctl restart apache2
Шаг 8. Тестирование работы Nextcloud
Теперь открываем браузер и заходим по адресу, который мы внесли ранее. В нашем случае это http://example.com. Если всё сделано правильно, вы увидите стартовую страницу NextCloud. Там можно авторизоваться в базе данных и начать работу.