Nextcloud + Apache на Dedian 12 Bookworm.
Nextcloud — облачный сервис для организации локального и удалённого доступа к данным.
Приступим к первоначальным настройкам сервера и дальнейшей установке и настройке Nextcloud
Настраиваем время и часовые пояса
Устанавливаем утилиту chrony для установки корректного времени на сервере, а это, в свою очередь, повлияет на правильность временных меток при создании и изменении файлов в облаке.
apt install chrony
стартуем chrony
systemctl enable chrony
устанавливаем правильный часовой пояс
timedatectl set-timezone Europe/Moscow
(у меня время по Москве)
Устанавливаем СУБД
Качаем и устанавливаем пакет СУБД
apt install mariadb-server mariadb-client
разрешаем автозапуск
systemctl enable mariadb
запускаем сервис
systemctl start mariadb
запускаем утилиту, чтобы задать пароль для суперпользователя mysql
mysqladmin -u root password
подключаемся к MariaDB, создаем базу данных и пользователя
mysql -u root -p
CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'nextcloud';
\q
Устанавливаем Apache
Скачиваем и устанавливаем пакет с веб-сервером Apache
apt install apache2
создаем виртуальный домен и настраиваем его для работы с NextCloud (для этого создадим файл nextcloud.conf)
nano /etc/apache2/sites-enabled/nextcloud.conf
заполняем его данными (cloud.domen.ru меняем на свой домен)
<VirtualHost *:80> Define root_domain cloud.domen.ru ServerName ${root_domain} Redirect / https://${root_domain} </VirtualHost> <VirtualHost *:443> Define root_domain cloud.domen.ru Define root_path /var/www/nextcloud ServerName ${root_domain} DocumentRoot ${root_path} <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" </IfModule> <Directory ${root_path}> AllowOverride All Require all granted </Directory> </VirtualHost>
сохраняем файл – Ctrl+X
->
Shift+Y
->
Enter
.
включаем модули в Apache
a2enmod ssl rewrite headers env dir mime
Получаем сертификат от центра сертификации Let’s Encrypt
На роутере делаем проброс 80 порта. Мы тем самым разрешим сделать запрос на проверку нашего сайта (cloud.domain.ru) центром сертификации Let’s Encrypt.
Работаем под рутом!
Устанавливаем сертбот
apt install certbot python3-certbot-apache
Запрашиваем сертификат и настраиваем апач, изменяя записи для сайта nextcloud в файле /etc/apache2/sites-enabled/nextcloud.conf
certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d cloud.domain.ru
Проверяем возможность продления сертификата
certbot renew --dry-run
Запускаем редактирование задач cron
crontab -e
Указываем условие запуска (в 2:30). ВНИМАНИЕ! Обязательно перевести каретку на новую строку после ввода этой инструкции
30 2 * * * /usr/bin/certbot renew --quiet
После добавления этой строки сохраняем и закрываем файл.
Cron будет ежедневно проверять, подлежат ли обновлению какие-либо сертификаты, и обновлять их по мере необходимости.
Это гарантирует, что наш сервер Apache всегда использует действительные SSL-сертификаты, поддерживая безопасное подключение.
проверяем конфигурацию apache
apachectl configtest
если всё хорошо, то увидим ответ
Syntax OK
разрешаем автозапуск веб-сервера
systemctl enable apache2
перезапускаем веб-сервер
systemctl restart apache2
Установка PHP
На момент написания статьи для NextCloud требовался PHP версии 8.2
Качаем и устанавливаем нужные пакеты
apt install php php-fpm php-common php-zip php-xml php-intl php-gd php-mysql php-mbstring php-curl php-imagick libapache2-mod-fcgid php-gmp php-bcmath libmagickcore-6.q16-6-extra
разрешаем в Apache модули для fcgi и php-fpm
a2enmod proxy_fcgi setenvif
и следом
a2enconf php8.2-fpm
открываем и настраиваем php.ini
nano /etc/php/8.2/fpm/php.ini
находим эти строки и меняем их
memory_limit = 512M opcache.enable_cli=1 opcache.interned_strings_buffer=32 opcache.revalidate_freq=1
перезапускаем Apache и php-fpm
systemctl restart apache2 php8.2-fpm
Установка Nextcloud
Скачиваем исходник для установки с последней версией портала
wget https://download.nextcloud.com/server/releases/latest.zip
распаковываем скачанный архив
unzip latest.zip
переносим содержимое архива в каталог /var/www
mv nextcloud /var/www
изменяем права доступа
chown -R www-data:www-data /var/www/nextcloud
Т.к. облако у меня в моей локальной сети, но оно так же будет видно снаружи по домену, и у меня стоит Mikrotik, я настроил DNS Static, чтобы находясь дома, я смог бы по имени домена заходить в облачное хранилище.
Заходим в winbox, далее IP > DNS. В открывшемся окне DNS Settings жмём кнопку Static. В открывшемся окне DNS Static, в поле Name вписываем свой домен, в Type указываем А, в Address вписываем айпи своего домашнего сервера.
После этого, находясь в одной локальной сети с облачным сервером, в браузере можно указать его доменное имя и зайти на сервер.
Открываем браузер и переходим по адресу https://cloud.domen.ru, где cloud.domen.ru – адрес облачного сервиса, который мы прописали в настройках apache.
На открывшейся странице указываем:
- Логин администратора
- Пароль администратора
- Каталог с данными (тут надо указать каталог на том носителе, который мы хотим использовать для хранения облачных файлов пользователей. У меня под это дело выделен рейд-массив и права на каталог должны быть выставлены для www-data)
- Имя базы данных — nextcloud
- Пароль базы данных — nextcloud
- Логин пользователя БД — nextcloud
С установкой Nextcloud закончили.
Настройка Nextcloud
Оптимизируем работу базы данных
sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Открываем конфигурационный файл nextcloud
nano /var/www/nextcloud/config/config.php
в самый конец файла, перед «);», добавляем
'default_phone_region' => 'RU',
Настройка кэширования
Устанавливаем memcached и php-apcu
apt install memcached php-memcached php-apcu
разрешаем автозапуск
systemctl enable memcached
запускаем сервис кэширования
systemctl start memcached
перезапускаем Apache
systemctl restart apache2
Опять открываем конфигурационный файл nextcloud
nano /var/www/nextcloud/config/config.php
в самый конец файла, перед «);», добавляем
'filelocking.enabled' => true, 'memcache.locking' => '\\OC\\Memcache\\Memcached', 'memcache.local' => '\OC\Memcache\Memcached', 'memcache.distributed' => '\OC\Memcache\Memcached', 'memcached_servers' => [ [ '127.0.0.1', 11211 ], ],
Настраиваем выполнение фоновых заданий
Открываем в браузере Nextcloud, справа вверху жмём на круглую иконку пользователя, в открывшемся меню жмём на «Настройки», далее – «Основные параметры», в разделе «Фоновые задания» выбираем Cron.
Если Cron не установлен, устанавливаем его
apt install cron
Создаем новое задание от пользователя www-data
crontab -e -u www-data
В открывшемся редакторе текста, внизу добавляем
* * * * * /usr/bin/php /var/www/nextcloud/cron.php
Настраиваем загрузку файлов большого объёма
Открываем конфигурационный файл PHP
nano /etc/php/8.2/fpm/php.ini
находим эти опции и изменяем их значения
output_buffering = 0 max_execution_time = 3600 max_input_time = 3600 post_max_size = 256G upload_max_filesize = 256G
перезапускаем Apache
systemctl restart apache2
задаем новое значение фрагментации загружаемых файлов
sudo -u www-data php /var/www/nextcloud/occ config:app:set files max_chunk_size --value 536870912
Отключения техобслуживания Nextcloud:
sudo -u www-data php /path/to/nextcloud/occ maintenance:mode –off
Но, если вам хочется большей производительности, а также не хочется видеть предупреждение о текущей конфигурации, которое будет видно каждый раз при заходе в административную панель, то следующие советы для вас.

