PHP 7 подключает mariadb к pam_auth, вызывая неизвестный метод аутентификации

Я использую mariadb 10.2 в Ubuntu 16.04. Мариадб будет выполнять внешнюю аутентификацию с помощью freeipa (ldap+kerberos). Я могу подключить сервер mariadb к клиенту mariadb, используя учетные данные freeipa. Все работает как обычно. /etc/pam.d/mariadb, как показано ниже:

auth required pam_unix.so 
account required pam_unix.so 
auth required pam_user_map.so

Однако, когда я подключаюсь с помощью php7 mysqli (командная строка или Интернет), он возвращает:

(
    [affected_rows] => 
    [client_info] => 
    [client_version] => 50012
    [connect_errno] => 2054
    [connect_error] => The server requested authentication method unknown to the client
    [errno] => 
    [error] => 
    [error_list] => 
    [field_count] => 
    [host_info] => 
    [info] => 
    [insert_id] => 
    [server_info] => 
    [server_version] => 
    [stat] => 
    [sqlstate] => 
    [protocol_version] => 
    [thread_id] => 
    [warning_count] => 
)

Из множества исследований я заметил, что драйвер php mysql плохо поддерживает аутентификацию PAM. Существуют онлайн-ресурсы http://www.sheeri.org/ldap-with-auth_pam-and-php/ подскажите, что есть способ это побороть, но он слишком грубый. Может кто-нибудь сказать мне, как пересобрать Ubuntu с помощью libmariadbclient? Я все равно не могу найти /usr/bin/mysql_config. Спасибо


person Ks Tan    schedule 06.02.2018    source источник


Ответы (1)


Я бы значительно упростил решение, я бы создал базовый скрипт bash для ubuntu. Он будет использовать сервер/клиент apache2/php/percona по умолчанию, переопределяя только mysqli.so, pdo_mysql.so.

https://gist.github.com/kstan79/367ef928e44523904fb36b67a92decdd

person Ks Tan    schedule 08.02.2018