Nextcloud — это набор приложений для создания своего облачного хранилища, можно конечно купить подписку где-нибудь на яндекс диске или гугл диске, но я сторонник того чтобы все держать на своих серверах.
1. Подготовка системы
На свежеустановленной системе для начала правим репозитории.
apt edit—sources
|
#Debian 11 (Bullseye)
deb http://deb.debian.org/debian bullseye main contrib non-free
deb—src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb—src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb—src http://deb.debian.org/debian bullseye-updates main contrib non-free
|
apt update
|
2. Apache, база данных mariadb и прочие системные утилиты.
apt install apache2 libapache2—mod—php mariadb—server php—xml php—cli php—cgi php—mysql php—mbstring php—gd php—curl php—zip php—intl php—bcmath php—gmp php—imagick unzip imagemagick python3—certbot—apache —y
|
3. Настройка mariadb
Настраиваем пароль root для SQL и убираем анонимных пользователей
mysql_secure_installation
|
Подключаемся к SQL и создаем базу и пользователя
mysql —u root —p
|
Создаем базу данных nextcloud
CREATE DATABASE nextcloud;
|
Создаем пользователя nextclouduser и устанавливаем пароль password
CREATE USER ‘nextclouduser’@‘localhost’ IDENTIFIED BY ‘password’;
|
Даем права на базу данных нашему пользователю
GRANT ALL ON nextcloud.* TO ‘nextclouduser’@‘localhost’;
|
Сбрасываем привилегии и выходим
flush privileges;
exit
|
4. Скачивание и подготовка Nextcloud
Далее идем на сайт и скачиваем последнюю версию
wget https://download.nextcloud.com/server/releases/nextcloud-23.0.3.zip
|
Распаковываем скачанный архив
unzip nextcloud—*.zip
|
Далее переносим файлы и даем необходимый права
cp —r nextcloud /var/www/cloud
|
chown —R www—data:www—data /var/www/cloud
|
Также не забываем создать папку для данных и дать права
mkdir /mnt/cloud
|
chown —R www—data:www—data /mnt/cloud/
|
5. Настройка Apache
Теперь переходим к настройке apache2. Для начала отключим сайт по умолчанию и удалим стандартные файлы конфигурации.
a2dissite 000—default.conf
|
rm /etc/apache2/sites—available/*
|
rm —rf /var/www/html/
|
Теперь создаем конфигурацию для nextcloud
nano /etc/apache2/sites—available/cloud.conf
|
<VirtualHost *:80>
DocumentRoot /var/www/cloud/
ServerName cloud.sppec.ru
<Directory /var/www/cloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
|
Активируем сайт
a2ensite cloud.conf
|
Включаем модули
a2enmod rewrite
|
Перезапускаем apache и заходим на наш сайт в браузере
Используется небезопасное соединение по протоколу HTTP
Запускаем certbot который мы поставили еще в самом начале
certbot —apache
|
Он спросит вашу электронную почту, также соглашаемся с лицензией, по поводу рассылки решайте самостоятельно. Нас интересует секция с выбором домена.
Which names would you like to activate HTTPS for?
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
1: cloud0.angald.ru
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter ‘c’ to cancel):
|
Выбираем наш домен и ждем окончания процедуры получения сертификата. Чтобы вручную не обновлять сертификат пропишем задание в cron
crontab —e
|
Добавляем строчку
55 23 15 * * certbot renew
|
Сохраняемся и можно уже не переживать по поводу сертификата.