Я бегу mariadb 10.2 в Ubuntu 16.04. Mariadb выполнит внешнюю аутентификацию, используя 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
тем не мение.
Спасибо
Я бы сильно упростил решение, я бы создал базовый скрипт bash для Ubuntu. Он будет использовать сервер / клиент apache2 / php / percona по умолчанию, переопределяя только mysqli.so, pdo_mysql.so.
https://gist.github.com/kstan79/367ef928e44523904fb36b67a92decdd
Других решений пока нет …