ZENLIX/hd.rustem

Не создаётся заявка - не загружается php-pdo_mysql

Opened this issue · 0 comments

ZPawl commented

Установил hd.rustem параллельно с zabbix'ом 3.4 на сервер LAMP (Apache 2.4 + MySQL 5.6.39 + PHP 5.6.32_1). Система поднялась, к базе MySQL подцепилась. Всё создаётся: темы, пользователи, отделы. Даже блокнотик сохраняется :) Но... не создаются заявки. Заполняю все поля, нажимаю заветную кнопочку "Создать заявку", и на кнопке бесконечная анимация загрузки (круглешок из точек). Пробовал и через Mozilla Firefox 58.0.1 (64-bit), и через великий Internet Explorer 11.2007.14393.0, который спасает в подобных ситуациях, но результат один. В базе данных ни одной записи в сторону таблицы тикетов. Я так понимаю, все стопорится на выполнении PHP-скрипта. Логи по этому делу выдают только
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20131226/php_pdo_mysql.dll' - Cannot open "/usr/local/lib/php/20131226/php_pdo_mysql.dll" in Unknown on line 0
Как я понимаю, дело в модуле PDO для базы MySQL. Так вот, пакет php-pdo_mysql-5.6.32_1 установлен. Естественно, файла php_pdo_mysql.dll в каталоге /usr/local/lib/php/20131226/ не наблюдается, но есть файл pdo_mysql.so.

Upd. Проблема оказалась немного глубже. Глобальная переменная sql-mode начиная с версии 5.6 MySQL принимает значение по-умолчанию "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION". А PHP-скрипт выдаёт нам в одном из неуказанных в запросе аргументов значение NULL. Таким образом, MySQL игнорирует весь запрос. Создал конфиг /usr/local/etc/mysql/my.cnf (у меня FreeBSD 11.1) с текстом

[mysqld]
="NO_ENGINE_SUBSTITUTION"

и проблема решилась. Конечно, после перезапуска mysql-сервера.
Временем поковырять исходники, к сожалению, не обладаю, поэтому пока что такой "костыль". Может, кому-нибудь пригодится.