Поиск по сайту:

Как установить Nextcloud на Debian 11


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 9 (Stretch)

На этой странице

  1. Предпосылки
  2. Получить рут и обновить репозиторий
  3. Установка веб-сервера Apache
  4. Установка и настройка PHP
  5. Установка и настройка MariaDB
  6. Создание базы данных и пользователя для Nextcloud
  7. Загрузить исходный код Nextcloud
  8. Создание SSL Letsencrypt
  9. Настройка виртуального хоста Apache для Nextcloud
  10. Установка Nextcloud
  11. Настройка производительности Nextcloud
  12. Заключение

Nextcloud — это программное обеспечение с открытым исходным кодом для создания общедоступных и частных хранилищ файлов. Это позволяет вам создавать собственные службы, такие как Dropbox, Google Drive или Mega.nz. Первоначально он был создан оригинальным разработчиком owncloud Фрэнком Карличеком. В 2016 году он разветвляет проект Owncloud и создает новый проект с новым названием «Nextcloud».

К этому времени проект Nextcloud быстро растет и становится больше, чем программное обеспечение для размещения файлов, это больше похоже на платформу для синхронизации файлов и совместной работы с контентом. Благодаря множеству плагинов Nextcloud становится таким мощным программным обеспечением для совместной работы. Вы можете установить плагины для управления проектами, видеоконференций, совместного редактирования, создания заметок, почтового клиента и т. д.

В этом руководстве вы узнаете, как установить Nextcloud на последнюю версию Debian 11 Bullseye. Вы будете устанавливать Nextcloud под стеком LAMP (Linux, Apache2/httpd, MySQL/MariaDB и PHP).

Предпосылки

  • Сервер Debian 11. Убедитесь, что все пакеты обновлены до последней версии.
  • Пользователь root или пользователь с привилегиями root. Этот пользователь будет использоваться для установки новых пакетов и редактирования системных конфигураций.

Получить рут и обновить репозиторий

Сначала выполните следующую команду, чтобы получить привилегии root.

1. Если у вас установлен sudo, выполните приведенную ниже команду sudo.

sudo su

Теперь введите пароль для входа для вашего пользователя.

2. Если у вас нет пакета sudo, выполните команду su, как показано ниже.

su

Теперь введите пароль root и нажмите Enter.

3. После этого обновите все свои репозитории Debian с помощью приведенной ниже команды apt.

apt update

Установка веб-сервера Apache

После обновления репозиториев Debian вы установите веб-сервер Apache и активируете некоторые модули Apache для Nextcloud.

1. Выполните приведенную ниже команду apt, чтобы установить веб-сервер apache.

apt install apache2

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

2. Если установка завершена, проверьте службу apache с помощью следующей команды.

systemctl is-enabled apache2
systemctl status apache2

Вы увидите, что вывод включен, что означает, что служба apache автоматически запустится при запуске системы. И текущее состояние службы апача, она активна (работает).

3. Затем включите модули Apache ssl, перезапись и заголовки, выполнив приведенную ниже команду a2enmod.

a2enmod ssl rewrite headers

Ниже приведен результат, который вы получите.

4. После этого выполните следующую команду, чтобы перезапустить службу apache.

systemctl restart apache2

Будут применены новые модули Apache, проверьте эти модули с помощью приведенной ниже команды apachectl.

apachectl -M | egrep "ssl|rewrite|headers"

Вы увидите аналогичный вывод, как показано ниже.

Установка и настройка PHP

В этом руководстве вы будете развертывать Nextcloud с последней стабильной версией PHP 8.0.

По умолчанию репозиторий Debian предоставляет пакеты для PHP 8.0. Но для Nextcloud требуются дополнительные пакеты PHP, которые можно установить из стороннего репозитория. И вы добавите новый репозиторий в свою систему Debian.

1. Выполните приведенную ниже команду, чтобы добавить репозиторий PHP для системы Debian.

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main"\
| sudo tee /etc/apt/sources.list.d/sury-php.list

Загрузите ключ GPG в каталог /etc/apt/trusted.gpg.d.

