Установка Nextcloud на Ubuntu 24.04/Debian 12: пошаговая инструкция | AdminWiki

Установка Nextcloud на Ubuntu 24.04 Server: полное руководство с Apache, Nginx и Docker

17 декабря 2025 11 мин. чтения #Nextcloud #apache #debian #devops #docker #nginx #postgresql #self-hosted #ubuntu #облачное хранилище
Содержание статьи

Представь, что твоя команда или семья нуждается в безопасном, контролируемом облачном хранилище. Покупка корпоративных решений дорога, а доверять данные сторонним сервисам не хочется. Решение — развернуть свой Nextcloud. В этой статье я, как Senior DevOps, проведу тебя через все этапы: от выбора метода установки до тонкой настройки. Мы рассмотрим классическую установку на Ubuntu 24.04 Server с Apache, вариант с производительным Nginx, мощную связку с PostgreSQL и гибкое развертывание через Docker Compose. Поехали!

Подготовка сервера Ubuntu/Debian

Перед началом установки Nextcloud на Ubuntu 24.04 или Debian 12, убедимся, что основа готова. Эти шаги универсальны для большинства дистрибутивов на базе Debian.

1. Обновление системы и установка базовых пакетов

bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates

2. Установка и настройка базы данных (на выбор)

Nextcloud поддерживает SQLite (для тестов), MySQL/MariaDB и PostgreSQL. Для продакшена рекомендую PostgreSQL — он отлично показывает себя под высокой нагрузкой.

Вариант A: Установка PostgreSQL для Nextcloud

bash
# Установка PostgreSQL
sudo apt install -y postgresql postgresql-contrib

# Переход в оболочку PostgreSQL
sudo -u postgres psql

-- Создание базы данных и пользователя для Nextcloud
CREATE USER nextclouduser WITH PASSWORD 'Ваш_Сложный_Пароль';
CREATE DATABASE nextcloud_db OWNER nextclouduser;
\q

Вариант B: Установка MariaDB (альтернатива)

bash
sudo apt install -y mariadb-server
sudo mysql_secure_installation

# Создание базы и пользователя
sudo mysql -u root -p
CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'Ваш_Сложный_Пароль';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
💡 Совет: Для установки Nextcloud на Ubuntu 24.04 Server с PostgreSQL потребуется дополнительный PHP модуль php-pgsql. Не забудь его добавить на этапе установки PHP.

Метод 1: Классическая установка Nextcloud на Ubuntu с Apache

Это самый распространенный и официально поддерживаемый способ. Идеален для тех, кто хочет максимально стабильную и простую в обслуживании систему.

1. Установка веб-сервера Apache и PHP

bash
# Установка Apache и необходимых модулей
sudo apt install -y apache2 libapache2-mod-php \
    openssl php-imagick php-common php-curl php-gd \
    php-imap php-intl php-json php-ldap php-mbstring \
    php-mysql php-pgsql php-ssh2 php-xml php-zip \
    php-bz2 php-bcmath php-gmp

# Активация необходимых модулей Apache
sudo a2enmod rewrite headers env dir mime ssl
sudo systemctl restart apache2

2. Загрузка и распаковка Nextcloud

bash
# Переход в веб-директорию
cd /var/www

# Загрузка последней версии Nextcloud
sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2
sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256

# Проверка целостности архива
sha256sum -c latest.tar.bz2.sha256 < latest.tar.bz2

# Распаковка и настройка прав
sudo tar -xjf latest.tar.bz2
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud

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

Создаем конфигурационный файл для нашего облака.

bash
sudo nano /etc/apache2/sites-available/nextcloud.conf
Apache Config

    DocumentRoot /var/www/nextcloud
    ServerName cloud.tvoi-domain.ru

    
        Require all granted
        Options FollowSymlinks MultiViews
        AllowOverride All

        
            Dav off
        
    

    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
bash
# Активация сайта и перезагрузка Apache
sudo a2ensite nextcloud.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

4. Завершение установки через веб-интерфейс

