Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:articles:nc15 [10/04/2023 12:58] – [Кэш] grafwiki:articles:nc15 [24/04/2024 19:53] (текущий) – [Улучшения] graf
Строка 488: Строка 488:
 Устанавливаем необходимые пакеты для получения бесплатных сертификатов от центра сертификации //[[https://letsencrypt.org/ | Let's Encrypt]]// при помощи //[[https://certbot.eff.org/ | Certbot]]//. Устанавливаем необходимые пакеты для получения бесплатных сертификатов от центра сертификации //[[https://letsencrypt.org/ | Let's Encrypt]]// при помощи //[[https://certbot.eff.org/ | Certbot]]//.
 <code> <code>
-# sbopkg -Bki "configobj josepy zope.component zope.event zope.interface requests-toolbelt \ +# pip install pyparsing requests importlib_metadata cryptography josepy   
-pyrfc3339 pytz python-parsedatetime python-augeas pyOpenSSL python3-configargparse letsencrypt"+# sbopkg -Bi "configobj zope.component zope.event zope.interface requests-toolbelt \ 
 +pyrfc3339 pytz python-parsedatetime augeas pyOpenSSL python3-setuptools-rust python3-semantic-version \ 
 +python3-configargparse python3-augeas letsencrypt"
 </code> </code>
  
Строка 507: Строка 509:
 ... ...
 ... ...
 +</code>
 +
 +Чтобы сертификаты автоматически обновлялись, создадим скрипт ///etc/rc.d/rc.cerbot_renew// в который пропишем:
 +<code>
 +certbot renew --pre-hook "/etc/rc.d/rc.httpd stop" --post-hook "/etc/rc.d/rc.httpd start" --force-renewal
 +</code>
 +
 +Добавим в //cron// задачу по запуску этого скрипта 25 числа каждые 2 месяца в 1:30 ночи:
 +<code>
 +# Обновление сертификатов
 +30 01 25 */2 * /etc/rc.d/rc.cerbot_renew 1> /dev/null
 +</code>
 +
 +В ///etc/httpd/extra/httpd-ssl.conf// закомментируем все строки кроме следующих:
 +<code=apache>
 +Listen 443
 +
 +SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
 +SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
 +
 +SSLHonorCipherOrder on
 +SSLProtocol all -SSLv3
 +SSLProxyProtocol all -SSLv3
 +
 +SSLPassPhraseDialog  builtin
 +
 +SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
 +SSLSessionCacheTimeout  300
 +
 +BrowserMatch "MSIE [2-5]" \
 +nokeepalive ssl-unclean-shutdown \
 +downgrade-1.0 force-response-1.0
 </code> </code>
  
Строка 652: Строка 686:
  
 Далее пойдёт описание интеграции //CODE// в наш //NextCloud//.\\ Далее пойдёт описание интеграции //CODE// в наш //NextCloud//.\\
 +Если у вас запрещено использование **IPv6**, то необходимо его разрешить.\\
 Для работы //CODE// будем использовать его образ в Docker-контейнере.\\ Для работы //CODE// будем использовать его образ в Docker-контейнере.\\
 Поэтому, для начала, установим и запустим //Docker//. На момент написания статьи, это //docker// версии //23.0.1//. Поэтому, для начала, установим и запустим //Docker//. На момент написания статьи, это //docker// версии //23.0.1//.