Как и ранее я писал, Nextcloud стоит на Ubuntu 24.04 и работает под связкой nginx + php-fpm (версии 8.3) + mysql. Язык интерфейса — русский. Nextcloud установлен в /usr/share/nginx/nextcloud/
После внесения изменений не забываем перезапускать php-fpm. Или можете после применения всех изменений перезапустить его один раз.
Убираем первое предупреждение:
«PHP не настроен правильно для получения переменных системного окружения.Запрос getenv(«PATH») возвращает пустые результаты.
Обратитесь к разделу о конфигурации PHP и примечаниям к конфигурации
PHP из руководства по установке. Обратите внимание на настройку
параметров PHP, особенно при использовании механизма php-fpm.»
Как сказано в документацииКогда вы используете php-fpm, системные переменные среды, такие как PATH, TMP или другие, не заполняются автоматически так же, как при использовании php-cli. Вызов функции PHP, такой как getenv(‘PATH’); может возвращать пустой результат. Поэтому вам может потребоваться вручную настроить переменные среды в файле конфигурации php-fpm.
Редактируем файл /etc/php/8.3/fpm/pool.d/www.conf
Ищем такие строки:
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
И раскомментируем их.
Или, если побыстрее
sed -i -e "s/\;env\[/env\[/g" \
/etc/php/8.3/fpm/pool.d/www.conf
Не забываем перезапустить php-fpm
systemctl restart php8.3-fpm
Готово. Идём дальше.
Убираем второе предупреждение
«PHP OPcache не настроен правильно»Для обеспечения лучшей производительности рекомендуется задать в файле
php.ini
следующие параметры настроек:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=
16opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1
Заменим вручную вышеуказанные параметры в файле /etc/php/8.3/fpm/php.ini или сразу заменим значения sed’ом
sed -i -e "s/\;opcache.enable=1/opcache.enable=1/g" \
/etc/php/8.3/fpm/php.ini
sed -i -e "s/\;opcache.enable_cli=0/opcache.enable_cli=1/g" \
/etc/php/8.3/fpm/php.ini
sed -i -e "s/\;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=16/g" \
/etc/php/8.3/fpm/php.ini
sed -i -e "s/\;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g" \
/etc/php/8.3/fpm/php.ini
sed -i -e "s/\;opcache.memory_consumption=128/opcache.memory_consumption=256/g" \
/etc/php/8.3/fpm/php.ini
sed -i -e "s/\;opcache.save_comments=1/opcache.save_comments=1/g" \
/etc/php/8.3/fpm/php.ini
sed -i -e "s/\;opcache.revalidate_freq=2/opcache.revalidate_freq=1/g" \
/etc/php/8.3/fpm/php.ini
Убираем третье предупреждение
Некоторые индексы базы данных не были преобразованы в тип big int
Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены на соответствующей странице документации.filecache.mtime
filecache.storage_mtime
Для того, чтобы не потерять данные, или чтобы не было ошибок на клиентах, или просто для спокойствия нервной системы введите Nextcloud в режим обслуживания.
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on
В браузере вы можете увидеть, что система находится в режиме обслуживания. Теперь в консоли выполните следующее:
sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint --no-interaction
Затем выключите режим обслуживания.
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off
Убираем предупреждение о php
Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.
sudo nano /etc/php/8.3/fpm/php.ini
Ищем memory_limit и вводим, например, 512M вместо 128M. И перезапускаем php-fpm
или если хотим побыстрее
sed -i -e "s/memory_limit = 128M/memory_limit = 512M/g" /etc/php/8.3/fpm/php.ini
sudo systemctl restart php8.3-fpm
Убираем предупреждение о кешировании.
Не настроена система кешированияДля увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации
Поэтому прикручиваем систему кэширования, состоящую из локальной системы кэширования на основе APCu и системы распределённого кеширования Redis.
Ставим APCu
sudo apt install php-apcu -y
В файле php.ini включаем apcu
sudo nano /etc/php/8.3/cli/php.ini
вставив в начало
apc.enable_cli=1
Сохраняем файл и перезапускаем php-fpm.
sudo systemctl restart php8.3-fpm
Редактируем файл config/config.php в директории установки Nextсloud
sudo nano /usr/share/nginx/nextcloud/config/config.php
и вставляем следующую строку перед закрывающем скобкой «);»
'memcache.local' => '\OC\Memcache\APCu',
Ставим Redis.
sudo apt install redis-server php-redis -y
Проверяем, что он запустился
ps ax | grep redis
15758 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379
В тот же файл config/config.php
sudo nano /usr/share/nginx/nextcloud/config/config.php
вставьте следующее опять перед закрывающей скобкой «);»
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' =>
array (
'host' => '127.0.0.1',
'port' => 6379,
),
'memcache.locking' => '\OC\Memcache\Redis',
Сохраняем файл. Перезапускаем php-fpm, если вы это ещё не сделали и наслаждаемся ускоренной работе Nextcloud.
P.S. Если при консольном выполнении команд вы получаете такое сообщение:
OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)
то тогда пропишите в файл php.ini, который находится по пути /etc/php/8.3/cli следующий текст
apc.enable_cli=1
Ошибка должна исчезнуть
Убираем ошибку отсутствия индексов
В базе данных отсутствуют некоторые индексы. Так как создание таких индексов может занять достаточно продолжительное время, оно должно быть запущено вручную. Для создания индексов необходимо запустить команду «occ db:add-missing-indices» во время работы сервера Nextcloud. При созданных индексах, как правило, запросы к базе данных выполняются значительно быстрее.
Выполняем
sudo -u www-data php /usr/share/nginx/nextcloud/occ db:add-missing-indices
При успешном индексировании будет следующий текст:
Check indices of the share table. Check indices of the filecache table. Check indices of the twofactor_providers table. Check indices of the login_flow_v2 table. Check indices of the whats_new table. Check indices of the cards table. Check indices of the cards_properties table. Check indices of the calendarobjects_props table. Adding calendarobject_calid_index index to the calendarobjects_props table, this can take some time… calendarobjects_props table updated successfully. Check indices of the schedulingobjects table. Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time… schedulingobjects table updated successfully.
Некоторые индексы базы данных не были преобразованы в тип big int.Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены на соответствующей странице документации.
Вводим сервер в режим обслуживания и выполняем преобразование
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on
sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint
Появится сообщение
Nextcloud is in maintenance mode - no apps have been loaded Following columns will be updated: mounts.storage_id mounts.root_id mounts.mount_id This can take up to hours, depending on the number of files in your instance! Continue with the conversion (y/n)? [n]
Вводим «y»
И выводим из режима обслуживания
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off
Убираем предупреждение о 4-х байтовых символах
MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы.Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к документации.
Так как первоначально Nextcloud я ставил на базе MariaDB, то по ссылке выше для возможности обработки ошибки я не заметил продолжение про MariaDB, а сразу стал применять шаги для MySQL. Не надо так. Поэтому распишу по шагам, что и как надо делать.
P.S. Убедитесь, что MariaDB версии выше 10.2. У меня была версия 15.1
Убедитесь, что на вашем сервере MySQL установлены следующие параметры InnoDB в файле:
sudo nano /etc/mysql/mariadb.cnf
[mysqld] innodb_large_prefix=true innodb_file_format=barracuda innodb_file_per_table=1
и если их нет, то вставьте в конец файла.
Перезапустите сервер MariaDB
sudo systemctl restart mariadb
Выясните был ли изменён формат файла на Barracuda
sudo mariadb
SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nextcloud%";
Если формат файла — «barracuda» для каждой отдельной таблицы, то ничего особенного не остается делать. Продолжайте с инструкциями для MySQL. Во время тестирования формат файла всех таблиц был “Antelope”.
Таблицы должны быть перенесены в “barracuda” вручную, одна за другой. Однако команды SQL можно легко создавать:
USE INFORMATION_SCHEMA; SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM TABLES WHERE TABLE_SCHEMA = "nextcloud";
Скопируйте появившийся ответ и уберите в нем символ «|». После этого вставляйте текст в консоль mariadb
После всего проделанного формат файла должен поменяться на Barracuda. Проверим.
SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nextcloud%"; exit;
Инструкции для MySQL
Вводим в режим обслуживания.
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on
sudo mariadb
ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; exit;
sudo -u www-data php /usr/share/nginx/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
Должен быть такой результат
Nextcloud is in maintenance mode - no apps have been loaded System config value mysql.utf8mb4 set to boolean true
Запускаем конвертацию
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:repair
Отключаем режим обслуживания.
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off
Режим шифрования
Задействован устаревший режим шифрования файлов на стороне сервера.Рекомендуется отключить такое шифрование. Более подробные сведения содержатся в документации.
Как я понял, устаревший режим шифрования был введён в ранних версиях Nextcloud и впоследствии заменён на новый. Однако в хранилище могли остаться файлы со старым (legacy) типом шифрования.
В документации сказано, что найти эти файлы можно командой
occ encryption:scan:legacy-format
или более полный вариант
sudo -u www-data php /usr/share/nginx/nextcloud/occ encryption:scan:legacy-format
В процессе сканирования occ начнёт искать файлы со старым типом шифрования или если в базе такие файлы отсутствуют, выдаст предупреждение, «does not have a proper header«.
Такие файлы я просто заменил копиями тех, у кого есть нужные заголовки. Так как таких файлов у меня просто не было.
После этого в файле config.php можно отключить поддержку устаревшего формата шифрования, удалив строку
'encryption.legacy_format_support' => true,
или, выставив значение false вместо true
С самими файлами в хранилище ничего не произойдёт, они так же будут зашифрованы как и раньше. В данном случае, мы просто отключили поддержку старого режима шифрования.
Настройка обратного прокси для доступа
Для доступа к файлам, используя обратный прокси, особых настроек делать не надо, достаточно в директиве proxy_pass указать IP сервера с Nextcloud. Однако, если вы используете клиент Nextcloud, то он при авторизации запустит окно браузера с IP сервера Nextcloud, а не его доменным именем. Чтобы это исправить, делаем следующее:
Для примера IP обратного прокси — 192.168.0.1, IP Nextcloud-сервера — 192.168.0.2
В файле nextcloud/config/config.php
'trusted_domains' => array ( 0 => '192.168.0.2', 1 => '192.168.0.1', ),
'overwritehost' => 'domain.name.example.org', 'overwriteprotocol' => 'https', 'overwritewebroot' => '', 'overwritecondaddr' => '^192\.168\.0\.1$', 'overwrite.cli.url' => 'https://domain.name.example.org',
'trusted_proxies' => array ( 0 => '192.168.0.1', ),
Таким образом, опция trusted_proxies исправляет проблему «Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси«
Уведомление о HTTP «X-Frame-Options»
Заголовок HTTP «X-Frame-Options» не настроен на значение «SAMEORIGIN».Это потенциальная проблема безопасности для устранения которой рекомендуется задать этот параметр.
Для этого добавьте в файл конфигурации nginx на стороне nextcloud следующее содержимое в секцию server
add_header X-Frame-Options "SAMEORIGIN";
Веб-сервер не настроен должным образом для разрешения «/.well-known/caldav». .Дополнительная информация может быть найдена в нашей документации
В конфиге nextcloud в статье есть строки с настройкой доступа к этому пути. Для удобства повторю тут
location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }
Новый dashboard
Следующая опция для тех, кто обновился до 20 версии и при заходе на главную облака видит новый dashboard вместо знакомого списка файлов.
Исправляется просто добавлением в файл config.php следующей строки
'defaultapp' => 'files',
Или можно в админке в Параметрах сервера — Внешний вид в секции Приложение по умолчанию выбрать нужное приложение.
Модуль php-imagick и SVG
Модуль php-imagick в этом случае не поддерживает SVG.Для лучшей совместимости рекомендуется установить его
После установки или обновления Nextcloud до 21 версии появится сообщение об ошибке в модуле php-imagick. И хотя само расширение для php установлено, может статься, что в системе не установлен пакет приложения imagemagick. Поэтому ставим его через apt
sudo apt install imagemagick
В русском переводе на 2021.03.25 фраза переведена немного неправильно. В оригинале это выглядит как «Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it.» — «У модуля php-imagick на этом сервере отсутствует поддержка формата SVG. Для лучшей совместимости рекомендуется установить его»
Регион размещения сервера
Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны.Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с ISO 3166-1.
Опять же после обновления до 21 версии Nextcloud появляется такое предупреждение. Точную причину почему в Nextcloud понадобилось указывать номер телефона я не знаю, но как устранить это предупреждение — знаю.
Открываем файл config.php, расположенный в директории Nextcloud по пути config/config.php и внизу вставляем строку
'default_phone_region' => 'RU',
Файлы .mjs
Your webserver does not serve `.mjs` files using the JavaScript MIME type. This will break some apps by preventing browsers from executing the JavaScript files. You should configure your webserver to serve `.mjs` files with either the `text/javascript` or `application/javascript` MIME type.
С версии 28 в Nextcloud появился функционал использования файлов mjs
Файл с расширением .mjs — это файл исходного кода JavaScript, который используется в качестве модуля ECMA (модуль ECMAScript) в приложениях Node.js.
Из-за этого в панели администрирования можно увидеть предупреждение о том, что веб-сервер не поддерживает mjs файлы, необходимые для работы некоторых приложений или дополнений. Чтобы это исправить просто добавьте в конфигурационный файл mime-типов вашего веб-сервера следующую строку (для начала покажу на примере nginx)
sudo nano /etc/nginx/mime.types
image/jpeg jpeg jpg;
application/javascript js mjs;
application/atom+xml atom;
Затем перезапустите nginx
sudo nginx -s reload
Время обслуживания
Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks
С 28 версии появилось предупреждение о том, что не настроено окно для проведения работ по обслуживанию системы. Опция была и раньше, просто предупреждение не выводилось в админ-панель.
Этот параметр учитывается только в режиме cron
.
Чтобы исправить предупреждение добавьте в config/config.php строку
'maintenance_window_start' => 5,
Документация гласит, что указанное число используется как время старта задач по обслуживанию системы. Время старта задаётся числом с началом отсчёта по времени UTC. Тяжёлые задачи будут отложены, чтобы не нагружать сервер в рабочие часы. Они будут выполнены в течение 4 часов после наступления этого времени. То есть, указав 5 в параметре, тяжёлые задачи выполнятся с 2 ночи до 6 утра по Москве (UTC+3 — московское время, плюс 2 часа — в итоге получаем 2 часа ночи как точка старта)
Если ваша система не сильно нагружена, то можно указать в параметре 100.
PHP output_buffering
После минорного обновления появилось такое предупреждение
Параметр конфигурации PHP «output_buffering» должен быть отключён
Для устранения предупреждения в файле
sudo nano /etc/php/8.3/fpm/php.ini
нужно вписать следующее
output_buffering = 0
Настройка e-mail
С отправкой уведомлений по почте проблем обычно не возникает. Каждый почтовый сервис предоставляет свои параметры для подключения. Если проблемы с отправкой почты есть, то добавьте в config.php
'mail_smtpstreamoptions' =>
array (
'ssl' =>
array (
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
),
),
Свежие комментарии