Конфигурация сервера NextCloud на Ubuntu 16.04 с использованием Apache, MariaDB и PHP7

Вышла новая версия NextCloud 11! Это полноценная альтернатива ownCloud. В данном руководстве мы подробно расскажем, как установить персональное облачное хранилище NextCloud на VPS с операционной системой Ubuntu 16.04, используя Apache, MariaDB и PHP7.

Сравнение NextCloud и ownCloud

NextCloud представляет собой ответвление (форк) открытого проекта ownCloud. Вот ключевые отличия:

  • Это полностью открытый исходный код. Все функции, в том числе и корпоративные, доступны в открытом доступе. NextCloud предлагает платные услуги поддержки, но не реализует корпоративный продукт.
  • Он ставит сообщество выше, чем ownCloud.

Исходные условия

Для того чтобы воспользоваться данным руководством, вам потребуется:

  • Сервер на базе Ubuntu 16.04. Зарегистрируйтесь по этой ссылке и получите $10 в виде бесплатного кредита на VPS от Digital Ocean.
  • Имя домена.
  • Стек LAMP установлен на Ubuntu 16.04. Ознакомьтесь с этим простым руководством. Установите Apache, MariaDB и PHP7 (стек LAMP) на Ubuntu 16.04 LTS.

После выполнения предварительных требований, вернитесь сюда и продолжайте чтение.

Инсталляция сервера NextCloud 11 на Ubuntu 16.04

Загрузите zip-архив сервера NextCloud на свой сервер. На данный момент последняя стабильная версия – 11.0.1, но вам может потребоваться обновить номер версии. Чтобы узнать актуальную версию, посетите сайт https://nextcloud.com/install и нажмите на кнопку загрузки.

wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip

sudo apt install unzip unzip nextcloud-11.0.1.zip

В текущем рабочем каталоге будет организован новый каталог под названием nextcloud. Переместите созданный каталог и все его содержимое в корневую директорию сервера Apache.

sudo cp - r nextcloud /var/www/

После этого необходимо дать пользователю Apache (www-data) разрешение на запись.

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

Формирование базы данных и учетной записи пользователя в MariaDB.

Подключитесь к серверу баз данных MariaDB, используя эту команду:

mysql - u root - p

После этого необходимо создать базу данных для Nextcloud. В данном руководстве база данных будет именоваться nextcloud, но вы можете выбрать любое другое название по вашему усмотрению.

Читайте также:  FreeBSD восстановлиаем /dev/null

create database nextcloud;

Создайте нового пользователя для базы данных. Вы можете выбрать любое удобное имя для него. Не забудьте заменить your-password на желаемый вами пароль.

create user nextclouduser@localhost распознан по 'your-password';

Выдайте данному пользователю все права доступа к базе данных nextcloud.

grant all privileges on nextcloudnextclouduser@localhost распознан по 'your-password';

Отмените привилегии и покиньте систему.

flush privileges; exit;

Активация бинарного логирования в MariaDB.

Внесите изменения в конфигурационный файл mysqld.

sudo nano /etc/mysql/mariadb.conf.d/50-server. cnf

Включите следующие три строки в раздел [mysqld].

log-bin = /var/log/mysql/mariadb-bin log-bin-index = /var/log/mysql/mariadb-bin. index binlog_format = mixed

Бинарный лог должен быть в смешанном формате. После этого сохраните файл и закройте его. Затем перезапустите службу MariaDB.

sudo systemctl restart mysql

Теперь бинарный лог активирован в MariaDB.

Настройка файла виртуального хоста Apache для Nextcloud.

В каталоге /etc/apache2/sites-available мы сформируем файл nextcloud.conf.

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

Скопируйте и вставьте приведенные ниже строки в файл. Замените текст, выделенный красным, на ваше реальное доменное имя. Также необходимо указать ваше доменное имя на IP-адрес вашего сервера Ubuntu в системе DNS.

Корень документа установлен на "/var/www/nextcloud", имя сервера:nextcloud. your-domain.comОшибка: журнал $/error.log, пользовательский журнал $/access.log в комбинированном формате.Опции +СледоватьСимволическимСсылкам РазрешитьПереопределение ВсеДав выключен.Установите переменную окружения HOME в значение /var/www/nextcloud и переменную HTTP_HOME также в /var/www/nextcloud. Разрешите доступ любым образом.

Сохраните изменения в файле и закройте его. После этого создайте символическую ссылку на каталог /etc/apache2/sites-enabled/.

sudo ln - s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

Активируйте указанные модули Apache.

sudo a2enmod rewrite headers env dir mime setenvif ssl

Убедитесь, что все нужные модули PHP установлены.

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl php7.0-zip php7.0-xml php7.0-mbstring

Перезапустите сервер Apache, чтобы активировать указанные модули Apache и PHP.

sudo systemctl restart apache2

Завершите процесс установки в вашем интернет-браузере.

Теперь в адресной строке вашего веб-браузера введите название вашего домена. Например,

nextcloud. your-domain.com

Вам будет предложено зарегистрировать учетную запись администратора. Папка данных служит для хранения файлов пользователей. Для повышения уровня безопасности рекомендуется размещать директорию данных вне корневой папки веб-приложения Nextcloud, например, в /var/www/nextcloud-data, которую можно создать с помощью следующей команды:

Читайте также:  Защита от DDoS с помощью tcpdump