curl -o /etc/apt/trusted.gpg.d/sury-php8.gpg https://packages.sury.org/php/apt.gpg

Теперь снова запустите команду apt update, чтобы обновить все репозитории.

apt update

2. Установите пакеты PHP и дополнительные модули PHP для Nextcloud с помощью приведенной ниже команды apt.

apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu

После этого снова выполните команду apt для установки некоторых дополнительных пакетов.

apt install -y libmagickcore-dev

Пакеты libmagickcore-dev необходимы php-imagick для обработки изображений SVG в Nextcloud.

3. Если установка всех пакетов завершена, измените рабочий каталог на /etc/php/8.0/apache2 и отредактируйте конфигурацию php.ini с помощью nano.

cd /etc/php/8.0/apache2/
nano php.ini

Для базового развертывания nextcloud измените параметры по умолчанию, используя следующую конфигурацию.

file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam
output_buffering = Off

Раскомментируйте параметр zend_extension=opcache, чтобы загрузить расширение opcache.

zend_extension=opcache

Перейдите в раздел [opcache] и добавьте следующую конфигурацию.

[opcache]
...
....
.....
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

Сохраните конфигурацию, нажав кнопку Ctrl+x и введите y, затем нажмите Enter для выхода.

4. Теперь перезапустите службу apache, чтобы применить новые изменения, используя приведенную ниже команду.

systemctl restart apache2

Установка и настройка MariaDB

На этом этапе вы будете устанавливать сервер базы данных mariadb, обеспечивать безопасность развертывания mariadb и создавать новую базу данных и пользователя для Nextcloud.

1. Чтобы установить сервер базы данных mariadb, выполните приведенную ниже команду.

apt install mariadb-server mariadb-client

Введите y, чтобы подтвердить и установить пакеты mariadb.

2. После завершения установки проверьте службу mariadb с помощью следующей команды.

systemctl is-enabled mariadb
systemctl status mariadb

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

3. Затем вам необходимо защитить развертывание mariadb, установив пароль root для mariadb и удалив некоторую конфигурацию по умолчанию. Для этого вы можете использовать инструмент командной строки mysql_secure_installation, который включен в установку mariadb по умолчанию.

Выполните приведенную ниже команду \mysql_secure_installation\.

mysql_secure_installation

Сначала вам будет предложено ввести пароль root mariadb. Просто нажмите Enter, чтобы продолжить.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Введите Y, чтобы включить аутентификацию unix_socket для пользователя root.

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!

Введите надежный корневой пароль mariadb и повторите, затем нажмите \Enter\, чтобы продолжить.

Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Теперь введите \Y\ и нажмите \Enter\, чтобы удалить анонимного пользователя по умолчанию с сервера mariadb.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

После этого отключите удаленный вход для пользователя root по умолчанию. Введите \Y\ и нажмите \Enter\, чтобы продолжить.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

Введите \Y\ еще раз, чтобы удалить базу данных по умолчанию \test\ и нажмите \Enter\.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

И последнее, введите \Y\ еще раз, чтобы перезагрузить все привилегии таблиц, чтобы применить новую конфигурацию.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Теперь процесс завершен, и вы увидите следующий вывод.

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Создание базы данных и пользователя для Nextcloud

1. Войдите в оболочку mariadb, используя приведенную ниже команду mysql.

mysql -u root -p

2. Теперь выполните следующий запрос mysql, чтобы создать новую базу данных \nextcloud_db\.

CREATE DATABASE nextcloud_db;

3. Выполните следующий запрос, чтобы создать нового пользователя базы данных \nextclouduser\. Измените \strongpassword\ на свой надежный пароль.

CREATE USER  IDENTIFIED BY 'StrongPassword';

4. Разрешить пользователю \nextclouduser\ доступ и запись \nextcloud_db\, используя следующий запрос.

GRANT ALL PRIVILEGES ON nextcloud_db.* TO ;

5. Теперь перезагрузите все права доступа к таблицам, чтобы применить новую конфигурацию базы данных.

FLUSH PRIVILEGES;

Затем вы можете ввести \уход\ и нажать \Ввод\, чтобы выйти из оболочки mariadb.