Открой браузер и перейди по адресу своего сервера (http://IP_ТВОЕГО_СЕРВЕРА или http://cloud.tvoi-domain.ru). Тебе откроется мастер настройки Nextcloud, где нужно будет:

  • Создать учетную запись администратора
  • Указать путь к данным (оставь /var/www/nextcloud/data)
  • Выбрать базу данных (MySQL/MariaDB или PostgreSQL) и ввести данные подключения
  • Нажать "Завершить установку"
⚠️ Важно: После установки Nextcloud на Ubuntu 22.04 или более новых версиях, обязательно настройте крон (cron) для фоновых задач. В Nextcloud перейдите в "Настройки" → "Основные настройки" → "Фоновые задачи" и выберите "Cron".

Метод 2: Установка Nextcloud с Nginx на Ubuntu 24.04

Nginx часто показывает лучшую производительность при высокой нагрузке по сравнению с Apache. Давай разберем эту конфигурацию.

1. Установка Nginx и PHP-FPM

bash
# Установка Nginx и PHP-FPM
sudo apt install -y nginx php-fpm \
    php-curl php-gd php-intl php-mbstring \
    php-pgsql php-mysql php-xml php-zip \
    php-bcmath php-gmp php-imagick

# Проверяем версию PHP (обычно 8.3 в Ubuntu 24.04)
php -v

2. Настройка Nginx для Nextcloud

bash
sudo nano /etc/nginx/sites-available/nextcloud
Nginx Config
upstream php-handler {
    server unix:/run/php/php8.3-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name cloud.tvoi-domain.ru;

    root /var/www/nextcloud;
    index index.php index.html;

    client_max_body_size 10G;
    fastcgi_buffers 64 4K;

    location / {
        try_files $uri $uri/ /index.php$request_uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        deny all;
    }

    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        deny all;
    }

    location ~ \.php(?:$|/) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass php-handler;
    }

    location ~ \.(?:css|js|svg|gif|png|jpg|ico)$ {
        expires 6M;
        access_log off;
    }
}
bash
# Активация конфигурации и проверка
sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
sudo nginx -t  # Проверка синтаксиса
sudo systemctl reload nginx

Метод 3: Установка Nextcloud через Docker Compose

Docker идеален для изолированного, воспроизводимого развертывания. Особенно если ты планируешь масштабировать инфраструктуру или часто обновлять Nextcloud.

1. Установка Docker и Docker Compose

bash
# Установка Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Установка Docker Compose (версия v2)
sudo apt install -y docker-compose-plugin

# Добавление пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker  # или перелогинься

2. Создание docker-compose.yml для Nextcloud

bash
mkdir nextcloud-docker && cd nextcloud-docker
nano docker-compose.yml
docker-compose.yml
version: '3'

services:
  db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_PASSWORD: nextcloud_db_password
      POSTGRES_USER: nextcloud
      POSTGRES_DB: nextcloud
    volumes:
      - db_data:/var/lib/postgresql/data

  app:
    image: nextcloud:27-apache
    restart: always
    ports:
      - 8080:80
    links:
      - db
    environment:
      POSTGRES_HOST: db
      POSTGRES_PASSWORD: nextcloud_db_password
      POSTGRES_USER: nextcloud
      POSTGRES_DB: nextcloud
    volumes:
      - nextcloud_data:/var/www/html
      - ./apps:/var/www/html/custom_apps
      - ./config:/var/www/html/config
      - ./data:/var/www/html/data
    depends_on:
      - db

volumes:
  db_data:
  nextcloud_data:

3. Запуск Nextcloud в Docker

bash
# Запуск контейнеров
sudo docker compose up -d

# Просмотр логов
sudo docker compose logs -f app

# Остановка контейнеров
sudo docker compose down

После запуска открой браузер и перейди на http://IP_СЕРВЕРА:8080. Мастер установки будет аналогичен классическому методу, но данные БД нужно взять из переменных окружения в docker-compose.yml.

