Комментарии 14
Есть ли какое-то преимущество такой установки перед докер контейнером?
меньше абстракций, меньше занятого места на диске, меньше потребляемой ОЗУ (хотя всё это весьма несущественно и разница мизерная)
но если автору была бы важна производительность и потребление ресурсов как минимум он бы заюзал postgres вместо mariadb и связку nginx+php-fpm вместо apache.
вся эта статья больше похожа на "надо что-то написать, но писать не о чем, просто скопирую документацию"
Ну например в докере проблемнее добавить ffmpeg для фото, модули и модели для AI анализа.
chatgpt и тот более содержательный текст выдаёт:
Ниже приведена пошаговая инструкция по установке и настройке NextCloud на сервере с Debian 12. Предполагается, что у вас есть «чистая» (или уже настроенная базовая) ОС Debian 12, а также базовые знания администрирования Linux. Процесс включает в себя установку веб-сервера (Apache), базы данных (MariaDB) и необходимых модулей PHP.
Шаг 1: Обновление системы
Прежде чем начинать установку, обновите списки пакетов и установите последние версии доступных обновлений:
sudo apt update
sudo apt upgrade -y
Шаг 2: Установка веб-сервера (Apache), PHP и MariaDB
Установка Apache
sudo apt install apache2 -y
Проверьте, что веб-сервер работает:
systemctl status apache2
Он должен иметь статус active (running). Если сервер не запущен, включите и запустите его:
sudo systemctl enable apache2
sudo systemctl start apache2
Установка MariaDB (СУБД)
sudo apt install mariadb-server mariadb-client -y
Проверьте статус MariaDB:
systemctl status mariadb
При необходимости включите и запустите MariaDB:
sudo systemctl enable mariadb
sudo systemctl start mariadb
После установки выполните скрипт безопасности, чтобы задать пароль root для MariaDB и отключить тестовые пользователи:
sudo mysql_secure_installation
Данный скрипт задаст несколько вопросов. Рекомендуется ответить следующим образом:
Enter current password for root (впервые пустой, жмём Enter)
Set root password? [Y/n] — Нажмите Y и задайте сложный пароль
Remove anonymous users? [Y/n] — Y
Disallow root login remotely? [Y/n] — Y (запретить удалённый вход под root)
Remove test database and access to it? [Y/n] — Y
Reload privilege tables now? [Y/n] — Y
Установка PHP
Nextcloud требует определённых расширений PHP. Установим PHP и необходимые модули:
sudo apt install php php-common php-mysql php-gd php-xml php-curl php-zip php-mbstring php-intl php-bcmath php-ldap php-imagick libapache2-mod-php -y
Примечание: В зависимости от требований Nextcloud и ваших потребностей могут потребоваться и другие модули, но в большинстве случаев вышеперечисленных достаточно.
Шаг 3: Создание базы данных и пользователя для Nextcloud
Подключитесь к MariaDB под пользователем root:
sudo mysql -u root -p
Введите пароль, который вы назначили при запуске mysql_secure_installation.
Создайте базу данных (назовём её, например, nextcloud):
CREATE DATABASE nextcloud;
Затем создайте пользователя (например, nc_user) и задайте для него пароль (замените Пароль_Тут на ваш реальный пароль):
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'Пароль_Тут';
Дайте созданному пользователю все права на базу nextcloud:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Шаг 4: Загрузка и установка Nextcloud
Перейдите в каталог временных файлов:
cd /tmp
Загрузите последнюю стабильную версию Nextcloud. Узнать текущую версию можно на официальном сайте Nextcloud (либо через консольную команду wget, указав прямую ссылку). Предположим, что актуальная версия — 25.x (пример). Используйте команду:
wget https://download.nextcloud.com/server/releases/nextcloud-25.0.7.zip
Внимание: Замените 25.0.7 на актуальную версию Nextcloud.
Распакуйте архив:
sudo apt install unzip -y
unzip nextcloud-25.0.7.zip
Переместите распакованную папку nextcloud в каталог /var/www/:
sudo mv nextcloud /var/www/
Шаг 5: Настройка прав доступа к файлам
Назначьте владельцем директории nextcloud пользователя и группу www-data (тот же пользователь/группа, под которыми работает Apache):
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 755 /var/www/nextcloud
Шаг 6: Конфигурация Apache для Nextcloud
Создадим отдельный конфигурационный файл в каталоге sites-available (например, nextcloud.conf):
sudo nano /etc/apache2/sites-available/nextcloud.conf
Вставьте в него содержимое примерно следующего вида:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/nextcloud
ServerName your_domain_or_IP
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
Важно:
Замените your_domain_or_IP на реальное доменное имя или IP-адрес вашего сервера.
Если планируете подключать HTTPS (рекомендуется), то будем дополнительно использовать сертификат TLS. Но на данном этапе достаточно настройки на 80-м порту.
Сохраните файл и выйдите из редактора. Затем включите сайт и необходимые модули Apache:
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
Rewrite позволяет использовать файлы .htaccess, headers — корректную работу заголовков, env, dir, mime — вспомогательные модули для корректной работы Nextcloud.
Перезапустите Apache:
sudo systemctl reload apache2
Шаг 7: Завершение настройки в веб-интерфейсе
Откройте в браузере:
http://your_domain_or_IP
Либо, если у вас нет DNS-названия, можно обращаться по IP:
http://SERVER_IP
Должна отобразиться страница начальной настройки Nextcloud:
Укажите имя администратора (логин), пароль (придумайте надёжный).
Укажите каталог данных (по умолчанию /var/www/nextcloud/data).
В поле для подключения к базе данных выберите MariaDB (MySQL/MariaDB).
Хост базы данных: localhost
Имя базы данных: nextcloud
Пользователь БД: nc_user
Пароль БД: тот, который вы указывали
Нажмите Установить (или Finish Setup). Nextcloud автоматически настроит базу и файлы для начала работы.
Шаг 8: (Опционально) Настройка HTTPS через Let’s Encrypt
Для более безопасного доступа к Nextcloud рекомендуется настроить HTTPS. Если у вас есть доменное имя, можно использовать бесплатные сертификаты Let’s Encrypt.
Установите клиент certbot (для Apache):
sudo apt install certbot python3-certbot-apache -y
Запустите генерацию сертификата:
sudo certbot --apache -d your_domain_or_IP
Во время установки вам зададут вопросы:
Согласиться ли с Условиями Предоставления Услуг
Куда отправлять уведомления о скором окончании сертификата
Перенаправлять ли HTTP на HTTPS или нет (лучше включить перенаправление)
После успешной генерации сертификата ваши файлы сайта будут обновлены, и Nextcloud станет доступен по HTTPS.
Шаг 9: Дополнительные рекомендации
Расширения PHP и параметры
Проверьте, что размер загружаемых файлов соответствует вашим требованиям:
В файле /etc/php/<версия>/apache2/php.ini (или в /etc/php.ini в зависимости от структуры) увеличьте значения:
upload_max_filesize = 2G post_max_size = 2G memory_limit = 512M
После изменения перезапустите Apache:
sudo systemctl reload apache2
Кэширование (Caching)
Nextcloud рекомендует настроить кэш Redis для повышения производительности.
Установите Redis:
sudo apt install redis-server php-redis -y
Включите и запустите Redis:
sudo systemctl enable redis-server sudo systemctl start redis-server
В файле конфигурации Nextcloud /var/www/nextcloud/config/config.php (после завершения первоначальной настройки) добавьте:
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),
Укрепление безопасности
Включите опцию strict-transport-security при использовании HTTPS, добавив в конфигурацию Apache:
<IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" </IfModule>
Регулярно устанавливайте обновления ОС и Nextcloud.
Автоматическое обновление SSL-сертификата
Let’s Encrypt сертификаты имеют ограниченный срок действия (90 дней), но certbot по умолчанию настраивает автоматическую проверку. Убедитесь, что cron-задача для certbot renew присутствует.
Заключение
Установка Nextcloud на Debian 12 сводится к нескольким ключевым шагам:
Настройка LAMP (Apache + MariaDB + PHP).
Создание базы данных и пользователя для Nextcloud.
Загрузка Nextcloud и корректная настройка прав доступа.
Настройка виртуального хоста в Apache.
Инициализация Nextcloud в веб-интерфейсе.
По желанию можно сразу добавить настройку HTTPS (Let’s Encrypt) и доработать конфигурацию PHP/Redis для повышения производительности и безопасности. Выполнив эти действия, вы получите функциональный сервер Nextcloud на Debian 12, где можно безопасно хранить и синхронизировать файлы, календари, контакты и многое другое.
в минимальной установке debian нет sudo, lvm,.. поэтому, пожалуйста, или пишите для ubuntu или тщательнее проверяйте ответ с fakegpt, или не трогайте святой debian :)
в минимальной установке debian нет sudo, lvm
Мдя
https://cdimage.debian.org/cdimage/archive/12.8.0/amd64/iso-cd/debian-12.8.0-amd64-netinst.iso

После такой установки в веб админке будет кучу сообщений о необходимости продолжить настстройки, memcache, индексы, планировщик, параметры php.
В форматирование статьи ушло еще меньше усилий, чем в генерацию его содержания. Редактор хабра умеет в блоки кода.
Судя по этой инструкции первичной и базовой установки, использовать этот инстанс предполагается только в LAN? Никакой настройки роутера, файервола и т.д.
Nginx + postgresql + redis быстрее будет
Прям даже намного
Установка NextCloud на Debian 12 (Bookworm)