Строка 1142: Строка 1177:
 \\ \\
  
 +===== Загрузка больших файлов =====
 +
 +Очень часто, при загрузке больших файлов через веб-интерфейс, возникают ошибки, например: ** Error when assembling chunks, status code 504 ** - //Ошибка при сборке чанков, код ошибки 504// или просто прерывается закачка с сообщением //**"Произошла неизвестная ошибка"**//.\\
 +А в логах Nextcloud видим, что-то подобное:\\
 +**Expected filesize of 10485760 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 8306688 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side**.\\
 +А при использовании проксирования в логах видим ошибку - **proxy_fcgi:error (70008)Partial results are valid but processing is incomplete**.\\
 +Исправляем:
 +    * Проверяем, что в ///etc/php.ini//, а по статье в ///etc/php.d/nc.ini// прописаны следующие параметры (пропишите свои) и их нет в ///var/www/htdocs/nextcloud/.htaccess// и(или) в ///var/www/htdocs/nextcloud/.user.ini// (параметры должны быть прописаны в каком-нибудь одном файле) :
 +<code>
 +; Размер POST-данных, которые будет принимать PHP 
 +post_max_size = 16G
 +
 +; Максимально допустимый размер загружаемых файлов (0 - без ограничений)
 +upload_max_filesize = 0
 +</code>
 +
 +  * в файле ///etc/httpd/httpd.conf//
 +
 +<code>
 +# Комментируем эту строку
 +# LoadModule reqtimeout_module lib64/httpd/modules/mod_reqtimeout.so
 +
 +# Добавляем Timeout в секундах 
 +Timeout 7200
 +</code>
 +
 +  * Увеличиваем размер чанка (фрагмента) загрузки до 50 МБ (по умолчанию 10 МБ):
 +<code>
 +# sudo -u apache php /var/www/htdocs/nextcloud/occ config:app:set files max_chunk_size --value 52428800
 +</code>
 +
 +  * В блоке //VirtualHost// с проксирование добавляем таймаут в секундах:
 +<code>
 + ProxyTimeout 7200
 +</code>
 ===== Улучшения ===== ===== Улучшения =====
 Всё, нижеописанное, относиться к добавлению параметров в файл ///var/www/htdocs/nextcloud/config/config.php//\\ Всё, нижеописанное, относиться к добавлению параметров в файл ///var/www/htdocs/nextcloud/config/config.php//\\
Строка 1232: Строка 1302:
 # /etc/rc.d/rc.httpd restart # /etc/rc.d/rc.httpd restart
 </code> </code>
 +
 +  * **skeleton**
 +Если при регистрации надо, чтобы у пользователя уже был определённый набор файлов, поместите их в директорию:\\
 +///var/www/htdocs/nextcloud/core/skeleton//\\
 +Соответственно, если набор не нужен, то удалить из этой директории все файлы и каталоги.
 +Можно переопределить адрес такой директории указав её в ///var/www/htdocs/nextcloud/config/config.php//
 +<code=php>'skeletondirectory' => '/var/www/htdocs/nextcloud/my_dir/skeleton'</code>
  
  
Строка 1268: Строка 1345:
 </code> </code>
  
 +  * **ОСС**
 +
 +//ОСС// - инструмент для административных задач из терминала.\\
 +Запускается под пользователем //apache//, т.е.\\
 +//# sudo -u apache php /var/www/htdocs/nextcloud/occ ''<ключь>''//\\
 +
 +Некоторый список ключей:
 +|''list''  |список и краткая аннотация всех ключей  |
 +|''user:list''  |список пользователей  |
 +|''user:resetpassword admin''  |сбросить пароль пользователя //admin//  |
 +|''user:add --display-name="Admin" -g admin admin''|создать пользователя //admin// в группе //admin//\\ с отображаемым именем //Admin// |
 +|''group:adduser admin Vasya -n''|дать права админа пользователю //Vasya// без вопросов | 
 +|''files:scan <username>''|если добавить файлы непосредственно в каталог данных пользователей на сервере,\\ то они не будут отображаться в веб-интерфейсе. Необходимо выполнить сканирование.\\ Без указания пользователя - сканируются все каталоги всех пользователей.|
 ====== Ссылки ====== ====== Ссылки ======
 При написании статьи использовались:\\ При написании статьи использовались:\\
Навигация
Печать/экспорт
QR Code
QR Code wiki:articles:nc15 (generated for current page)