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

Как установить Nextcloud на Rocky Linux


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

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

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

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

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

Предпосылки

  • Сервер Rocky Linux. Убедитесь, что все пакеты обновлены до последней версии.
  • Пользователь с привилегиями root. Этот пользователь получит привилегии root с помощью команды sudo.

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

Сначала вы будете устанавливать веб-сервер Apache или httpd на сервер Rocky Linux.

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

sudo dnf install httpd

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

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

sudo systemctl enable httpd
sudo systemctl start httpd

Команда systemctl enable позволит службе запускаться при каждой загрузке.

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

sudo systemctl status httpd

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

Как видно на верхнем снимке экрана, httpd активен и работает.

Установка PHP на Rocky Linux

На данный момент для установки Nextcloud требуется PHP 7.4 или выше. Теперь вы будете устанавливать PHP 7.4 из репозитория remi.

1. Выполните следующую команду, чтобы добавить репозиторий epel и remi.

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Введите \y\ и нажмите \Enter\, чтобы добавить репозиторий epel и remi.

Когда установка будет завершена, проверьте репозиторий epel и Remi, используя следующую команду.

sudo dnf repolist

Вы увидите репозиторий epel и remi в списке репозиториев.

2. Затем сбросьте модуль репозитория PHP по умолчанию. Затем включите модуль для PHP 7.4 из репозитория remi.

Выполните следующую команду, чтобы сбросить репозиторий модуля php по умолчанию.

sudo dnf module reset php

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

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

sudo dnf module enable php:remi-7.4

Введите \y\ для подтверждения и нажмите \Enter\, чтобы продолжить. Теперь вы готовы установить PHP и все расширения для установки WordPress.

3. Выполните следующую команду, чтобы установить php с некоторыми необходимыми расширениями.

sudo dnf install php php-ctype php-curl php-gd php-iconv php-json php-libxml php-mbstring php-openssl php-posix php-session php-xml php-zip php-zlib php-pdo php-mysqlnd php-intl php-bcmath php-gmp php-imagick php-apcu

4. После завершения установки PHP отредактируйте конфигурацию \php.ini\ с помощью редактора nano.

nano /etc/php.ini

Измените значение по умолчанию с помощью приведенной ниже конфигурации.

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

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

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

  • Для производства Nextcloud вам потребуется \memory_limit\ более 512 МБ.
  • Параметр \upload_max_filesize\ позволяет настроить максимальный размер загрузки на сервер Nextcloud.
  • Параметр \post_max_size\ должен быть больше параметра \upload_max_filesize\.
  • Параметр \date.timezone\ должен соответствовать системному местному времени \/etc/localtime\.
  • Увеличьте \max_execution_time\ в зависимости от нагрузки на сервер.

5. Затем измените рабочий каталог на \/etc/php.d/\ и отредактируйте конфигурацию \10-opcache.ini\ с помощью редактора nano.

cd /etc/php.d/
nano 10-opcache.ini

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

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\, чтобы сохранить конфигурацию и выйти.

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

sudo systemctl restart httpd

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

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

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

sudo dnf install mariadb mariadb-server

Дождитесь установки mariadb.

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

sudo systemctl enable mariadb
sudo systemctl start mariadb

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

sudo systemctl status mariadb

Если служба mariadb запущена, вы получите результат, аналогичный приведенному ниже.

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

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

mysql_secure_installation

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

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

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set 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 netxcloud_db;

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

CREATE USER  IDENTIFIED BY 'StrongPassword';

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

GRANT ALL PRIVILEGES ON netxcloud_db.* TO ;

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

FLUSH PRIVILEGES;

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

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

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

cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-22.1.0.zip

2. Извлеките исходный код Nextcloud \nextcloud-xx.zip\, и вы получите новый каталог \nextcloud\, затем измените владельца каталога \nextcloud\ на пользователя apache.

unzip nextcloud-22.1.0.zip
chown -R apache:apache nextcloud

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

