NextCloud — это бесплатный сервер для обмена файлами и хостинга с открытым исходным кодом, созданный на основе проекта ownCloud. Он очень похож на другие службы обмена файлами, такие как Google Drive, Dropbox и iCloud. NextCloud позволяет централизованно хранить файлы, документы, изображения, фильмы и видео. С NextCloud вы можете обмениваться файлами, контактами и любой другой поддержкой со своими друзьями и клиентами. NextCloud интегрируется с почтой, календарем, контактами и другими функциями, которые помогут вашим командам выполнять свою работу быстрее и проще. Вы можете установить клиент NextCloud на настольный компьютер для синхронизации файлов с сервером Nextcloud. Настольные клиенты доступны для большинства операционных систем, включая Windows, macOS, FreeBSD и Linux.
В этом руководстве мы объясним, как установить NextCloud и защитить его с помощью Let’s Encrypt SSL в Debian 10.
Предпосылки
- Сервер под управлением Debian 10.
- Действительное доменное имя, указанное с IP-адресом вашего сервера. В этом руководстве мы будем использовать, например, домен
nextcloud.example.com
. - Пользователь с привилегиями sudo.
Установите Apache, MariaDB и PHP
NextCloud работает на веб-сервере, написанном на PHP, и использует MariaDB для хранения своих данных. Затем вам нужно будет установить Apache, MariaDB, PHP и другие необходимые пакеты в вашей системе. Вы можете установить их все, выполнив следующую команду:
sudo apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y
После установки всех пакетов откройте файл php.ini и измените некоторые рекомендуемые настройки:
sudo nano /etc/php/7.3/apache2/php.ini
Измените следующие настройки:
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300
Сохраните и закройте файл, когда закончите. Затем запустите службы Apache и MariaDB и включите их после перезагрузки системы с помощью следующей команды:
sudo systemctl start apache2
sudo systemctl start mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadb
После этого вы можете перейти к следующему шагу.
Настроить базу данных для NextCloud
Далее вам нужно будет создать базу данных и пользователя базы данных для NextCloud. Для этого войдите в оболочку MariaDB с помощью следующей команды:
sudo mysql -u root -p
При появлении запроса укажите пароль root, затем создайте базу данных и пользователя с помощью следующей команды:
CREATE DATABASE nextclouddb;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
Затем предоставьте все привилегии nextclouddb с помощью следующей команды:
GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';
Затем снимите привилегии и выйдите из оболочки MariaDB с помощью следующей команды:
FLUSH PRIVILEGES;
EXIT;
После этого вы можете перейти к следующему шагу.
Скачать NextCloud
Сначала посетите страницу загрузки NextCloud и загрузите последнюю версию NextCloud в свою систему. На момент написания этой статьи последняя версия NextCloud — 17.0.1. Вы можете скачать его с помощью следующей команды:
sudo wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip
После завершения загрузки разархивируйте загруженный файл с помощью следующей команды:
sudo unzip nextcloud-17.0.1.zip
Затем переместите извлеченный каталог в корневой веб-каталог Apache:
sudo mv nextcloud /var/www/html/
Затем предоставьте соответствующие разрешения каталогу nextcloud с помощью следующей команды:
sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/
После этого вы можете перейти к следующему шагу.
Настройте Apache для NextCloud
Затем вам нужно будет создать файл конфигурации виртуального хоста Apache для обслуживания NextCloud. Вы можете создать его с помощью следующей команды:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Добавьте следующие строки:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/nextcloud/ServerName nextcloud.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>
Сохраните и закройте файл, когда закончите. Затем включите файл виртуального хоста Apache и другие необходимые модули, используя следующие команды:
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod mime
sudo a2enmod env
sudo a2enmod dir
Наконец, перезапустите службу Apache, чтобы применить новую конфигурацию:
sudo systemctl restart apache2
Защитите NextCloud с помощью бесплатного Let's Encrypt SSL
Теперь NextCloud установлен и настроен. После этого рекомендуется защитить его с помощью бесплатного Let's Encrypt SSL. Для этого сначала установите клиент Certbot с помощью следующей команды:
sudo apt-get install python-certbot-apache -y
После установки вы можете запустить следующую команду, чтобы установить сертификат Let's Encrypt для вашего домена nextcloud.example.com.
sudo certbot --apache -d nextcloud.example.com
Во время установки вам будет предложено указать свой адрес электронной почты и принять условия обслуживания, как показано ниже:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nextcloud.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/nextcloud-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/nextcloud-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Затем введите 2 и нажмите Enter, чтобы загрузить и установить бесплатный SSL-сертификат для вашего домена. После успешного завершения установки. Вы должны получить следующий результат:
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/nextcloud.conf to ssl vhost in /etc/apache2/sites-available/nextcloud-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://nextcloud.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=nextcloud.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2019-10-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG /Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
После этого вы можете перейти к следующему шагу.
Войдите в веб-интерфейс NextCloud
Теперь NextCloud настроен и защищен с помощью Let's Encrypt SSL. Затем откройте веб-браузер и введите URL-адрес https://nextcloud.example.com. Вы будете перенаправлены на следующую страницу:
Теперь введите имя пользователя и пароль администратора, папку «Данные», правильные учетные данные базы данных и нажмите кнопку « Завершить настройку ». Вы будете перенаправлены на панель инструментов NextCloud.
Вывод
Поздравляем! вы успешно установили и защитили NextCloud с помощью бесплатного Let's Encrypt SSL на Debian 10. Теперь вы можете легко обмениваться файлами, документами и мультимедиа с другими пользователями с помощью веб-интерфейса NextCloud.