linux:debian:nextcloud
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| linux:debian:nextcloud [2026/03/26 08:40] – [Установка PHP для Nextcloud] Кирилл | linux:debian:nextcloud [2026/04/01 14:39] (текущий) – Кирилл | ||
|---|---|---|---|
| Строка 2: | Строка 2: | ||
| ---- | ---- | ||
| - | |||
| - | ===== Базовая настройка сервера ===== | ||
| - | |||
| - | Подключаем к нашему серверу по SSH: | ||
| - | <code bash> | ||
| - | ssh root@< | ||
| - | </ | ||
| - | |||
| - | Меняем язык сервера на Русский: | ||
| - | <code bash> | ||
| - | dpkg-reconfigure locales | ||
| - | </ | ||
| - | |||
| - | ===== Обновляем систему и устанавливаем базовый софт ===== | ||
| - | |||
| - | Обновляем список пакетов и обновляем систему: | ||
| - | <code bash> | ||
| - | apt update && apt upgrade | ||
| - | </ | ||
| - | |||
| - | Устанавливаем Базовый софт: | ||
| - | <code bash> | ||
| - | apt install apt-transport-https ca-certificates curl htop sudo zip unzip wget | ||
| - | </ | ||
| - | |||
| - | ===== Создаём нового пользователя и добавляем его в группу Sudo ===== | ||
| - | |||
| - | Создаём пользователя: | ||
| - | <code bash> | ||
| - | adduser kirill | ||
| - | </ | ||
| - | |||
| - | Добавляем нашего пользователя в группу **sudo**: | ||
| - | <code bash> | ||
| - | usermod -aG sudo kirill | ||
| - | </ | ||
| - | |||
| - | Перезагружаем сервер: | ||
| - | <code bash> | ||
| - | reboot | ||
| - | </ | ||
| - | |||
| - | Снова подключаемся к нашему серверу по SSH, но только не под пользователем **Root**, а под пользователем, | ||
| - | <code bash> | ||
| - | ssh kirill@< | ||
| - | </ | ||
| ===== Установка Веб-сервер Apache ===== | ===== Установка Веб-сервер Apache ===== | ||
| Строка 226: | Строка 180: | ||
| </ | </ | ||
| - | Добавляем нашего пользователя в группу www-data: | + | Добавляем нашего пользователя в группу |
| <code bash> | <code bash> | ||
| sudo usermod -aG www-data $USER | sudo usermod -aG www-data $USER | ||
| Строка 235: | Строка 189: | ||
| sudo usermod -aG $USER www-data | sudo usermod -aG $USER www-data | ||
| </ | </ | ||
| + | |||
| + | ===== Создаём новый виртуальный хост ===== | ||
| + | |||
| + | Сначала отключим хост по умолчанию: | ||
| + | <code bash> | ||
| + | sudo a2dissite 000-default | ||
| + | </ | ||
| + | |||
| + | Переходим в директорию **/ | ||
| + | <code bash> | ||
| + | cd /var/www | ||
| + | </ | ||
| + | |||
| + | Создаём новый каталог: | ||
| + | <code bash> | ||
| + | mkdir nextcloud | ||
| + | </ | ||
| + | |||
| + | Переходи в созданный каталог: | ||
| + | <code bash> | ||
| + | cd nextcloud | ||
| + | </ | ||
| + | |||
| + | Скачиваем Nextcloud: | ||
| + | <code bash> | ||
| + | wget https:// | ||
| + | </ | ||
| + | |||
| + | Распаковываем архив с Nextcloud: | ||
| + | <code bash> | ||
| + | unzip nextcloud-31.0.12.zip | ||
| + | </ | ||
| + | |||
| + | Удаляем скаченный архив latest.zip, он нам больше не понадобиться: | ||
| + | <code bash> | ||
| + | rm nextcloud-31.0.12.zip | ||
| + | </ | ||
| + | |||
| + | Переименовываем директорию nextcloud в public_html: | ||
| + | mv nextcloud public_html | ||
| + | |||
| + | Меняем владельца на www-data: | ||
| + | sudo chown -R www-data: | ||
| + | |||
| + | Создаём конфигурационный файл нового хоста: | ||
| + | sudo nano / | ||
| + | |||
| + | Приводим конфиг к следующему виду: | ||
| + | |||
| + | <code apache> | ||
| + | < | ||
| + | ServerName cloud.kirmolpc.ru | ||
| + | ServerAlias www.cloud.kirmolpc.ru | ||
| + | ServerAdmin admin@localhost | ||
| + | |||
| + | DocumentRoot / | ||
| + | < | ||
| + | AllowOverride All | ||
| + | Require all granted | ||
| + | Redirect permanent / https:// | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Header always set Strict-Transport-Security " | ||
| + | </ | ||
| + | |||
| + | ErrorLog ${APACHE_LOG_DIR}/ | ||
| + | CustomLog ${APACHE_LOG_DIR}/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Включаем хост следующей командой: | ||
| + | <code bash> | ||
| + | sudo a2ensite nextcloud | ||
| + | </ | ||
| + | |||
| + | Активируем дополнительные модули Apache: | ||
| + | <code bash> | ||
| + | sudo a2enmod rewrite headers env dir mime | ||
| + | </ | ||
| + | |||
| + | Перезапускаем Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | Проверяем загрузку модулей Apache: | ||
| + | <code bash> | ||
| + | sudo apache2ctl -M | ||
| + | </ | ||
| + | |||
| + | ===== Установка Certbot SSL-сертификата ===== | ||
| + | |||
| + | Устанавливаем Certbot: | ||
| + | <code bash> | ||
| + | sudo apt install certbot python3-certbot-apache | ||
| + | </ | ||
| + | |||
| + | Устанавливаем SSL-на наш домен: | ||
| + | <code bash> | ||
| + | sudo certbot --apache | ||
| + | </ | ||
| + | |||
| + | Отредактируем файл конфигурации ssl: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Закомментируем или удаляем строчку, | ||
| + | |||
| + | <code apache> | ||
| + | #Redirect permanent / https:// | ||
| + | </ | ||
| + | |||
| + | Перезапускаем Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | Переходим по нашему домену, | ||
| + | https:// | ||
| + | |||
| + | Редактируем файл **/ | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Добавляем ваш регион и время обслуживания: | ||
| + | |||
| + | <code php> | ||
| + | 0 => ' | ||
| + | ' | ||
| + | ' | ||
| + | </ | ||
| + | |||
| + | Пример: | ||
| + | <code php> | ||
| + | <?php | ||
| + | $CONFIG = array ( | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | array ( | ||
| + | 0 => ' | ||
| + | 1 => ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ===== Настройка Memcache ===== | ||
| + | |||
| + | Устанавливаем Memcache и Модуль PHP Memcache: | ||
| + | <code bash> | ||
| + | sudo apt install memcached php8.4-memcached | ||
| + | </ | ||
| + | |||
| + | Добавляем в файл / | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | <code php> | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | [ ' | ||
| + | ], | ||
| + | </ | ||
| + | |||
| + | ===== Настройка PHP-FPM в связке с Apache ===== | ||
| + | |||
| + | Устанавливаем, | ||
| + | <code bash> | ||
| + | sudo apt install php8.4-fpm | ||
| + | </ | ||
| + | |||
| + | Проверяем, | ||
| + | <code bash> | ||
| + | sudo service php8.4-fpm status php-fpm8.4 -v ls -la / | ||
| + | </ | ||
| + | |||
| + | Запускаем PHP-FPM: | ||
| + | <code bash> | ||
| + | sudo a2enmod mpm_event proxy_fcgi setenvif | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | sudo a2enconf php8.4-fpm | ||
| + | </ | ||
| + | |||
| + | Перезапускаем Apache, чтобы перезапустить все модули и применить новую конфигурацию: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | Проверяем нашу конфигурацию: | ||
| + | <code bash> | ||
| + | grep -E " | ||
| + | </ | ||
| + | |||
| + | Задаём лимиты: | ||
| + | <code bash> | ||
| + | sudo sed -i ' | ||
| + | </ | ||
| + | |||
| + | Обновляем конфигурацию PHP-FPM: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | С этих: | ||
| + | |||
| + | < | ||
| + | pm.max_children = 5 | ||
| + | pm.start_servers = 2 | ||
| + | pm.min_spare_servers = 1 | ||
| + | pm.max_spare_servers = 3 | ||
| + | </ | ||
| + | |||
| + | На эти: | ||
| + | |||
| + | < | ||
| + | pm.max_children = 64 | ||
| + | pm.start_servers = 16 | ||
| + | pm.min_spare_servers = 16 | ||
| + | pm.max_spare_servers = 32 | ||
| + | </ | ||
| + | |||
| + | Проверяем текущие значения: | ||
| + | <code bash> | ||
| + | grep -E " | ||
| + | </ | ||
| + | |||
| + | Поменяем текущие значения на нужные нам: | ||
| + | <code bash> | ||
| + | sudo sed -i ' | ||
| + | </ | ||
| + | |||
| + | или | ||
| + | |||
| + | <code bash> | ||
| + | sudo sed -i ' | ||
| + | </ | ||
| + | |||
| + | Перезапускаем PHP-FPM, чтобы применились новые значения: | ||
| + | <code bash> | ||
| + | sudo service php8.4-fpm restart | ||
| + | </ | ||
| + | |||
| + | Указываем Apache использования PHP-FPM: | ||
| + | |||
| + | Для HTTP: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Для HTTPS: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | <code apache> | ||
| + | < | ||
| + | SetHandler " | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Перезапускаем Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | ===== Активируем OPCache в PHP ===== | ||
| + | |||
| + | Редактируем файл 10-opcache.ini: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Добавляем следующие параметры: | ||
| + | < | ||
| + | zend_extension=opcache.so | ||
| + | opcache.enable=1 | ||
| + | opcache.enable_cli=1 | ||
| + | opcache.interned_strings_buffer=64 | ||
| + | opcache.max_accelerated_files=12000 | ||
| + | opcache.memory_consumption=512 | ||
| + | opcache.save_comments=1 | ||
| + | opcache.revalidate_freq=60 | ||
| + | opcache.jit=on | ||
| + | opcache.jit = 1255 | ||
| + | opcache.jit_buffer_size = 256M | ||
| + | </ | ||
| + | |||
| + | Перезапускаем PHP-FPM для применения изменений: | ||
| + | <code bash> | ||
| + | sudo service php8.4-fpm restart | ||
| + | </ | ||
| + | |||
| + | ===== Включаем APCu в PHP ===== | ||
| + | |||
| + | Устанавливаем пакет PHP APCu: | ||
| + | <code bash> | ||
| + | sudo apt install php8.4-apcu | ||
| + | </ | ||
| + | |||
| + | Редактируем ini файл | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Вносим соответствующие значения: | ||
| + | < | ||
| + | extension=apcu.so | ||
| + | apc.enable_cli=1 | ||
| + | </ | ||
| + | |||
| + | Перезапускаем PHP-FPM и Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart php8.4-fpm | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | Настраиваем Nextcloud на использование APCu для кэширования: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | <code php> | ||
| + | ' | ||
| + | </ | ||
| + | ===== | ||
| + | Установка и настройка Redis Cache ===== | ||
| + | |||
| + | Установим Redis Server и расширение Redis php: | ||
| + | <code bash> | ||
| + | sudo apt install redis-server php8.4-redis | ||
| + | </ | ||
| + | |||
| + | Запускаем и активируем Redis service: | ||
| + | <code bash> | ||
| + | sudo systemctl start redis-server | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo systemctl enable redis-server | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo systemctl status redis-server | ||
| + | </ | ||
| + | |||
| + | Сконфигурируем Redis на использование Unix Socket, редактируем файл redis.conf: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | port 0 | ||
| + | unixsocket / | ||
| + | unixsocketperm 770 | ||
| + | </ | ||
| + | |||
| + | Добавляем пользователя **www-data** в группу **redis**: | ||
| + | <code bash> | ||
| + | sudo usermod -aG redis www-data | ||
| + | </ | ||
| + | |||
| + | Настроим Nextcloud для использования Redis для блокировки файлов, | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | <code php> | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ], | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | [ ' | ||
| + | ], | ||
| + | </ | ||
| + | |||
| + | Пример: | ||
| + | <code php> | ||
| + | <?php | ||
| + | $CONFIG = array ( | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | array ( | ||
| + | 0 => ' | ||
| + | 1 => ' | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ], | ||
| + | |||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | [ ' | ||
| + | ], | ||
| + | |||
| + | ); | ||
| + | </ | ||
| + | |||
| + | Активируем Redis сессию для блокировки в PHP, в файле **php.ini**: | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Находим раздел **[Session]** и добавляем следующие строки: | ||
| + | < | ||
| + | redis.session.locking_enabled=1 | ||
| + | redis.session.lock_retries=-1 | ||
| + | redis.session.lock_wait_time=10000 | ||
| + | </ | ||
| + | |||
| + | Пример: | ||
| + | < | ||
| + | [Session] | ||
| + | ; Handler used to store/ | ||
| + | ; https:// | ||
| + | session.save_handler = files | ||
| + | redis.session.locking_enabled=1 | ||
| + | redis.session.lock_retries=-1 | ||
| + | redis.session.lock_wait_time=10000 | ||
| + | </ | ||
| + | |||
| + | Перезапускаем Redis, PHP-FPM и Apache: | ||
| + | <code bash> | ||
| + | sudo systemctl restart redis-server | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo systemctl restart php8.4-fpm | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo systemctl restart apache2 | ||
| + | </ | ||
| + | |||
| + | ===== Включение функции красивых ссылок Pretty URL’s ===== | ||
| + | |||
| + | Редактируем файл **/ | ||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Добавляем следующию строчку: | ||
| + | < | ||
| + | ' | ||
| + | </ | ||
| + | |||
| + | Обновляем файл .htaccess для правильной переадресации ссылок: | ||
| + | <code bash> | ||
| + | sudo -u www-data php --define apc.enable_cli=1 / | ||
| + | </ | ||
| + | |||
| + | ===== Парочка команд ===== | ||
| + | <code bash> | ||
| + | sudo -u www-data php / | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo -u www-data php / | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo -u www-data php / | ||
| + | </ | ||
| + | |||
| + | ===== Настройка Cron ===== | ||
| + | |||
| + | Устанавливаем Cron: | ||
| + | <code bash> | ||
| + | sudo apt install cron | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | sudo crontab -u www-data -e | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | */5 * * * * php -f / | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo -u www-data php / | ||
| + | </ | ||
| + | <code bash> | ||
| + | sudo -u www-data php / | ||
| + | </ | ||
| + | |||
linux/debian/nextcloud.1774514441.txt.gz · Последнее изменение: — Кирилл
