МЕСТО ПОД РЕКЛАМУ
6 Ноябрь 2020

Bitriv VM — Unable to load dynamic library ‘pdo_sqlite’

Для одного из проектов на виртуальной машине 1С Битрик понадобилось включить расширение pdo_sqlite
Как обычно — залез в /etc/php.d/ нашел нужный мне файл 30-pdo_sqlite.ini и переименовал 30-pdo_sqlite.ini.disabled в 30-pdo_sqlite.ini

Расширение не включилось — посмотрел phpinfo() — сам файл 30-pdo_sqlite.ini подцепляется, но сама информация по pdo_sqlite не подключилась
php —ini так же подтвердило подключение модуля

далее решил глянуть инфу с консоли
php -i | grep mysql

тут то в самом начале и обнаружилась проблема

PHP Warning: PHP Startup: Unable to load dynamic library ‘pdo_sqlite’ (tried: /usr/lib64/php/modules/pdo_sqlite (/usr/lib64/php/modules/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/pdo_sqlite.so (/usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver)) in Unknown on line 0

посмотрел — всё Ок, файл /usr/lib64/php/modules/pdo_sqlite присутствует!

В общем не буду томить, решение оказалось очень простым — включение модуля 30-pdo.ini необходимого уже для дальнейшей работы других pdo_*** модулей

рубрики: Bitrix, NIX, PHP, Администрирование | Комментарии (0)

3 Ноябрь 2020

Битрикс — запуск агентов и большой размер таблицы b_stat_path_cache

Разбирался с проблемой на одном сайте клиента — при резервном копировании, обнаружили что размер файла базы данных просто ужасно огромен.
Как выяснилось, размер некоторых таблиц (например b_stat_path_cache) переваливал за гигабайт.

Вообще, именно за размер этой таблицы отвечают настройки времени хранения в модуле ВЕБ аналитики, конкретно тут:
Админка — Настройки — Настройки продукта — Настройки модулей — Веб-аналитика — закладки «Настройка данных» и «Время хранения».

Но проблема в данном случае оказалась не в этом.
В Битриксе подчищение всего лишнего (и не только!) занимаются так называемые АГЕНТЫ, список которых и статистику из запуска можно посмотреть тут
Админка — Настройки — Настройки продукта — Агенты

Оказалось, на сайте агенты не запускались уже несколько лет, соответственно статистику просто некому было чистить!

ОБЯЗАТЕЛЬНО проверяйте выполнение агентов на сайте под управлением Битрикс CMS

В данном случае, выполнение агентов было настроено на CRON, а сама задача по крону не была настроена
(тут для проверки нужно смотреть логи выполнения crontab в системе, или для начала просто скрипты поставленные на крон)
посмотреть как настроен запуск агентов в Битриксе можно в файле /bitrix/php_interface/dbconn.php
Если перевести выполнение агентов на хиты — нужно убрать константы define(‘BX_CRONTAB_SUPPORT’, true);

Собственно, я так и сделал, после чего обновил главную страницу сайта, после чего обновил страницу с Агентами в админке, и вуаля — в колонке последнего запуска агентов увидел текущую дату.
После чего заглянул в PHPMyAdmin — таблицы почистились!

Задача решена!

рубрики: Bitrix | Комментарии (0)

13 Октябрь 2020

Битрикс меню — структура файла и дополнительные параметры


То ли я читать не умею, что ли что — но в официальной документации я не увидел той информации, которую всё таки нашел в сети и решил оставить себе в блоге в виде справочного поста.
Итак, три статьи, которые мне «зашли» — первая, собственно вводная — тоже что в документации, только более понятно — структура файла меню
Вторая и третья статьи уже собственно затрагивают дополнительные параметры четвёртого параметра

Таким образом, приведу пример файла из второй статьи со структурой меню, которой в структуре может вообще не быть — то есть подпункты, можно добавить.

Я воспользовался этим приёмом для того, чтобы сделать верхний пункт меню некликабельным («Аэропорты Москвы»), а пункты подменю остались кликабельными.
Пример на сайте reklamy.ru — главное меню, раздел Реклама в аэропортах.
Так же мне нужно было, чтобы подпункты не были по структуре внутри верхнего пункта (т.к. он вообще не имеет своего адреса).

Свой файл выкладывать не буду — смысла нет, там всё по аналогии с файлом из первой статьи, который я себе сохраню
Читать полностью »

рубрики: Bitrix | Комментарии (0)

13 Октябрь 2020

Установка и настройка Сбербанк Эквайринг на 1С Битрикс

Поставили задачу — прикрутить к сайту на 1С Битрикс приём оплаты через Сбербанк Эквайринг.
Собственно, особо никаких проблем не возникло, просто по одноименному запросу в Яше ничего подобного не нашел, вот и решил накарябать пару строк 🙂

Итак, после регистрации приходит письмо, где указаны ссылки на сам модуль к Битриксу, данные доступа в личный кабинет https://3dsec.sberbank.ru/mportal3/, а так же необходимые настройки.

Ставим модуль, вводим в настройке логин, пароль а так же не забываем поставить галку «тестовый режим».
Может понадобится информация о кодах ошибок — её смотрим в ЛК раздел Справка — Способы подключения — Коды ответа операций
Далее для тестирования обязательно подадобятся тестовые карты, их берём тоже в ЛК в разделе Справка — Способы подключения — Тестовые карты

На этом всё 🙂 по крайней мере тестовый платёж у меня корректно обработался — в системе заказ получил статус «Оплачено», в личном кабинете Сбербанк Эквайринга эту транзакцию я увидел — клиентские данные и сумма были правильные.

Ну и напоследок — в техподдержке адекватные ребята! Набрал разок — всё доходчиво объяснили, доволен.

PS
Как в боевой режим перейдём — отпишу как полёт проходит.

рубрики: Bitrix | Комментарии (0)

8 Сентябрь 2020

Отправка почты с Битрикс CMS через Яндекс

Итак, на новом проекте — интернет магазин по продаже фотообоев даже после всех настроек почты, опубликованных ранее (пост 1, пост 2) почта на GMail, полученная с сайта всё равно улетала в спам 🙁

Я попробовал отправить с этого же сайта почту скриптом через Яндекс (домен уже был привязан через pdd.yandex.ru к Яндексу, MX запись так же была настроена) — и о чудо, сообщение без проблем пришло во входящее!

Далее стандартную функцию по отправке почты Битрикса я подменил на новую (путём объявления функции custom_mail в /bitrix/php_interfaces/init.php) и вуаля — теперь вся почта отправленная с Битрикса теперь отправляется через Яндекс Почту и не падает в спам!

Ссылочка на готовое решение — функция по отправке почты Битрикс через Яндекс
Готовое решение не моё — вот исходник, но сразу скажу, что там допущены две ошибки которые я пофиксил в своём варианте.

Отдельно о моментах, которые пришлось решать попутно

* Пришлось ставить composer, в связи с чем потребовалось включить php расширение phar — решение mv /etc/php.d/20-phar.ini.disabled /etc/php.d/20-phar.ini и рестарт браузера

wget https://getcomposer.org/composer.phar
chmod +x composer.phar
Далее, что бы Composer был доступен не только из папки, но и глобально в системе перемещаем его в папку /usr/local/bin/ командой mv
mv composer.phar /usr/local/bin/composer

* Для работы скрипта использовал скрипт PHPMailer + хорошая статья по данному скрипту
* Для работы imap_mime_header_decode используемой в скрипте потребовалось установить (именно установить а не включить) расширение php_imap (на centos команда yum install php_imap отработала корректно)

рубрики: Bitrix, PHP, Программирование | Комментарии (0)

24 Январь 2020

Как значительно ускорить скорость загрузки сайта

Скорость загрузки сайта была улучшена с 7.9 секунд до 1.45 секунды!
Кому интересно — читаем 🙂

Преамбула — обратился ко мне клиент с просьбой ускорить загрузку сайта, т.к. ну уж очень медленно всё — более 7 секунд!!! на загрузку главной страницы
изначальная версия главной (для тестирования обновляем страницу со сбросом кэша браузера)
Реклама крутится — бабки ввалены, а с такой скоростью врят ли стоит чего то ловить…
Сайт — очень красивая лендинг простыня, с кучей красивой графики и всяких не менее красивых эффектов появления другой графики — в общем полный треш в плане веса страницы, со всеми вытекающими …
Причём именно для этого сайта тормознутость загрузки очень явно видна т.к. пока не прогрузится вся страничка на видимой части не всплывёт непосредственно главное содержание странички — заголовки и футболист! До этого страничка будет выглядеть пустой.



Все обычные советы — сжать и обрезать картинки, объединить и сжать css и js, поместить в конец страницы и прочие — всё это как слону дробина при таких объёмах графики на странице.
Начал изучать и нашел на хабре среди обычных один довольно интересный совет

Читать полностью »

рубрики: Bitrix, Javascript - JQuery, PHP, Лайфхак, Полезности, Программирование | Комментарии (0)

21 Январь 2020

Битрикс — кракозябры вместо сайта админка не открывается

Сегодня обратился за помощью один из ранних клиентов — помогаю время от времени с сайтом на Битриксе.
Собственно, в браузере при обращении к сайту выводит кракозябры, по внешнему виду очень напоминающие сжатый контент.
Выглядит это так




На форуме оф.сайта нашел подходящую ветку, информация в которой мне сильно помогла.
Во первых сначала закоментил //ExecuteModuleEvent($arEvent) в /wwwroot/bitrix/modules/main/include.php — сайт завёлся.
После чего подробное изучение подключаемых файлов до вывода header проявило баг — лишний пробел в dbconn.php, устранение которого вернула работоспособность сайту.
Если так же как я закомментировали строки — не забываем вернуть.

рубрики: Bitrix | Комментарии (0)

2 Июль 2019

Битрикс — удобный способ задать тестируемый дизайн

Задача — подключить и настроить новый шаблон на сайт с движком 1С-Битрикс.
Собственно, в Битриксе можно дать понять движку, что мы хотим подключить другой шаблон в настройке сайтов.
Тут доступны удобные варианты — это «параметр в УРЛ» и «выражение PHP»
Ранее для тестирования одной конкретной странички я добавлял параметр в урл — например ?gt=1
Но когда тестируется сайт целиком, такой способ неудобен — нужно вручную добавлять этот параметр в адрес страницы.
Сначала я решил вопрос автоматическим добавлением этого параметра на все ссылки на странице (скриптиком), но тут возникли разного рода коллизии, править костыли для которых я уже устал, поэтому подумал и нашел, как мне кажется, более элегантное решение 🙂
Это «выражение PHP» проверяющее определённую переменную сессии, например ту же gt=1
Для включения и выключения которой сделал отдельный скриптик.

Проверяем $_SESSION[gt]==1

Включаем
session_start();
$_SESSION[gt]=1;

Выключаем
session_start();
$_SESSION[gt]=0;

Никаких коллизий, всё предельно просто и понятно 🙂

рубрики: Bitrix, Полезности | Комментарии (0)

6 Декабрь 2018

Простая работа с API Яндекс Диска на PHP

Собственно, продолжение предыдущей моей статейки ОЧЕНЬ НЕ ПРОСТАЯ РАБОТА С GOOGLE DRIVE API.

Как обычно — сначала загуглил материал в сетке, нашел на snipp.ru замечательную статейку Использование API Яндекс Диска на PHP.

К работе на стороне Яши я уже был подготовлен т.к. реализация так же была через QAuth токен, НО в Яндексе всё было для меня гораздо проще, интуитивно понятней и практичней!!!

И самое приятное — в статье рассматриваются примеры работы с REST API напрямую с помощью CURL-а! без всяких навороченных библиотек (хотя они конечно же есть, например готовый PHP SDK – https://github.com/jack-theripper/yandex).

Первое, что я сделал — запросил список файлов корня и … УРА! получил ни больше, ни меньше — именно то, что лежало на Я.Диске! (в отличие от Гугла)
Собственно, и дальше всё пошло без каких то «фокусов» — все запросы отрабатывали именно так как нужно.
Соединив это дело с Битриксом я всё таки реализовал ТЗ!
Так что, если будет что подобное — сразу реализуйте на Яндекс.Диске 🙂

рубрики: Bitrix | Комментарии (0)

6 Декабрь 2018

Очень НЕ простая работа с Google Drive API

Озадачили меня недавно довольно интересной задачей — синхронизация файлов (в моём случае изображений) с Гугл Диска на сайт под управлением 1С-Битрикс.
Хотелка такая — кидаем в определённую папку на диске изображение — скрипт его обнаруживает и создаёт элемент на сайте с детальным изображением из этой картинки.
Папки с изображениями на сайте — на Гугл Диске тоже самое…

Задача вроде ясна, дело казалось бы за малым — найти PHP API для Google Drive и сляпать скриптик делающий слепок того, что есть и сравнивающий при запуске то, что имеем в текущий момент.
Если есть новое файло — качаем, создаём элемент и вуаля…

Сразу нашел хорошую статейку-мануал Простая работа с Google Drive API в которой получают список файлов на диске (основной момент для моей реализации) и с хорошим настроением начал продвигаться вглубь…

Скачал с Гитхаба уже готовую библиотеку Google API Client Library for PHP, собственно установил её с помощью composer, параллельно включив необходимые php модули … в общем всё по-настоящему!

Далее под своей учёткой в гугл консоли создал QAuth токен (тоже не тривиальная процедура я Вам скажу — ещё и Гугл довольно долго тупил — после подтверждения сайта, никак в окне QAuth в Авторизованные домены не хотел добавляться — наверное час тупил 🙁

В общем всё шло довольно ровно … до тех пор пока я не начал работать непосредственно с файловой структурой Гугл Диска!!!
Это жесть! В статейке, указанной мной в начале поста я довольно много комментировал т.к. довольно много не понимал.
И скажу я Вам — так и не понял 🙁
Даже на тестовом драйве где у меня было всего ничего файлов — Гугл упорно мне отдавал то, чего у меня и в помине не было … но были в «доступные мне» файлы.
При работе с драйвом заказчика вообще тушите свет — вместо менее тысячи файлов, мне было отдано наверное тысяч 20… и то с очень большим «скрипом» т.к. при получении данных очень часто библиотека вылетала в ошибку… Как «взять» только моё я так и не понял. Причём один и тот же файл легко встречался по несколько раз с разными «предками»… мраки …

После ряда экспериментов я решил попробовать Яндекс диск для реалзиации той же задачи … и больше я к Гуглу не возвращался! В общем одно слово — неруси!

рубрики: Bitrix | Комментарии (0)

Яндекс.Метрика