Скачать исходный код Nextcloud

1. Измените рабочий каталог на \/var/www\ и загрузите последнюю версию исходного кода Nextcloud с помощью команды wget, как показано ниже.

cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-22.1.1.zip

2. Теперь установите разархивированный пакет с помощью следующей команды.

apt install unzip

3. Затем извлеките исходный код Nextcloud \nextcloud.zip\, и вы получите новый каталог \nextcloud\, затем измените владельца каталога \nextcloud\ на пользователя \www-data\. .

unzip nextcloud-22.1.0.zip
chown -R www-data:www-data nextcloud

Теперь вы готовы создать SSL Letsencrypt и настроить виртуальный хост Apache для Nextcloud.

Генерация SSL Letsencrypt

На этом этапе вы будете устанавливать инструмент certbot и создавать SSL-сертификаты для установки Nextcloud. Вы будете генерировать SSL Letsencrypts с плагином webroot.

1. Выполните следующую команду, чтобы установить инструмент certbot для создания SSL Letsencrypt.

apt install certbot

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

2. После завершения установки создайте новый каталог для авторизации letsencrypt, используя следующие команды.

mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt

3. Затем измените рабочий каталог на \/etc/apache2/conf-available/\ и создайте новую конфигурацию \well-known.conf\, используя nano.

cd /etc/apache2/conf-available/
nano well-known.conf

Скопируйте и вставьте следующую конфигурацию.

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

Нажмите \Ctrl+x\, введите \y\ и нажмите Enter, чтобы сохранить конфигурацию и выйти.

Теперь активируйте новую конфигурацию, создав символическую ссылку файла well-known.conf на каталог с поддержкой conf с помощью команды ln ниже.

ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/

4. Теперь выполните следующие команды, чтобы проверить конфигурацию Apache и перезапустить службу Apache.

apachectl configtest
systemctl restart apache2

Если у вас нет ошибок, вы готовы сгенерировать SSL Letsencrypt с плагином webroot.

5. Перед созданием SSL Letsencrypt убедитесь, что ваше доменное имя разрешается в IP-адрес сервера. После этого вы можете сгенерировать SSL Letsencrypt с плагином webroot, выполнив приведенную ниже команду certbot. Также измените адрес электронной почты и доменное имя на свои.

sudo certbot certonly --agree-tos --email  --webroot -w /var/lib/letsencrypt/ -d files.domain-name.io

Когда процесс завершится, ваши SSL-сертификаты будут доступны в каталоге \/etc/letsencrypt/live/files.domain-name.io/\.

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

На этом этапе вы добавите новую конфигурацию виртуального хоста apache/httpd для Nextcloud.

1. Измените рабочий каталог на \/etc/apache2/sites-available/\ и создайте новую конфигурацию \nextcloud.conf\, используя nano.

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

Измените подробное доменное имя и каталог SSL-пути на свои собственные и вставьте конфигурацию в файл \nextcloud.conf\.

<VirtualHost *:80>
    ServerName files.domain-name.io
    ServerAlias www.files.domain-name.io

    # auto redirect HTTP to HTTPS
    Redirect permanent / https://files.domain-name.io/
</VirtualHost>

<VirtualHost *:443>
    ServerName files.domain-name.io
    ServerAlias www.files.domain-name.io
 
    DocumentRoot /var/www/nextcloud/

    Protocols h2 http/1.1

    # auto redirect www to non-www
    <If "%{HTTP_HOST} == 'www.files.domain-name.io'">
        Redirect permanent / https://files.domain-name.io/
    </If>

    # log files
    ErrorLog /var/log/apache2/files.domain-name.io-error.log
    CustomLog /var/log/apache2/files.domain-name.io-access.log combined

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/privkey.pem

    # HSTS
    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>

    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>
</VirtualHost>

Нажмите \Ctrl+x\ и введите \Y\, затем нажмите Enter, чтобы сохранить конфигурацию и выйти.

2. Теперь активируйте конфигурацию виртуального хоста nextcloud.conf, выполнив следующую команду.

a2ensite nextcloud.conf