sudo mkdir /var/www/nextcloud-data/

После этого проверьте, что пользователь Apache (www-data) обладает правами на запись в папку с данными.

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

Если вас беспокоит возможность кражи имени пользователя и пароля, сначала рекомендуется активировать HTTPS (см. инструкции ниже), а затем ввести свои учетные данные и информацию о базе данных.

установите Nextcloud на Ubuntu 16.04 и 16.10

После этого укажите имя пользователя базы данных, название базы данных и пароль, которые вы создали ранее, для подключения Nextcloud к базе данных MariaDB.

Установка Nextcloud на Ubuntu 16.04.

После окончания установки вам будет представлен веб-интерфейс Nextcloud. Поздравляю! Теперь вы можете начать пользоваться им в качестве своего личного облачного хранилища.

Nextcloud на LAMP.

Гарантируйте безопасность, используя протокол HTTPS.

Если вы установили nextCloud на своем локальном компьютере, этот шаг можно пропустить.

HTTPS защищает от атак типа «человек посередине» и предотвращает перехват паролей. Мы можем бесплатно получить сертификат TLS/SSL от Let’s Encrypt CA. Сначала нужно установить клиент certbot, который в репозитории Ubuntu все еще называется letsencrypt. Для установки клиента и плагина для Apache используйте следующую команду.

sudo apt install letsencrypt python-letsencrypt-apache

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

sudo letsencrypt --apache --agree-tos --email ваш-адрес-электронной-почты - d nextcloud. ваш-домен.com

Вы получите возможность выбрать между простым и надежным вариантом. Рекомендуется остановиться на надежном варианте, чтобы все http-запросы перенаправлялись на https.

let

По нажатию кнопки ОК, вы получите и установите бесплатный сертификат TLS/SSL на свой сервер Apache.

let

Теперь снова зайдите на ваш сайт Nextcloud. Вы заметите, что он автоматически перенаправляется на https.

Стандартная настройка SSL в Apache не включает заголовок безопасности HSTS. Для его добавления необходимо внести изменения в файл конфигурации SSL.

sudo nano /etc/apache2/sites-available/nextcloud-le-ssl.conf

Добавьте указанные строки в файл сразу после строки SSLCertificateKeyFile.

Заголовок всегда устанавливает Strict-Transport-Security с параметрами "max-age=15768000; preload".

Сохраните изменения в файле и закройте его. После этого перезапустите Apache.

sudo systemctl reload apache2

Клиент для персональных компьютеров с операционной системой Linux.

Клиент NextCloud можно установить на Ubuntu 16.04 или Ubuntu 17.10 с помощью официального PPA, применив следующие команды.

Читайте также:  Как установить PhantomJS на Ubuntu и Debian

sudo add-apt-repository ppa:nextcloud-devs/client sudo apt update sudo apt install nextcloud-client

Если вы используете среду рабочего стола Gnome, просто перейдите в Настройки > Онлайн-аккаунт >NextCloud (ownCloud) позволяет вам настроить систему для работы с файлами. Кроме того, вы можете удобно получить доступ к своим данным Nextcloud через WebDAV.

Конфигурация кэша Redis для NextCloud

Замечание: использование кэша Redis не является обязательным. Вы можете пропустить этот раздел без опасений.

При переходе на страницу администратора nextCloud вы можете заметить следующее уведомление:

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

Мы настроим кэширование памяти для nextCloud, используя Redis. Установите сервер Redis из репозитория для Ubuntu 16.04.

sudo apt install redis-server

Вы можете узнать версию, используя:

redis-server - v

Redis server v=3.0.6 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=687a2a319020fa42

Теперь мы можем удостовериться, что сервер Redis функционирует.

systemctl status redis

ubuntu-16.04-redis-server-nextcloud-caching

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

sudo systemctl start redis-server

Если автозапуск не активирован при загрузке, вы можете воспользоваться следующей командой для его включения:

sudo systemctl enable redis-server

Теперь приступим к настройке Redis в роли кеша для nextCloud. Установите расширение PHP, необходимое для работы с Redis.

sudo apt install php-redis

Убедитесь, что расширение активно.

php --ri redis

Расширение Redis активировано, и установлена версия 2.2.8, что превышает минимальную необходимую версию 2.2.5+ для nextCloud. Вам, возможно, потребуется вручную активировать расширение Redis, перезапустив Apache.

sudo systemctl restart apache2

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

sudo phpenmod redis

Затем внесите изменения в файл конфигурации nextCloud.

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

Вставьте указанные строки перед строкой );.

'memcache. distributed' => '\OC\Memcache\Redis', 'memcache. local' => '\OC\Memcache\Redis', 'memcache. locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),

Установка кэша Redis для Nextcloud на Ubuntu 16.04.

Сохраните файл и закройте его. Затем вернитесь на страницу администратора NextCloud, и предупреждение о кэшировании памяти должно исчезнуть.

Поздравляем! Вам удалось успешно настроить личное облачное хранилище NextCloud на VPS с Ubuntu 16.04, используя Apache, MariaDB и PHP7.

Ваши комментарии, вопросы и идеи всегда будут рады услышать. Если этот пост оказался для вас полезным, не забудьте подписаться на нашу бесплатную рассылку. Также можете следить за нами в Google+, Twitter или лайкнуть нашу страницу на Facebook.