Сравнение методов установки Nextcloud

Метод Сложность Производительность Гибкость Идеально для
Apache + PHP Низкая Средняя Средняя Начинающих, небольших команд
Nginx + PHP-FPM Средняя Высокая Высокая Высоконагруженных проектов
Docker Compose Средняя Высокая Очень высокая DevOps, масштабируемых систем

Пост-установочная настройка и оптимизация

1. Настройка Cron для фоновых задач

bash
# Создание cron задачи от имени пользователя www-data
sudo crontab -u www-data -e

# Добавь строку (запуск каждые 5 минут)
*/5 * * * * php -f /var/www/nextcloud/cron.php

2. Настройка памяти для PHP

Для работы с большими файлами увеличь лимиты в PHP:

bash
sudo nano /etc/php/8.3/apache2/php.ini  # Для Apache
# или
sudo nano /etc/php/8.3/fpm/php.ini      # Для PHP-FPM

Найди и измени следующие параметры:

  • memory_limit = 512M (или больше)
  • upload_max_filesize = 10G
  • post_max_size = 10G
  • max_execution_time = 3600
  • max_input_time = 3600

3. Настройка SSL/TLS (Let's Encrypt)

Безопасность прежде всего! Настроим бесплатный SSL сертификат:

bash
# Установка Certbot
sudo apt install -y certbot python3-certbot-apache  # Для Apache
# или
sudo apt install -y certbot python3-certbot-nginx   # Для Nginx

# Получение сертификата
sudo certbot --apache -d cloud.tvoi-domain.ru  # Для Apache
sudo certbot --nginx -d cloud.tvoi-domain.ru   # Для Nginx

# Автоматическое обновление сертификатов
sudo certbot renew --dry-run

Часто задаваемые вопросы (FAQ)

Какой метод установки Nextcloud лучше для начинающих?

Для первого раза рекомендую классическую установку Nextcloud на Ubuntu с Apache. Она наиболее документирована, имеет меньше "подводных камней" и проще в отладке. Docker хоть и модно, но требует понимания работы контейнеров.

Можно ли установить Nextcloud на Debian 12 или 13?

Да, абсолютно! Все инструкции для Ubuntu 24.04 полностью применимы к Debian 12 (Bookworm) и Debian 13 (Trixie). Разница лишь в версиях пакетов по умолчанию. В Debian может быть более старая версия PHP, но Nextcloud хорошо работает и с PHP 8.2+.

Какую базу данных выбрать: PostgreSQL или MySQL?

Обе хороши, но у PostgreSQL есть преимущества для Nextcloud:

  • Лучшая поддержка полнотекстового поиска
  • Более эффективное управление блокировками
  • Лучшая масштабируемость на многопроцессорных системах
  • Официальная рекомендация Nextcloud для больших инсталляций
Для маленьких инсталляций (до 50 пользователей) разница незначительна.

Как обновлять Nextcloud после установки?

Зависит от метода установки:

  • Классическая установка: Скачать новую версию, заменить файлы (кроме data/, config/ и themes/), запустить occ upgrade
  • Docker: Обновить тег образа в docker-compose.yml и перезапустить контейнеры
Всегда делай бэкап перед обновлением!

Заключение

Мы подробно разобрали три основных способа установки Nextcloud на Ubuntu 24.04 Server и Debian 12. Каждый метод имеет свои сильные стороны:

  • Apache + PHP — максимальная простота и стабильность
  • Nginx + PHP-FPM — высокая производительность под нагрузкой
  • Docker Compose — идеальная изоляция и воспроизводимость

Независимо от выбранного метода, помни о безопасности: настрой SSL, регулярно обновляй систему, используй сложные пароли и настрой бэкапы. Nextcloud — мощный инструмент, который при правильной настройке прослужит годами, предоставляя тебе полный контроль над твоими данными.

Теперь у тебя есть все знания для успешной установки и настройки собственного облачного хранилища. Действуй!

Поделиться:
Сохранить гайд? В закладки браузера