Включить модуль Apache/Httpd mod_ssl

В этом руководстве вы будете устанавливать Nextcloud и обеспечивать безопасность с помощью SSL от Letsencrypt. Поэтому вам нужно включить mod_ssl для сервера httpd в Rocky Linux.

1. Установите пакет mod_ssl с помощью приведенной ниже команды dnf.

sudo dnf install mod_ssl mod_http2

2. после этого сгенерируйте SSL по умолчанию для локального хоста, используя команду openssl ниже. Но если у вас уже есть сертификаты \/etc/pki/tls/private/localhost.key\ и \/etc/pki/tls/certs/localhost.crt \, этот этап можно пропустить.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Вы можете просто нажать Enter для всех вопросов, потому что этот сертификат будет использоваться только для локального хоста, а не доменного имени WordPress.

3. Теперь выполните следующую команду, чтобы убедиться, что mod_ssl доступен на веб-сервере httpd.

apachectl -M | grep ssl

Если у вас есть вывод, например \ssl\, то mod_ssl включен. В противном случае вы получите пустой вывод.

Генерация SSL Letsencrypt с помощью Certbot

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

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

sudo dnf install certbot

Дождитесь процесса установки.

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

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

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

cd /etc/httpd/conf.d/
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\, чтобы сохранить и выйти.

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

apachectl configtest
sudo systemctl restart httpd

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

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

sudo certbot certonly --agree-tos --email 

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

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

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

1. Измените рабочий каталог на \/etc/httpd/conf.d\ и создайте новую конфигурацию \nextcloud.conf\ с помощью редактора nano.

cd /etc/httpd/conf.d/
nano nextcloud.conf

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

<VirtualHost *:80>
    ServerName files.domain.com
    ServerAlias www.files.domain.com

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

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

    Protocols h2 http/1.1

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

    # log files
    ErrorLog /var/log/httpd/files.domain.com-error.log
    CustomLog /var/log/httpd/files.domain.com-access.log combined

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/files.domain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/files.domain.com/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\, чтобы сохранить конфигурацию и выйти.

3. Затем выполните следующую команду, чтобы проверить конфигурацию httpd.

sudo apachectl configtest

Если у вас нет ошибок, перезапустите службу httpd, используя приведенную ниже команду.

sudo systemctl restart httpd

Теперь вы готовы к установке Nextcloud через веб-браузер.

Установка Nextcloud

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

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

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

  • В разделе \Создание учетной записи администратора\ введите новое имя пользователя и пароль администратора.
  • Для раздела \Папка данных\ пока оставьте значение по умолчанию.
  • В разделе \Настройка базы данных\ выберите \MySQL/MariaDB\ и введите сведения о конфигурации базы данных.
  • Кроме того, вы можете установить рекомендуемые приложения, установив соответствующий флажок. Или снимите флажок, если вы не хотите.

После этого можно нажать кнопку «Завершить настройку».

2. После завершения процесса установки вы увидите панель управления Nextcloud по умолчанию, как показано ниже.

3. Теперь щелкните меню \Файлы\, и вы увидите на панели пользователя список файлов и папок.

4. Чтобы получить доступ к административной странице, щелкните профиль пользователя вверху и выберите «Настройки».

В разделе «Администрирование» вы можете изменить конфигурацию Nextcloud по умолчанию.

5. Чтобы добавить новые плагины или приложения, вы можете щелкнуть профиль пользователя вверху и выбрать \Приложения\.

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

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

Ниже приведен скриншот после включения темы Nextcloud Breeze Dark.

Настройка производительности 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\, чтобы сохранить конфигурацию и выйти.

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

В Rocky Linux пользователем httpd по умолчанию является «apache». Создайте новый cronjob для пользователя «apache», используя приведенную ниже команду.

crontab -u apache -e

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

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

Примечание о конфигурации и выходе.

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

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

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

crontab -u apache -l

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

Заключение

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