3. Теперь проверьте новую конфигурацию apache и убедитесь, что у вас нет ошибок, затем перезапустите службу apache.

apachectl configtest
systemctl restart apache2

Установка Nextcloud

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

1. Откройте веб-браузер и введите URL-адрес вашей установки Nextcloud.

https://files.domain-name.io

Создайте своего первого пользователя и администратора для Nextcloud, и каталог данных будет доступен для записи пользователю www-data.

2. Прокрутите страницу вниз, введите имя базы данных, пользователя и пароль. Снимите флажок «Установить рекомендуемые приложения», чтобы ускорить установку. Затем нажмите кнопку «Завершить настройку», чтобы установить Nextcloud.

3. Если установка прошла успешно, вы увидите панель управления Nextcloud, как показано ниже.

4. Теперь щелкните значок пользователя в правом верхнем углу и выберите меню «Настройки». В разделе «Администрирование» нажмите «Обзор».

  • В разделе «Предупреждения о безопасности и настройке» вы найдете некоторые рекомендации, которые вам необходимо выполнить, в зависимости от вашей среды установки.
  • В разделе «Версии» вы увидите текущую ветку вашей установки Nextcloud.

5. Далее щелкните меню Система в нижней части раздела Администрирование.

Вы увидите подробную информацию о вашей среде, загрузке системы, состоянии дискового пространства, состоянии памяти, состоянии сети и т. д.

6. Как было сказано ранее, nextcloud стал больше, чем просто синхронизация файлов. Благодаря поддержке дополнительных приложений/плагинов он становится инструментом для совместной работы.

В правом верхнем углу значка профиля щелкните меню «Приложения», и вы увидите магазин приложений nextcloud, как показано ниже.

Выберите приложения, которые хотите установить, затем нажмите кнопку «Загрузить» и включите установку новых приложений.

7. Ниже представлен вид панели пользователя Nextcloud по умолчанию. Вы можете расширить функциональность панели инструментов, установив дополнительные плагины.

Настройка производительности Nextcloud

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

1. В верхнем разделе установки PHP вы уже настроили PHP для кэширования. Чтобы включить кэширование в Nextcloud, отредактируйте конфигурацию Nextcloud \config.php\.

Измените рабочий каталог на \/var/www/nextcloud/config\ и отредактируйте конфигурацию \config.php\ с помощью редактора nano.

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

Добавьте следующую конфигурацию внутри массива ( .. ); кронштейн, как показано ниже

<?php
$CONFIG = array (
....
  # Additional configuration
  'memcache.local' => '\OC\Memcache\APCu',
);

Теперь нажмите кнопку \Ctrl+x\ и введите \y\, затем нажмите Enter, чтобы сохранить конфигурацию и выйти.

2. Система Nextcloud должна регулярно запускать некоторые фоновые задачи и без какого-либо взаимодействия пользователя/администратора. Для этого вы можете использовать cronjob для задач планировщика задач Nextcloud.

В системе Debian Linux установка Apache по умолчанию выполняется под пользователем \www-data\. Создайте новый cronjob для пользователя \www-data\, используя приведенную ниже команду.

crontab -u www-data -e

Если в вашей системе есть несколько редакторов, выберите удобный для вас редактор. Для этого руководства мы будем использовать редактор nano.

Добавьте следующую конфигурацию.

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Сохраните конфигурацию и выйдите.

Конфигурация Cronjob, которую вы должны знать:

  • Эта конфигурация cronjob позволяет пользователю \www-data\ выполнять скрипт PHP \/var/www/nextcloud/cron.php\ каждые 5 минут.

Чтобы проверить конфигурацию cronjob, вы можете выполнить следующую команду.

crontab -u www-data -l

Если ваша конфигурация прошла успешно, вы получите конфигурацию сверху в качестве вывода. В противном случае вы получите пустой результат.

Заключение

Поздравляем! Вы успешно установили Nextcloud на Debian 11 Bullseye. Сервер Nextcloud работает в стеке LAMP с включенным SSL. Кроме того, ваша установка Nextcloud работает с включенным кэшированием памяти с расширениями PHP APC и opcache.