我在运行 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>