Инструменты пользователя

Инструменты сайта


web:cms:dokuwiki-tuning

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
web:cms:dokuwiki-tuning [1] – создано novikweb:cms:dokuwiki-tuning [1] (текущий) – создано novik
Строка 1: Строка 1:
-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, то вот команда &#8212; sudo -u www-data php /path/to/nextcloud/occ maintenance:mode &#8212;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 300whttps://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. Язык интерфейса &#8212; русский. 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>&#171;PHP не настроен правильно для получения переменных системного окружения.</p>
 +<cite>Запрос getenv(&#171;PATH&#187;) возвращает пустые результаты.<br>Обратитесь к разделу о конфигурации PHP и примечаниям к конфигурации<br>PHP из <a href="https://docs.nextcloud.com/server/15/go.php?to=admin-php-fpm">руководства по установке</a>. Обратите внимание на настройку<br>параметров PHP, особенно при использовании механизма php-fpm.&#187;</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(&#8216;PATH&#8217;); может возвращать пустой результат. Поэтому вам может потребоваться вручную настроить переменные среды в файле конфигурации 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>&#171;PHP OPcache не настроен правильно&#187;</p>
 +<cite>&nbsp;<a href="https://docs.nextcloud.com/server/15/go.php?to=admin-php-opcache">Для обеспечения лучшей производительности рекомендуется&nbsp;</a>задать в файле&nbsp;<code>php.ini</code>&nbsp;следующие параметры настроек: <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&#8217;ом</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». Дополнительные сведения приведены&nbsp;<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. Более подробная информация доступна в&nbsp;<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>и вставляем следующую строку перед закрывающем скобкой &#171;);&#187;</p> 
 + 
 + 
 + 
 +<pre class="wp-block-preformatted">'memcache.local' =&gt; '\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>вставьте следующее  опять перед закрывающей скобкой &#171;);&#187;</p> 
 + 
 + 
 + 
 +<pre class="wp-block-preformatted">  'memcache.distributed' =&gt; '\OC\Memcache\Redis',<br>  'redis' =&gt;<br>  array (<br>        'host' =&gt; '127.0.0.1',<br>        'port' =&gt; 6379,<br>  ),<br>  'memcache.locking' =&gt; '\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>В базе данных отсутствуют некоторые индексы.&nbsp;</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.
Строка 275: Строка 415:
 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». Дополнительные сведения приведены&nbsp;<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
Строка 300: Строка 447:
 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>Вводим &#171;y&#187;</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. Для получения более подробной информации обратитесь к&nbsp;<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>Если формат файла &#8212; &#171;barracuda&#187; для каждой отдельной таблицы, то ничего особенного не остается делать. Продолжайте с инструкциями для 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>Скопируйте появившийся ответ и уберите в нем символ &#171;|&#187;. После этого вставляйте текст в консоль 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>Рекомендуется отключить такое шифрование. Более подробные сведения содержатся в&nbsp;<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 начнёт искать файлы со старым типом шифрования или если в базе такие файлы отсутствуют, выдаст предупреждение, &#171;<em>does not have a proper header</em>&#171;.</p> 
 + 
 + 
 + 
 +<p>Такие файлы я просто заменил копиями тех, у кого есть нужные заголовки. Так как таких файлов у меня просто не было.</p> 
 + 
 + 
 + 
 +<p>После этого в файле config.php можно отключить поддержку устаревшего формата шифрования, удалив строку </p> 
 + 
 + 
 + 
 +<pre class="wp-block-preformatted">'encryption.legacy_format_support' =&gt; 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 обратного прокси &#8212; 192.168.0.1, IP Nextcloud-сервера &#8212; 192.168.0.2</p> 
 + 
 + 
 + 
 +<p>В файле nextcloud/config/config.php</p> 
 + 
 + 
 + 
 +<pre class="wp-block-preformatted">'trusted_domains' =&gt;
 array ( array (
-0 ='192.168.0.2', +0 =&gt; '192.168.0.2', 
-1 ='192.168.0.1', +1 =&gt; '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' =&gt; 'domain.name.example.org', 
 +'overwriteprotocol' =&gt; 'https', 
 +'overwritewebroot' =&gt; '', 
 +'overwritecondaddr' =&gt; '^192\.168\.0\.1$', 
 +'overwrite.cli.url' =&gt; 'https://domain.name.example.org',</pre> 
 + 
 + 
 + 
 +<pre class="wp-block-preformatted">'trusted_proxies' =&gt;
 array ( array (
-    0 ='192.168.0.1', +    0 =&gt; '192.168.0.1', 
-),+),</pre>
  
-</code> 
  
-Таким образом, опция trusted_proxies исправляет проблему «//Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси//« 
  
-//[[https://kurazhov.ru/nextcloud-tuning/#0|К оглавлению]]//+<p>Таким образом, опция trusted_proxies исправляет проблему &#171;<em>Заголовки обратного прокси настроены неправильно, либо вы подключены к серверу Nextcloud через доверенный прокси</em>&#171;</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' =&gt; '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>Или можно в админке в Параметрах сервера &#8212; Внешний вид в секции Приложение по умолчанию выбрать нужное приложение.</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 фраза переведена немного неправильно. В оригинале это выглядит как &#171;Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it.&#187; &#8212; &#171;У модуля php-imagick на этом сервере отсутствует поддержка формата SVG. Для лучшей совместимости рекомендуется установить его&#187;</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» с соответствующим кодом страны в соответствии с&nbsp;<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 понадобилось указывать номер телефона я не знаю, но как устранить это предупреждение &#8212; знаю. </p>
 +
 +
 +
 +<p>Открываем файл config.php, расположенный в директории Nextcloud по пути config/config.php и внизу вставляем строку</p>
 +
 +
 +
 +<pre class="wp-block-preformatted">  'default_phone_region' =&gt; '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>Этот параметр учитывается только в режиме&nbsp;<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' =&gt; 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&nbsp;=&nbsp;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' =&gt;<br>   array (<br>    'ssl' =&gt; <br>     array (<br>      'allow_self_signed' =&gt; true,<br>      'verify_peer' =&gt; false,<br>      'verify_peer_name' =&gt; 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. Пожалуйста, обновите формат строки в следующем списке:&nbsp;</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>
web/cms/dokuwiki-tuning.1754038776.txt.gz · Последнее изменение: novik