Следующая версия | Предыдущая версия |
web:cms:dokuwiki-tuning [1] – создано novik | web:cms:dokuwiki-tuning [1] (текущий) – создано novik |
---|
UPD 2024.12.24. Статья обновилась на использование Ubuntu 24 и, соответственно, php версии 8.3. | <html> |
| <div class="entry-content"> |
| |
| <p class="has-black-color has-vivid-green-cyan-background-color has-text-color has-background has-link-color has-small-font-size wp-elements-fdf2d2ffd1baef4103e8c5648f7f1a45">UPD 2024.12.24. Статья обновилась на использование Ubuntu 24 и, соответственно, php версии 8.3. </p> |
| |
После [[https://kurazhov.ru/install-nextcloud-ubuntu-18-lemp/|установки Nextcloud]] им можно сразу же пользоваться. (А если вы здесь по вопросу отключения техобслуживания Nextcloud, то вот команда — sudo -u www-data php /path/to/nextcloud/occ maintenance:mode —off (перед off ставьте два дефиса) ) | |
| |
Но, если вам хочется большей производительности, а также не хочется видеть предупреждение о текущей конфигурации, которое будет видно каждый раз при заходе в административную панель, то следующие советы для вас. | |
| |
[[https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-1024x219.png|{{https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-1024x219.png?nolink&1024x219}}]] | <p>После <a href="https://kurazhov.ru/install-nextcloud-ubuntu-18-lemp/">установки Nextcloud</a> им можно сразу же пользоваться. (А если вы здесь по вопросу отключения техобслуживания Nextcloud, то вот команда — sudo -u www-data php /path/to/nextcloud/occ maintenance:mode —off (перед off ставьте два дефиса) )</p> |
Как и ранее я писал, Nextcloud стоит на Ubuntu 24.04 и работает под связкой nginx + php-fpm (версии 8.3) + mysql. Язык интерфейса — русский. Nextcloud установлен в /usr/share/nginx/nextcloud/ | |
| |
После внесения изменений не забываем перезапускать php-fpm. Или можете после применения всех изменений перезапустить его один раз. | |
| |
**//Содержание:// ** | |
| |
- [[https://kurazhov.ru/nextcloud-tuning/#1|PHP не настроен правильно для получения переменных системного окружения]]. | <p>Но, если вам хочется большей производительности, а также не хочется видеть предупреждение о текущей конфигурации, которое будет видно каждый раз при заходе в административную панель, то следующие советы для вас.</p> |
- [[https://kurazhov.ru/nextcloud-tuning/#2|PHP OPcache не настроен правильно]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#3|Некоторые индексы базы данных не были преобразованы в тип big int]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#4|Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#5|Не настроена система кеширования]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#6|В базе данных отсутствуют некоторые индексы]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#7|MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#8|Задействован устаревший режим шифрования файлов на стороне сервера]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#9|Настройка обратного прокси для доступа]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#10|Заголовок HTTP «X-Frame-Options» не настроен на значение «SAMEORIGIN»]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#11|Новый dashboard]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#12|Модуль php-imagick и SVG]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#13|Регион размещения сервера]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#14|Файлы .mjs]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#15|Время обслуживания]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#16|PHP output_buffering]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#17|Настройка e-mail]] | |
- [[https://kurazhov.ru/nextcloud-tuning/#18|Формат строки в базе данных]] | |
| |
===== Убираем первое предупреждение: ===== | |
<blockquote> | |
| |
«PHP не настроен правильно для получения переменных системного окружения. | |
| |
Запрос getenv(«PATH») возвращает пустые результаты. \\ Обратитесь к разделу о конфигурации PHP и примечаниям к конфигурации \\ PHP из [[https://docs.nextcloud.com/server/15/go.php?to=admin-php-fpm|руководства по установке]]. Обратите внимание на настройку \\ | <figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="1024" height="219" src="https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-1024x219.png" alt="" class="wp-image-1938" srcset="https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-1024x219.png 1024w, https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-150x32.png 150w, https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-300x64.png 300w, https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38-624x134.png 624w, https://kurazhov.ru/wp-content/uploads/2019/02/2019-02-16_01-39-38.png 1588w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure> |
параметров PHP, особенно при использовании механизма php-fpm.»</blockquote><blockquote> | |
| |
Как сказано в документации | |
| |
Когда вы используете php-fpm, системные переменные среды, такие как PATH, TMP или другие, не заполняются автоматически так же, как при использовании php-cli. Вызов функции PHP, такой как getenv(‘PATH’); может возвращать пустой результат. Поэтому вам может потребоваться вручную настроить переменные среды в файле конфигурации php-fpm.</blockquote> | |
| |
Редактируем файл /etc/php/8.3/fpm/pool.d/www.conf | <p>Как и ранее я писал, Nextcloud стоит на Ubuntu 24.04 и работает под связкой nginx + php-fpm (версии 8.3) + mysql. Язык интерфейса — русский. Nextcloud установлен в /usr/share/nginx/nextcloud/</p> |
| |
Ищем такие строки: | |
<code> | |
;env[HOSTNAME] = $HOSTNAME | |
;env[PATH] = /usr/local/bin:/usr/bin:/bin | |
;env[TMP] = /tmp | |
;env[TMPDIR] = /tmp | |
;env[TEMP] = /tmp | |
| |
</code> | |
| |
И раскомментируем их. | <span id="more-1937"></span> |
| |
Или, если побыстрее | |
| |
<code>sed -i -e "s/\;env\[/env\[/g" \ | |
/etc/php/8.3/fpm/pool.d/www.conf | |
| |
</code> | <p>После внесения изменений не забываем перезапускать php-fpm. Или можете после применения всех изменений перезапустить его один раз.</p> |
| |
Не забываем перезапустить php-fpm | |
| |
<code>systemctl restart php8.3-fpm | |
| |
</code> | <p id="0"><strong><em>Содержание:</em></strong></p> |
| |
Готово. Идём дальше. | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Убираем второе предупреждение ===== | <ol class="wp-block-list"> |
<blockquote> | <li><a href="#1" data-type="internal" data-id="#1">PHP не настроен правильно для получения переменных системного окружения</a>.</li> |
| |
«PHP OPcache не настроен правильно» | |
| |
[[https://docs.nextcloud.com/server/15/go.php?to=admin-php-opcache|Для обеспечения лучшей производительности рекомендуется ]]задать в файле ''php.ini'' следующие параметры настроек: \\ \\ ''opcache.enable=1'' \\ ''opcache.enable_cli=1'' \\ ''opcache.interned_strings_buffer=''16 \\ ''opcache.max_accelerated_files=10000'' \\ ''opcache.memory_consumption=256'' \\ ''opcache.save_comments=1'' \\ ''opcache.revalidate_freq=1'' </blockquote> | |
| |
Заменим вручную вышеуказанные параметры в файле **/etc/php/8.3/fpm/php.ini** или сразу заменим значения sed’ом | <li><a href="#2" data-type="internal" data-id="#2">PHP OPcache не настроен правильно</a></li> |
<code> | |
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 | |
| |
</file> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Убираем третье предупреждение ===== | <li><a href="#3" data-type="internal" data-id="#3">Некоторые индексы базы данных не были преобразованы в тип big int</a></li> |
<blockquote> | |
| |
Некоторые индексы базы данных не были преобразованы в тип big int | |
| |
\\ Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены [[https://docs.nextcloud.com/server/15/go.php?to=admin-bigint-conversion|на соответствующей странице документации]].filecache.mtime \\ | |
filecache.storage_mtime</blockquote> | |
| |
Для того, чтобы не потерять данные, или чтобы не было ошибок на клиентах, или просто для спокойствия нервной системы введите Nextcloud в режим обслуживания. | <li><a href="#4" data-type="internal" data-id="#4">Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ</a></li> |
<code> | |
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on | |
| |
</code> | |
| |
В браузере вы можете увидеть, что система находится в режиме обслуживания. Теперь в консоли выполните следующее: | |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint --no-interaction | <li><a href="#5" data-type="internal" data-id="#5">Не настроена система кеширования</a></li> |
| |
| |
</file> | |
| |
Затем выключите режим обслуживания. | <li><a href="#6" data-type="internal" data-id="#6">В базе данных отсутствуют некоторые индексы</a></li> |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off | |
| |
</code> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <li><a href="#7" data-type="internal" data-id="#7">MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы</a></li> |
| |
===== Убираем предупреждение о php ===== | |
<blockquote> | |
| |
Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ. | |
| |
| <li><a href="#8" data-type="internal" data-id="#8">Задействован устаревший режим шифрования файлов на стороне сервера</a></li> |
| |
| |
| |
| <li><a href="#9" data-type="internal" data-id="#9">Настройка обратного прокси для доступа</a></li> |
| |
| |
| |
| <li><a href="#10" data-type="internal" data-id="#10">Заголовок HTTP «X-Frame-Options» не настроен на значение «SAMEORIGIN»</a></li> |
| |
| |
| |
| <li><a href="#11" data-type="internal" data-id="#11">Новый dashboard</a></li> |
| |
| |
| |
| <li><a href="#12">Модуль php-imagick и SVG</a></li> |
| |
| |
| |
| <li><a href="#13">Регион размещения сервера</a></li> |
| |
| |
| |
| <li><a href="#14" data-type="internal" data-id="#14">Файлы .mjs</a></li> |
| |
| |
| |
| <li><a href="#15" data-type="internal" data-id="#15">Время обслуживания</a></li> |
| |
| |
| |
| <li><a href="#16" data-type="internal" data-id="#16">PHP output_buffering</a></li> |
| |
| |
| |
| <li><a href="#17" data-type="internal" data-id="#17">Настройка e-mail</a></li> |
| |
| |
| |
| <li><a href="#18">Формат строки в базе данных</a></li> |
| </ol> |
| |
| |
| |
| <a name="1"></a><h2>Убираем первое предупреждение: </h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>«PHP не настроен правильно для получения переменных системного окружения.</p> |
| <cite>Запрос getenv(«PATH») возвращает пустые результаты.<br>Обратитесь к разделу о конфигурации PHP и примечаниям к конфигурации<br>PHP из <a href="https://docs.nextcloud.com/server/15/go.php?to=admin-php-fpm">руководства по установке</a>. Обратите внимание на настройку<br>параметров PHP, особенно при использовании механизма php-fpm.»</cite></blockquote> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Как сказано в документации</p> |
| <cite>Когда вы используете php-fpm, системные переменные среды, такие как PATH, TMP или другие, не заполняются автоматически так же, как при использовании php-cli. Вызов функции PHP, такой как getenv(‘PATH’); может возвращать пустой результат. Поэтому вам может потребоваться вручную настроить переменные среды в файле конфигурации php-fpm. </cite></blockquote> |
| |
| |
| |
| <p>Редактируем файл /etc/php/8.3/fpm/pool.d/www.conf</p> |
| |
| |
| |
| <p>Ищем такие строки:</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">;env[HOSTNAME] = $HOSTNAME<br>;env[PATH] = /usr/local/bin:/usr/bin:/bin <br>;env[TMP] = /tmp <br>;env[TMPDIR] = /tmp <br>;env[TEMP] = /tmp</pre> |
| |
| |
| |
| <p>И раскомментируем их.</p> |
| |
| |
| |
| <p>Или, если побыстрее</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sed -i -e "s/\;env\[/env\[/g" \<br>/etc/php/8.3/fpm/pool.d/www.conf</pre> |
| |
| |
| |
| <p>Не забываем перезапустить php-fpm</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">systemctl restart php8.3-fpm</pre> |
| |
| |
| |
| <p>Готово. Идём дальше.</p> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="2"></a><h2>Убираем второе предупреждение</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>«PHP OPcache не настроен правильно»</p> |
| <cite> <a href="https://docs.nextcloud.com/server/15/go.php?to=admin-php-opcache">Для обеспечения лучшей производительности рекомендуется </a>задать в файле <code>php.ini</code> следующие параметры настроек: <br><br><code>opcache.enable=1</code><br><code>opcache.enable_cli=1</code><br><code>opcache.interned_strings_buffer=</code>16<br><code>opcache.max_accelerated_files=10000</code><br><code>opcache.memory_consumption=256</code><br><code>opcache.save_comments=1</code><br><code>opcache.revalidate_freq=1</code></cite></blockquote> |
| |
| |
| |
| <p>Заменим вручную вышеуказанные параметры в файле <strong>/etc/php/8.3/fpm/php.ini</strong> или сразу заменим значения sed’ом</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sed -i -e "s/\;opcache.enable=1/opcache.enable=1/g" \<br>/etc/php/8.3/fpm/php.ini<br>sed -i -e "s/\;opcache.enable_cli=0/opcache.enable_cli=1/g" \<br>/etc/php/8.3/fpm/php.ini<br>sed -i -e "s/\;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=16/g" \<br>/etc/php/8.3/fpm/php.ini<br> sed -i -e "s/\;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g" \<br>/etc/php/8.3/fpm/php.ini<br>sed -i -e "s/\;opcache.memory_consumption=128/opcache.memory_consumption=256/g" \<br>/etc/php/8.3/fpm/php.ini<br>sed -i -e "s/\;opcache.save_comments=1/opcache.save_comments=1/g" \<br>/etc/php/8.3/fpm/php.ini<br>sed -i -e "s/\;opcache.revalidate_freq=2/opcache.revalidate_freq=1/g" \<br>/etc/php/8.3/fpm/php.ini</pre> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="3"></a><h2>Убираем третье предупреждение</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p> Некоторые индексы базы данных не были преобразованы в тип big int </p> |
| <cite> <br>Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены <a href="https://docs.nextcloud.com/server/15/go.php?to=admin-bigint-conversion">на соответствующей странице документации</a>.filecache.mtime<br>filecache.storage_mtime </cite></blockquote> |
| |
| |
| |
| <p>Для того, чтобы не потерять данные, или чтобы не было ошибок на клиентах, или просто для спокойствия нервной системы введите Nextcloud в режим обслуживания. </p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on</pre> |
| |
| |
| |
| <p>В браузере вы можете увидеть, что система находится в режиме обслуживания. Теперь в консоли выполните следующее:</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint --no-interaction |
| </pre> |
| |
| |
| |
| <p>Затем выключите режим обслуживания. </p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off</pre> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="4"></a><h2>Убираем предупреждение о php</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения в 512 МБ.</p> |
</blockquote> | </blockquote> |
<code> | |
sudo nano /etc/php/8.3/fpm/php.ini | |
| |
</code> | |
| |
Ищем memory_limit и вводим, например, 512M вместо 128M. И перезапускаем php-fpm | |
| |
или если хотим побыстрее | <pre class="wp-block-preformatted">sudo nano /etc/php/8.3/fpm/php.ini</pre> |
| |
<code>sed -i -e "s/memory_limit = 128M/memory_limit = 512M/g" /etc/php/8.3/fpm/php.ini | |
| |
</code> | |
<code>sudo systemctl restart php8.3-fpm | |
| |
</code> | <p>Ищем memory_limit и вводим, например, 512M вместо 128M. И перезапускаем php-fpm</p> |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Убираем предупреждение о кешировании. ===== | |
<blockquote> | |
| |
Не настроена система кеширования | <p>или если хотим побыстрее</p> |
| |
Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в [[https://docs.nextcloud.com/server/15/go.php?to=admin-performance|документации]]</blockquote> | |
| |
Поэтому прикручиваем систему кэширования, состоящую из локальной системы кэширования на основе APCu и системы распределённого кеширования Redis. | |
| |
==== Ставим APCu ==== | <pre class="wp-block-preformatted">sed -i -e "s/memory_limit = 128M/memory_limit = 512M/g" /etc/php/8.3/fpm/php.ini</pre> |
<code> | |
sudo apt install php-apcu -y | |
| |
</code> | |
| |
В файле php.ini включаем **apcu** | |
| |
<code>sudo nano /etc/php/8.3/cli/php.ini | <pre class="wp-block-preformatted">sudo systemctl restart php8.3-fpm</pre> |
| |
</code> | |
| |
вставив в начало | |
| |
<code>apc.enable_cli=1 | <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
</code> | |
| |
Сохраняем файл и перезапускаем php-fpm. | |
| |
<code>sudo systemctl restart php8.3-fpm | <a name="5"></a><h2>Убираем предупреждение о кешировании. </h2> |
| |
</code> | |
| |
Редактируем файл config/config.php в директории установки Nextсloud | |
| |
<code>sudo nano /usr/share/nginx/nextcloud/config/config.php | <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p> Не настроена система кеширования </p> |
| <cite> Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в <a href="https://docs.nextcloud.com/server/15/go.php?to=admin-performance">документации</a> </cite></blockquote> |
| |
</code> | |
| |
и вставляем следующую строку перед закрывающем скобкой «);» | |
| |
<code>'memcache.local' => '\OC\Memcache\APCu', | <p>Поэтому прикручиваем систему кэширования, состоящую из локальной системы кэширования на основе APCu и системы распределённого кеширования Redis. </p> |
| |
</code> | |
==== Ставим Redis. ==== | |
| |
<code>sudo apt install redis-server php-redis -y | |
| |
</code> | <h3 class="wp-block-heading">Ставим APCu</h3> |
| |
Проверяем, что он запустился | |
| |
<code>ps ax | grep redis | |
15758 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379 | |
| |
</code> | <pre class="wp-block-preformatted"> sudo apt install php-apcu -y</pre> |
| |
В тот же файл config/config.php | |
<code> | |
sudo nano /usr/share/nginx/nextcloud/config/config.php | |
| |
</code> | |
| |
вставьте следующее опять перед закрывающей скобкой «);» | <p>В файле php.ini включаем <strong>apcu</strong></p> |
| |
<code>'memcache.distributed' => '\OC\Memcache\Redis', | |
'redis' => | |
array ( | |
'host' => '127.0.0.1', | |
'port' => 6379, | |
), | |
'memcache.locking' => '\OC\Memcache\Redis', | |
| |
</code> | |
| |
Сохраняем файл. Перезапускаем php-fpm, если вы это ещё не сделали и наслаждаемся ускоренной работе Nextcloud. | <pre class="wp-block-preformatted">sudo nano /etc/php/8.3/cli/php.ini</pre> |
| |
P.S. Если при консольном выполнении команд вы получаете такое сообщение: | |
| |
<code>OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?) | |
| |
</code> | <p>вставив в начало</p> |
| |
то тогда пропишите в файл **php.ini**, который находится по пути **/etc/php/8.3/cli** следующий текст | |
| |
<code>apc.enable_cli=1 | |
| |
</code> | <pre class="wp-block-preformatted">apc.enable_cli=1</pre> |
| |
Ошибка должна исчезнуть | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Убираем ошибку отсутствия индексов ===== | <p>Сохраняем файл и перезапускаем php-fpm.</p> |
<blockquote> | |
| |
В базе данных отсутствуют некоторые индексы. | |
| |
Так как создание таких индексов может занять достаточно продолжительное время, оно должно быть запущено вручную. Для создания индексов необходимо запустить команду «occ db:add-missing-indices» во время работы сервера Nextcloud. При созданных индексах, как правило, запросы к базе данных выполняются значительно быстрее.</blockquote> | |
| |
Выполняем | <pre class="wp-block-preformatted">sudo systemctl restart php8.3-fpm</pre> |
<code> | |
sudo -u www-data php /usr/share/nginx/nextcloud/occ db:add-missing-indices | |
| |
</code> | |
| |
При успешном индексировании будет следующий текст: | |
| |
<code>Check indices of the share table. | <p>Редактируем файл config/config.php в директории установки Nextсloud </p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo nano /usr/share/nginx/nextcloud/config/config.php</pre> |
| |
| |
| |
| <p>и вставляем следующую строку перед закрывающем скобкой «);»</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">'memcache.local' => '\OC\Memcache\APCu',</pre> |
| |
| |
| |
| <h3 class="wp-block-heading">Ставим Redis.</h3> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo apt install redis-server php-redis -y</pre> |
| |
| |
| |
| <p>Проверяем, что он запустился</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">ps ax | grep redis<br> 15758 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379</pre> |
| |
| |
| |
| <p>В тот же файл config/config.php</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo nano /usr/share/nginx/nextcloud/config/config.php</pre> |
| |
| |
| |
| <p>вставьте следующее опять перед закрывающей скобкой «);»</p> |
| |
| |
| |
| <pre class="wp-block-preformatted"> 'memcache.distributed' => '\OC\Memcache\Redis',<br> 'redis' =><br> array (<br> 'host' => '127.0.0.1',<br> 'port' => 6379,<br> ),<br> 'memcache.locking' => '\OC\Memcache\Redis', </pre> |
| |
| |
| |
| <p>Сохраняем файл. Перезапускаем php-fpm, если вы это ещё не сделали и наслаждаемся ускоренной работе Nextcloud.</p> |
| |
| |
| |
| <p>P.S. Если при консольном выполнении команд вы получаете такое сообщение: </p> |
| |
| |
| |
| <pre class="wp-block-preformatted">OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)</pre> |
| |
| |
| |
| <p>то тогда пропишите в файл <strong>php.ini</strong>, который находится по пути <strong>/etc/php/8.3/cli</strong> следующий текст</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">apc.enable_cli=1</pre> |
| |
| |
| |
| <p>Ошибка должна исчезнуть</p> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="6"></a><h2>Убираем ошибку отсутствия индексов</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>В базе данных отсутствуют некоторые индексы. </p> |
| <cite>Так как создание таких индексов может занять достаточно продолжительное время, оно должно быть запущено вручную. Для создания индексов необходимо запустить команду «occ db:add-missing-indices» во время работы сервера Nextcloud. При созданных индексах, как правило, запросы к базе данных выполняются значительно быстрее.</cite></blockquote> |
| |
| |
| |
| <p>Выполняем</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ db:add-missing-indices</pre> |
| |
| |
| |
| <p>При успешном индексировании будет следующий текст:</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">Check indices of the share table. |
Check indices of the filecache table. | Check indices of the filecache table. |
Check indices of the twofactor_providers table. | Check indices of the twofactor_providers table. |
Check indices of the schedulingobjects table. | Check indices of the schedulingobjects table. |
Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time… | Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time… |
schedulingobjects table updated successfully. | schedulingobjects table updated successfully.</pre> |
| |
</file><blockquote> | |
| |
Некоторые индексы базы данных не были преобразованы в тип big int. | |
| |
Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены [[https://docs.nextcloud.com/server/18/go.php?to=admin-bigint-conversion|на соответствующей странице документации]].</blockquote> | <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Некоторые индексы базы данных не были преобразованы в тип big int.</p> |
| <cite>Так как преобразование таких индексов может занять продолжительное время, оно должно быть запущенно вручную. Чтобы выполнить преобразование, необходимо включить режим обслуживания и запустить в терминале команду «occ db:convert-filecache-bigint». Дополнительные сведения приведены <a href="https://docs.nextcloud.com/server/18/go.php?to=admin-bigint-conversion">на соответствующей странице документации</a>.</cite></blockquote> |
| |
Вводим сервер в режим обслуживания и выполняем преобразование | |
<code> | |
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on | |
| |
</code> | |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint | |
| |
</file> | <p>Вводим сервер в режим обслуживания и выполняем преобразование</p> |
| |
Появится сообщение | |
| |
<code>Nextcloud is in maintenance mode - no apps have been loaded | |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on</pre> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ db:convert-filecache-bigint</pre> |
| |
| |
| |
| <p>Появится сообщение</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">Nextcloud is in maintenance mode - no apps have been loaded |
Following columns will be updated: | Following columns will be updated: |
mounts.storage_id | mounts.storage_id |
mounts.mount_id | mounts.mount_id |
This can take up to hours, depending on the number of files in your instance! | This can take up to hours, depending on the number of files in your instance! |
Continue with the conversion (y/n)? [n] | Continue with the conversion (y/n)? [n]</pre> |
| |
</file> | |
| |
Вводим «y» | |
| |
И выводим из режима обслуживания | <p>Вводим «y»</p> |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off | |
| |
</code> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <p>И выводим из режима обслуживания</p> |
| |
===== Убираем предупреждение о 4-х байтовых символах ===== | |
<blockquote> | |
| |
MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы. | |
| |
Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к [[https://docs.nextcloud.com/server/18/go.php?to=admin-mysql-utf8mb4|документации]].</blockquote> | <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off</pre> |
| |
Так как первоначально Nextcloud я ставил на базе MariaDB, то по ссылке выше для возможности обработки ошибки я не заметил продолжение про MariaDB, а сразу стал применять шаги для MySQL. Не надо так. Поэтому распишу по шагам, что и как надо делать. | |
| |
P.S. Убедитесь, что MariaDB версии выше 10.2. У меня была версия 15.1 | |
| |
Убедитесь, что на вашем сервере MySQL установлены следующие параметры InnoDB в файле: | <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
<code> | |
sudo nano /etc/mysql/mariadb.cnf | |
| |
</code> | |
<code>[mysqld] | |
| <a name="7"></a><h2>Убираем предупреждение о 4-х байтовых символах</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>MySQL используется в качестве базы данных, но не поддерживает 4-байтовые символы.</p> |
| <cite>Чтобы иметь возможность обрабатывать 4-байтовые символы (например, смайлики) без проблем в именах файлов или комментариях, рекомендуется включить 4-байтовую поддержку в MySQL. Для получения более подробной информации обратитесь к <a href="https://docs.nextcloud.com/server/18/go.php?to=admin-mysql-utf8mb4">документации</a>.</cite></blockquote> |
| |
| |
| |
| <p>Так как первоначально Nextcloud я ставил на базе MariaDB, то по ссылке выше для возможности обработки ошибки я не заметил продолжение про MariaDB, а сразу стал применять шаги для MySQL. Не надо так. Поэтому распишу по шагам, что и как надо делать.</p> |
| |
| |
| |
| <p>P.S. Убедитесь, что MariaDB версии выше 10.2. У меня была версия 15.1</p> |
| |
| |
| |
| <p>Убедитесь, что на вашем сервере MySQL установлены следующие параметры InnoDB в файле:</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo nano /etc/mysql/mariadb.cnf</pre> |
| |
| |
| |
| <pre class="wp-block-preformatted">[mysqld] |
innodb_large_prefix=true | innodb_large_prefix=true |
innodb_file_format=barracuda | innodb_file_format=barracuda |
innodb_file_per_table=1 | innodb_file_per_table=1</pre> |
| |
</file> | |
| |
и если их нет, то вставьте в конец файла. | |
| |
Перезапустите сервер MariaDB | <p>и если их нет, то вставьте в конец файла.</p> |
| |
<code>sudo systemctl restart mariadb | |
| |
</code> | |
| |
Выясните был ли изменён формат файла на Barracuda | <p>Перезапустите сервер MariaDB</p> |
| |
<code>sudo mariadb | |
| |
</code> | |
<code>SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nextcloud%"; | |
| |
</code> | <pre class="wp-block-preformatted">sudo systemctl restart mariadb</pre> |
| |
Если формат файла — «barracuda» для каждой отдельной таблицы, то ничего особенного не остается делать. Продолжайте с инструкциями для MySQL. Во время тестирования формат файла всех таблиц был “Antelope”. | |
| |
Таблицы должны быть перенесены в “barracuda” вручную, одна за другой. Однако команды SQL можно легко создавать: | |
| |
<code>USE INFORMATION_SCHEMA; | <p>Выясните был ли изменён формат файла на Barracuda</p> |
SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM TABLES WHERE TABLE_SCHEMA = "nextcloud"; | |
| |
</code> | |
| |
Скопируйте появившийся ответ и уберите в нем символ «|». После этого вставляйте текст в консоль mariadb | |
| |
После всего проделанного формат файла должен поменяться на Barracuda. Проверим. | <pre class="wp-block-preformatted">sudo mariadb</pre> |
<code> | |
SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nextcloud%"; | |
exit; | |
| |
</code> | |
=== Инструкции для MySQL === | |
| |
Вводим в режим обслуживания. | |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on | <pre class="wp-block-preformatted">SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nextcloud%";</pre> |
| |
</code> | |
<code>sudo mariadb | |
| |
</code> | |
<code>ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; | |
exit; | |
| |
</code> | <p>Если формат файла — «barracuda» для каждой отдельной таблицы, то ничего особенного не остается делать. Продолжайте с инструкциями для MySQL. Во время тестирования формат файла всех таблиц был “Antelope”.</p> |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true" | |
| |
</code> | |
| |
Должен быть такой результат | |
| |
<code>Nextcloud is in maintenance mode - no apps have been loaded | <p>Таблицы должны быть перенесены в “barracuda” вручную, одна за другой. Однако команды SQL можно легко создавать:</p> |
| |
System config value mysql.utf8mb4 set to boolean true | |
| |
</code> | |
| |
Запускаем конвертацию | <pre class="wp-block-preformatted">USE INFORMATION_SCHEMA; |
| SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") AS MySQLCMD FROM TABLES WHERE TABLE_SCHEMA = "nextcloud";</pre> |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:repair | |
| |
</code> | |
| |
Отключаем режим обслуживания. | <p>Скопируйте появившийся ответ и уберите в нем символ «|». После этого вставляйте текст в консоль mariadb</p> |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off | |
| |
</code> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <p>После всего проделанного формат файла должен поменяться на Barracuda. Проверим.</p> |
| |
===== Режим шифрования ===== | |
<blockquote> | |
| |
Задействован устаревший режим шифрования файлов на стороне сервера. | |
| |
Рекомендуется отключить такое шифрование. Более подробные сведения содержатся в [[https://docs.nextcloud.com/server/20/go.php?to=admin-sse-legacy-format|документации]].</blockquote> | <pre class="wp-block-preformatted">SELECT NAME, SPACE, FILE_FORMAT FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like "nextcloud%"; |
| exit;</pre> |
| |
Как я понял, устаревший режим шифрования был введён в ранних версиях Nextcloud и впоследствии заменён на новый. Однако в хранилище могли остаться файлы со старым (legacy) типом шифрования. | |
| |
В документации сказано, что найти эти файлы можно командой | |
<code> | |
occ encryption:scan:legacy-format | |
| |
</code> | <h4 class="wp-block-heading">Инструкции для MySQL</h4> |
| |
или более полный вариант | |
| |
<code>sudo -u www-data php /usr/share/nginx/nextcloud/occ encryption:scan:legacy-format | |
| |
</code> | <p>Вводим в режим обслуживания.</p> |
| |
В процессе сканирования occ начнёт искать файлы со старым типом шифрования или если в базе такие файлы отсутствуют, выдаст предупреждение, «//does not have a proper header//«. | |
| |
Такие файлы я просто заменил копиями тех, у кого есть нужные заголовки. Так как таких файлов у меня просто не было. | |
| |
После этого в файле config.php можно отключить поддержку устаревшего формата шифрования, удалив строку | <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on</pre> |
| |
<code>'encryption.legacy_format_support' => true, | |
| |
</code> | |
| |
или, выставив значение **false ** вместо **true** | <pre class="wp-block-preformatted">sudo mariadb</pre> |
| |
С самими файлами в хранилище ничего не произойдёт, они так же будут зашифрованы как и раньше. В данном случае, мы просто отключили поддержку старого режима шифрования. | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Настройка обратного прокси для доступа ===== | <pre class="wp-block-preformatted">ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; |
| exit;</pre> |
| |
Для доступа к файлам, используя обратный прокси, особых настроек делать не надо, достаточно в директиве proxy_pass указать IP сервера с Nextcloud. Однако, если вы используете клиент Nextcloud, то он при авторизации запустит окно браузера с IP сервера Nextcloud, а не его доменным именем. Чтобы это исправить, делаем следующее: | |
| |
Для примера IP обратного прокси — 192.168.0.1, IP Nextcloud-сервера — 192.168.0.2 | |
| |
В файле nextcloud/config/config.php | <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"</pre> |
<code> | |
'trusted_domains' => | |
| |
| <p>Должен быть такой результат</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">Nextcloud is in maintenance mode - no apps have been loaded |
| |
| System config value mysql.utf8mb4 set to boolean true</pre> |
| |
| |
| |
| <p>Запускаем конвертацию</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:repair</pre> |
| |
| |
| |
| <p>Отключаем режим обслуживания.</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off</pre> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="8"></a><h2>Режим шифрования</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Задействован устаревший режим шифрования файлов на стороне сервера. </p> |
| <cite>Рекомендуется отключить такое шифрование. Более подробные сведения содержатся в <a href="https://docs.nextcloud.com/server/20/go.php?to=admin-sse-legacy-format">документации</a>.</cite></blockquote> |
| |
| |
| |
| <p>Как я понял, устаревший режим шифрования был введён в ранних версиях Nextcloud и впоследствии заменён на новый. Однако в хранилище могли остаться файлы со старым (legacy) типом шифрования. </p> |
| |
| |
| |
| <p>В документации сказано, что найти эти файлы можно командой</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">occ encryption:scan:legacy-format</pre> |
| |
| |
| |
| <p>или более полный вариант</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo -u www-data php /usr/share/nginx/nextcloud/occ encryption:scan:legacy-format</pre> |
| |
| |
| |
| <p>В процессе сканирования occ начнёт искать файлы со старым типом шифрования или если в базе такие файлы отсутствуют, выдаст предупреждение, «<em>does not have a proper header</em>«.</p> |
| |
| |
| |
| <p>Такие файлы я просто заменил копиями тех, у кого есть нужные заголовки. Так как таких файлов у меня просто не было.</p> |
| |
| |
| |
| <p>После этого в файле config.php можно отключить поддержку устаревшего формата шифрования, удалив строку </p> |
| |
| |
| |
| <pre class="wp-block-preformatted">'encryption.legacy_format_support' => true,</pre> |
| |
| |
| |
| <p>или, выставив значение <strong>false </strong>вместо <strong>true</strong></p> |
| |
| |
| |
| <p>С самими файлами в хранилище ничего не произойдёт, они так же будут зашифрованы как и раньше. В данном случае, мы просто отключили поддержку старого режима шифрования.</p> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="9"></a><h2>Настройка обратного прокси для доступа</h2> |
| |
| |
| |
| <p>Для доступа к файлам, используя обратный прокси, особых настроек делать не надо, достаточно в директиве proxy_pass указать IP сервера с Nextcloud. Однако, если вы используете клиент Nextcloud, то он при авторизации запустит окно браузера с IP сервера Nextcloud, а не его доменным именем. Чтобы это исправить, делаем следующее: </p> |
| |
| |
| |
| <p>Для примера IP обратного прокси — 192.168.0.1, IP Nextcloud-сервера — 192.168.0.2</p> |
| |
| |
| |
| <p>В файле nextcloud/config/config.php</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">'trusted_domains' => |
array ( | array ( |
0 => '192.168.0.2', | 0 => '192.168.0.2', |
1 => '192.168.0.1', | 1 => '192.168.0.1', |
), | ),</pre> |
| |
</code> | |
<code>'overwritehost' => 'domain.name.example.org', | |
'overwriteprotocol' => 'https', | |
'overwritewebroot' => '', | |
'overwritecondaddr' => '^192\.168\.0\.1$', | |
'overwrite.cli.url' => 'https://domain.name.example.org', | |
| |
</code> | |
<code>'trusted_proxies' => | <pre class="wp-block-preformatted">'overwritehost' => 'domain.name.example.org', |
| 'overwriteprotocol' => 'https', |
| 'overwritewebroot' => '', |
| 'overwritecondaddr' => '^192\.168\.0\.1$', |
| 'overwrite.cli.url' => 'https://domain.name.example.org',</pre> |
| |
| |
| |
| <pre class="wp-block-preformatted">'trusted_proxies' => |
array ( | array ( |
0 => '192.168.0.1', | 0 => '192.168.0.1', |
), | ),</pre> |
| |
</code> | |
| |
Таким образом, опция trusted_proxies исправляет проблему «//Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси//« | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <p>Таким образом, опция trusted_proxies исправляет проблему «<em>Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси</em>«</p> |
| |
===== Уведомление о HTTP «X-Frame-Options» ===== | |
<blockquote> | |
| |
Заголовок HTTP «X-Frame-Options» не настроен на значение «SAMEORIGIN». | |
| |
Это потенциальная проблема безопасности для устранения которой рекомендуется задать этот параметр.</blockquote> | <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
Для этого добавьте в файл конфигурации nginx на стороне nextcloud следующее содержимое в секцию **//server// ** | |
<code> | |
add_header X-Frame-Options "SAMEORIGIN"; | |
| |
</code><blockquote> | |
| |
Веб-сервер не настроен должным образом для разрешения «/.well-known/caldav». . | <a name="10"></a><h2>Уведомление о HTTP «X-Frame-Options»</h2> |
| |
Дополнительная информация может быть найдена в нашей документации</blockquote> | |
| |
В конфиге nextcloud [[https://kurazhov.ru/install-nextcloud-ubuntu-20-lemp/|в статье]] есть строки с настройкой доступа к этому пути. Для удобства повторю тут | |
<code> | <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
location = /.well-known/carddav { | <p>Заголовок HTTP «X-Frame-Options» не настроен на значение «SAMEORIGIN». </p> |
return 301 $scheme://$host/remote.php/dav; | <cite>Это потенциальная проблема безопасности для устранения которой рекомендуется задать этот параметр.</cite></blockquote> |
| |
| |
| |
| <p>Для этого добавьте в файл конфигурации nginx на стороне nextcloud следующее содержимое в секцию <strong><em>server</em></strong></p> |
| |
| |
| |
| <pre class="wp-block-preformatted">add_header X-Frame-Options "SAMEORIGIN";</pre> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Веб-сервер не настроен должным образом для разрешения «/.well-known/caldav». .</p> |
| <cite>Дополнительная информация может быть найдена в нашей документации</cite></blockquote> |
| |
| |
| |
| <p>В конфиге nextcloud <a href="https://kurazhov.ru/install-nextcloud-ubuntu-20-lemp/" data-type="post" data-id="2288">в статье</a> есть строки с настройкой доступа к этому пути. Для удобства повторю тут</p> |
| |
| |
| |
| <pre class="wp-block-preformatted"> location = /.well-known/carddav { |
| return 301 $scheme://$host/remote.php/dav; |
} | } |
| |
location = /.well-known/caldav { | location = /.well-known/caldav { |
return 301 $scheme://$host/remote.php/dav; | return 301 $scheme://$host/remote.php/dav; |
} | }</pre> |
| |
</code> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Новый dashboard ===== | <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
Следующая опция для тех, кто обновился до 20 версии и при заходе на главную облака видит новый dashboard вместо знакомого списка файлов. | |
| |
Исправляется просто добавлением в файл **config.php** следующей строки | |
<code> | |
'defaultapp' => 'files', | |
| |
</file> | <a name="11"></a><h2>Новый dashboard</h2> |
| |
Или можно в админке в Параметрах сервера — Внешний вид в секции Приложение по умолчанию выбрать нужное приложение. | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Модуль php-imagick и SVG ===== | <p>Следующая опция для тех, кто обновился до 20 версии и при заходе на главную облака видит новый dashboard вместо знакомого списка файлов. </p> |
<blockquote> | |
| |
Модуль php-imagick в этом случае не поддерживает SVG. | |
| |
Для лучшей совместимости рекомендуется установить его</blockquote> | |
| |
После установки или обновления Nextcloud до 21 версии появится сообщение об ошибке в модуле php-imagick. И хотя само расширение для php установлено, может статься, что в системе не установлен пакет приложения imagemagick. Поэтому ставим его через apt | <p>Исправляется просто добавлением в файл <strong>config.php</strong> следующей строки</p> |
<code> | |
sudo apt install imagemagick | |
| |
</code> | |
| |
В русском переводе на 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. Для лучшей совместимости рекомендуется установить его» | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <pre class="wp-block-preformatted">'defaultapp' => 'files',</pre> |
| |
===== Регион размещения сервера ===== | |
<blockquote> | |
| |
Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны. | |
| |
Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с [[https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements|ISO 3166-1{{https://s.w.org/images/core/emoji/16.0.1/svg/2197.svg?nolink&|↗}}]].</blockquote> | <p>Или можно в админке в Параметрах сервера — Внешний вид в секции Приложение по умолчанию выбрать нужное приложение.</p> |
| |
Опять же после обновления до 21 версии Nextcloud появляется такое предупреждение. Точную причину почему в Nextcloud понадобилось указывать номер телефона я не знаю, но как устранить это предупреждение — знаю. | |
| |
Открываем файл config.php, расположенный в директории Nextcloud по пути config/config.php и внизу вставляем строку | |
<code> | |
'default_phone_region' => 'RU', | |
| |
</code> | <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Файлы .mjs ===== | |
<blockquote> | |
| |
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. | <a name="12"></a><h2>Модуль php-imagick и SVG</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Модуль php-imagick в этом случае не поддерживает SVG.</p> |
| <cite>Для лучшей совместимости рекомендуется установить его</cite></blockquote> |
| |
| |
| |
| <p>После установки или обновления Nextcloud до 21 версии появится сообщение об ошибке в модуле php-imagick. И хотя само расширение для php установлено, может статься, что в системе не установлен пакет приложения imagemagick. Поэтому ставим его через apt</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo apt install imagemagick</pre> |
| |
| |
| |
| <p>В русском переводе на 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. Для лучшей совместимости рекомендуется установить его»</p> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="13"></a><h2>Регион размещения сервера</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Не указан регион размещения этого сервера Nextcloud, что требуется для возможности проверки номеров телефонов без указания кода страны.</p> |
| <cite>Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны, добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с <a rel="noreferrer noopener" target="_blank" href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements">ISO 3166-1↗</a>.</cite></blockquote> |
| |
| |
| |
| <p>Опять же после обновления до 21 версии Nextcloud появляется такое предупреждение. Точную причину почему в Nextcloud понадобилось указывать номер телефона я не знаю, но как устранить это предупреждение — знаю. </p> |
| |
| |
| |
| <p>Открываем файл config.php, расположенный в директории Nextcloud по пути config/config.php и внизу вставляем строку</p> |
| |
| |
| |
| <pre class="wp-block-preformatted"> 'default_phone_region' => 'RU',</pre> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="14"></a><h2>Файлы .mjs</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>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.</p> |
</blockquote> | </blockquote> |
| |
С версии 28 в Nextcloud появился функционал использования файлов mjs | |
| |
<blockquote> | |
| |
Файл с расширением .mjs — это файл исходного кода JavaScript, который используется в качестве модуля ECMA (модуль ECMAScript) в приложениях Node.js. | <p>С версии 28 в Nextcloud появился функционал использования файлов mjs </p> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Файл с расширением .mjs — это файл исходного кода JavaScript, который используется в качестве модуля ECMA (модуль ECMAScript) в приложениях Node.js.</p> |
</blockquote> | </blockquote> |
| |
Из-за этого в панели администрирования можно увидеть предупреждение о том, что веб-сервер не поддерживает mjs файлы, необходимые для работы некоторых приложений или дополнений. Чтобы это исправить просто добавьте в конфигурационный файл mime-типов вашего веб-сервера следующую строку (для начала покажу на примере nginx) | |
<code> | |
sudo nano /etc/nginx/mime.types | |
| |
</code> | |
<code>''image/jpeg jpeg jpg; | <p>Из-за этого в панели администрирования можно увидеть предупреждение о том, что веб-сервер не поддерживает mjs файлы, необходимые для работы некоторых приложений или дополнений. Чтобы это исправить просто добавьте в конфигурационный файл mime-типов вашего веб-сервера следующую строку (для начала покажу на примере nginx)</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">sudo nano /etc/nginx/mime.types</pre> |
| |
| |
| |
| <pre class="wp-block-code"><code>image/jpeg jpeg jpg; |
application/javascript js mjs; | application/javascript js mjs; |
application/atom+xml atom;'' | application/atom+xml atom;</code></pre> |
| |
</code> | |
| |
Затем перезапустите nginx | |
| |
<code>sudo nginx -s reload | <p>Затем перезапустите nginx</p> |
| |
</code> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== Время обслуживания ===== | <pre class="wp-block-preformatted">sudo nginx -s reload</pre> |
<blockquote> | |
| |
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 | |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="15"></a><h2>Время обслуживания</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>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</p> |
</blockquote> | </blockquote> |
| |
С 28 версии появилось предупреждение о том, что не настроено окно для проведения работ по обслуживанию системы. Опция была и раньше, просто предупреждение не выводилось в админ-панель. | |
| |
Этот параметр учитывается только в режиме ''cron''. | |
| |
Чтобы исправить предупреждение добавьте в config/config.php строку | <p>С 28 версии появилось предупреждение о том, что не настроено окно для проведения работ по обслуживанию системы. Опция была и раньше, просто предупреждение не выводилось в админ-панель. </p> |
<code> | |
'maintenance_window_start' => 5, | |
| |
</code> | |
| |
Документация гласит, что указанное число используется как время старта задач по обслуживанию системы. Время старта задаётся числом с началом отсчёта по времени UTC. Тяжёлые задачи будут отложены, чтобы не нагружать сервер в рабочие часы. Они будут выполнены в течение 4 часов после наступления этого времени. То есть, указав 23 в параметре, тяжёлые задачи выполнятся с 2 ночи до 6 утра по Москве (11 PM (23:00) + UTC(MSK+3) = 23+3 = 2. Получаем 2 часа ночи как точка старта) | |
| |
Если ваша система не сильно нагружена, то можно указать в параметре 100. | <p>Этот параметр учитывается только в режиме <code>cron</code>.</p> |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
===== PHP output_buffering ===== | |
| |
После минорного обновления появилось такое предупреждение | <p>Чтобы исправить предупреждение добавьте в config/config.php строку</p> |
| |
<blockquote> | |
| |
Параметр конфигурации PHP «output_buffering» должен быть отключён | |
| |
| <pre class="wp-block-preformatted">'maintenance_window_start' => 5,</pre> |
| |
| |
| |
| <p>Документация гласит, что указанное число используется как время старта задач по обслуживанию системы. Время старта задаётся числом с началом отсчёта по времени UTC. Тяжёлые задачи будут отложены, чтобы не нагружать сервер в рабочие часы. Они будут выполнены в течение 4 часов после наступления этого времени. То есть, указав 23 в параметре, тяжёлые задачи выполнятся с 2 ночи до 6 утра по Москве (11 PM (23:00) + UTC(MSK+3) = 23+3 = 2. Получаем 2 часа ночи как точка старта)</p> |
| |
| |
| |
| <p>Если ваша система не сильно нагружена, то можно указать в параметре 100. </p> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="16"></a><h2>PHP output_buffering</h2> |
| |
| |
| |
| <p>После минорного обновления появилось такое предупреждение</p> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Параметр конфигурации PHP «output_buffering» должен быть отключён</p> |
</blockquote> | </blockquote> |
| |
Для устранения предупреждения в файле | |
<code> | |
sudo nano /etc/php/8.3/fpm/php.ini | |
| |
</code> | |
| |
нужно вписать следующее | <p>Для устранения предупреждения в файле</p> |
| |
<code>''output_buffering = 0'' | |
| |
</code> | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <pre class="wp-block-preformatted">sudo nano /etc/php/8.3/fpm/php.ini</pre> |
| |
===== Настройка e-mail ===== | |
| |
С отправкой уведомлений по почте проблем обычно не возникает. Каждый почтовый сервис предоставляет свои параметры для подключения. Если проблемы с отправкой почты есть, то добавьте в config.php | |
<code> | |
'mail_smtpstreamoptions' => | |
array ( | |
'ssl' => | |
array ( | |
'allow_self_signed' => true, | |
'verify_peer' => false, | |
'verify_peer_name' => false, | |
), | |
), | |
| |
</code> | <p>нужно вписать следующее</p> |
| |
За этот совет спасибо моему читателю. | |
| |
Но лучше всё же корректно настроить почтовый сервер {{https://s.w.org/images/core/emoji/16.0.1/svg/1f642.svg?nolink&|🙂}} | |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | <pre class="wp-block-preformatted"><code>output_buffering = 0</code></pre> |
| |
===== Формат строки в базе данных ===== | |
<blockquote> | |
| |
Неправильный формат строки обнаружен в вашей базе данных. ROW_FORMAT=Dynamic предлагает наилучшую производительность базы данных для Nextcloud. Пожалуйста, обновите формат строки в следующем списке: | |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="17"></a><h2>Настройка e-mail</h2> |
| |
| |
| |
| <p>С отправкой уведомлений по почте проблем обычно не возникает. Каждый почтовый сервис предоставляет свои параметры для подключения. Если проблемы с отправкой почты есть, то добавьте в config.php</p> |
| |
| |
| |
| <pre class="wp-block-preformatted"> 'mail_smtpstreamoptions' =><br> array (<br> 'ssl' => <br> array (<br> 'allow_self_signed' => true,<br> 'verify_peer' => false,<br> 'verify_peer_name' => false,<br> ),<br> ),</pre> |
| |
| |
| |
| <p>За этот совет спасибо моему читателю.</p> |
| |
| |
| |
| <p>Но лучше всё же корректно настроить почтовый сервер 🙂</p> |
| |
| |
| |
| <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
| |
| |
| <a name="18"></a><h2>Формат строки в базе данных</h2> |
| |
| |
| |
| <blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"> |
| <p>Неправильный формат строки обнаружен в вашей базе данных. ROW_FORMAT=Dynamic предлагает наилучшую производительность базы данных для Nextcloud. Пожалуйста, обновите формат строки в следующем списке: </p> |
</blockquote> | </blockquote> |
| |
Эта ошибка возникает при обновлении с 30 по 31 версию Nextcloud. На [[https://help.nextcloud.com/t/upgrade-to-nextcloud-hub-10-31-0-0-incorrect-row-format-found-in-your-database/218366/12|форуме]] есть, как мне кажется, временное решение. Скопирую его сюда | |
| |
Сначала создайте файл скрипта | |
<code> | |
nano dynamic.sh | |
| |
</code> | <p>Эта ошибка возникает при обновлении с 30 по 31 версию Nextcloud. На <a href="https://help.nextcloud.com/t/upgrade-to-nextcloud-hub-10-31-0-0-incorrect-row-format-found-in-your-database/218366/12" target="_blank" rel="noreferrer noopener">форуме</a> есть, как мне кажется, временное решение. Скопирую его сюда</p> |
| |
| |
| |
| <p>Сначала создайте файл скрипта</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">nano dynamic.sh</pre> |
| |
| |
| |
| <p>Вставьте текст</p> |
| |
| |
| |
| <pre class="wp-block-preformatted">#!/bin/bash<br><br># Prompt for database credentials<br>read -p "Enter Database Name: " DB_NAME<br>read -p "Enter Username: " DB_USER<br>read -s -p "Enter Password: " DB_PASS<br>echo<br><br># Execute all ALTER TABLE statements in one query<br>mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" -Bse "<br>SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;') <br>FROM INFORMATION_SCHEMA.TABLES <br>WHERE TABLE_SCHEMA = '$DB_NAME' <br>AND ENGINE = 'InnoDB'<br>" | mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME"</pre> |
| |
| |
| |
| <p>Сохранитесь и сделайте скрипт исполняемым. При необходимости отключите в скрипте запрос пароля, если при установке авторизация в mariadb была через сокет. </p> |
| |
| |
| |
| <p>Запустите скрипт и подождите пока он отработает. Ошибка должна исчезнуть. Но результат тут я не гарантирую.</p> |
| |
Вставьте текст | |
| |
<code>#!/bin/bash | <p>По идее, авторы Nextcloud при обновлении должны проверять формат таблиц и при необходимости конвертировать. Пока вот есть такое решение.</p> |
| |
# Prompt for database credentials | |
read -p "Enter Database Name: " DB_NAME | |
read -p "Enter Username: " DB_USER | |
read -s -p "Enter Password: " DB_PASS | |
echo | |
| |
# Execute all ALTER TABLE statements in one query | |
mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" -Bse " | |
SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;') | |
FROM INFORMATION_SCHEMA.TABLES | |
WHERE TABLE_SCHEMA = '$DB_NAME' | |
AND ENGINE = 'InnoDB' | |
" | mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | |
| |
</code> | <p><em><a href="#0" data-type="internal" data-id="#0">К оглавлению</a></em></p> |
| |
Сохранитесь и сделайте скрипт исполняемым. При необходимости отключите в скрипте запрос пароля, если при установке авторизация в mariadb была через сокет. | |
| |
Запустите скрипт и подождите пока он отработает. Ошибка должна исчезнуть. Но результат тут я не гарантирую. | |
| |
По идее, авторы Nextcloud при обновлении должны проверять формат таблиц и при необходимости конвертировать. Пока вот есть такое решение. | <p>На этом тюнинг закончен, но не завершён.</p> |
| |
//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]// | |
| |
На этом тюнинг закончен, но не завершён. | |
| |
| <p></p> |
| </div> |
| |
| </html> |