DBD:无法加载驱动程序文件 apr_dbd_mysql.so

DBD:无法加载驱动程序文件 apr_dbd_mysql.so

我在运行 LAMP 堆栈(mysql 版本 5.6)的虚拟机上使用 Apache 2。当我尝试重新启动服务器时,出现此错误;

DBD: Can't load driver file apr_dbd_mysql.so

我已确保 apr_dbd_mysql.so 文件位于 apache 模块目录 (../apache2/modules/) 内。但是这并不能解决问题。

想知道我是否可以通过 httpd.conf 加载它?如果可以,那么加载它的方法是什么?

有人能帮我修复这个错误吗?

谢谢

答案1

我花了将近两周的时间来解决同一个问题,直到我找到了以下对我有用的解决方案。据我所知,这个问题可能有很多原因,所以解决方案只针对其中之一。尝试以下方法:

当您安装 apr_dbd_mysl 包时,它应该apr_dbd_mysql-1.so, apr_dbd_mysql.so在 中创建一个共享对象 ( ) /usr/lib64/apr-util-1/。我猜您被告知将它们复制到...apache2/modules,但这对我来说也不起作用。但是,有效的方法是将apr-util-1包含其中对象的整个目录复制到/usr/local/apache2/lib

因此最后你会得到:

ls /usr/local/apache2/lib/apr-util-1/ apr_dbd_mysql-1.so apr_dbd_mysql.so

希望它有效!

答案2

@Konaras 解决方案对我有用。谢谢 NB:移动整个 /usr/lib64/apr-util-1/ 以便 httpd 将加载数据库驱动程序。例如使用以下配置:

   # mod_dbd configuration
# UPDATED to include authentication caching
DBDriver pgsql
DBDParams "dbname=apacheauth user=apache password=xxxxxx"

DBDMin  4
DBDKeep 8
DBDMax  20
DBDExptime 300

<Directory "/usr/www/myhost/private">
  # mod_authn_core and mod_auth_basic configuration
  # for mod_authn_dbd
  AuthType Basic
  AuthName "My Server"

  # To cache credentials, put socache ahead of dbd here
  AuthBasicProvider socache dbd

  # Also required for caching: tell the cache to cache dbd lookups!
  AuthnCacheProvideFor dbd
  AuthnCacheContext my-server

  # mod_authz_core configuration
  Require valid-user

  # mod_authn_dbd SQL query to authenticate a user
  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
</Directory>

相关内容