Найти в Дзене

Установка Nextcloud на Astra Linux SE 1.7.4

Оглавление

Приветствую. В этой статье мы рассмотрим как установить NextCloud на Astra Linux Special Edition 1.7.4. Nextcloud используется для создания собственного облачного хранилища.

Итак для его установки потребуется "джентельменский набор" для установки веб-сервиса:

  • Веб-сервер
  • База-данных
  • PHP
  • Сам Nextcloud

В данном примере будет использоваться:

Apache v.2.4.52
MariaDB v.0.3.38
PHP v.8.1.12
Nextcloud v.27.1.2

Все пакеты (кроме самого Nextcloud) были скачаны из репозиториев Astra Linux.

Установка пакетов

Первым делом нам нужно установить все пакеты, необходимые для работы. Мы ставим Apache, MariaDB, PHP и необходимые PHP-модули:

sudo apt install -y apache2 mariadb-server php8.1 libapache2-mod-php php8.1-curl php8.1-gd php8.1-mysql php8.1-gmp php8.1-xml php8.1-mbstring php8.1-intl php8.1-imagick php8.1-zip

Настройка сервера баз данных MariaDB

После установки MariaDB проводим его первоначальную настройку согласно инструкции с вики-статьи.

-2
sudo mysql_secure_installation

1. На запрос пароля root ввести пустой пароль

2. На вопрос "Set root password?" ответить Yes (Y)

3. Ввести и подтвердить пароль

4 Удалить анонимных пользователей: Remove anonymous users? [Y/n] y

5. Запретить удаленный вход пользователя root: Disallow root login remotely? [Y/n] y

6. Удалить тестовую базу данных: Remove test database and access to it? [Y/n] y

7. Для того, чтобы сделанные изменения были применены немедленно, обновить таблицы привилегий: Reload privilege tables now? [Y/n] y

После этого обновить настройки аутентификации для пользователя root.

sudo mysql -u root

Попадаем в окружение SQL и вводим следующие команды

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';

FLUSH PRIVILEGES;

QUIT;

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

Пользователь: nextcloud

Пароль: NextCloud@)23

База данных: nextcloud

mysql -u root -p

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'NextCloud@)23';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
QUIT;

-3

Подготовка Nextcloud

Качаем последнюю доступную версию Nextcloudм (на момент написания 27.1.2):

wget https://download.nextcloud.com/server/releases/latest.tar.bz2

Обратите внимание: Там будут находиться все файлы, поэтому для комфортной работы сразу позаботьтесь свободным местом. Вы конечно можете скинуть все в стандартное место /var/www/html/, но в своем примере я отдельно монтирую диск в папку /srv/nextcloud, где у меня больше места.

tar -xvf latest.tar.bz2
sudo mkdir -p /srv/nextcloud
sudo cp -r nextcloud/ /srv/

И для того чтобы сервер Apache смог спокойно работать с папкой, нужно сделать владельцем папки www-data

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

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

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

По умолчанию, в версии 1.7.4 - пакет php скачивает версию 7.3, но в Астре есть и версия 8.1, которую я и установил в начале статьи командой sudo apt install -y php8.1

Обратите внимание: Если вы ставите пакет php, с именем отличным от стандартного (в данном примере php8.1, то и модули, которые вы устанавливаете должны быть той же версии (в данном примере php8.1-curl php8.1-gd php8.1-mysql php8.1-gmp php8.1-xml php8.1-mbstring php8.1-intl php8.1-imagick php8.1-zip).

Также, в зависимости от вашего сервера и объемов хранимых файлов рекомендую поправить файл php.ini, указав параметры максимально загружаемого файла, времени выполнения, и занимаемой памяти.

sudo nano /etc/php/8.1/apache2/php.ini

(где 8.1 ваша версия php)

memory_limit = 1024M
upload_max_filesize = 2G
post_max_size = 500M
max_execution_time = 300

Настройка Apache

При стандартной установке Apache в Астре не забываем в конфигурационном файле apache.conf установить режим AstraMode off:

sudo nano /etc/apache2/apache2.conf
-4

Если вы собираетесь хранить Nextcloud в стандартной директории Apache, можете пропустить эту часть. Я же, как уже писал выше, решил сделать рабочей директорией /srv/nextcloud/, и вдобавок к нему выделить этот ресурс на отдельный порт: 41409. Если вы хотите сделать так же, то делаем так.

Создаем новый конфиг:

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

Содержимое файла внутри:

Listen 41409
<VirtualHost *:41409>
DocumentRoot /srv/nextcloud/
ServerName Nextcloud.local
<Directory /srv/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
-5

После этого всего перезагружаем сервис Apache

sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
sudo systemctl restart apache2

(чтоб наверняка)

Первоначальная настройка

Если вы все сделали верно, по вашему адресу (в примере localhost:41409) откроется страница первоначальной установки. Вводим все необходимые данные, и нажимаем кнопку Установка.

-6
-7

Все, сервер установлен, теперь можно конфигурировать его уже под свои нужды.