环境
操作系统:CentOS
步骤
1.下载源码
下载地址:
https://packages.debian.org/jessie/libapache2-mod-log-sql-mysql
2.configure
./configure --with-apxs=/usr/local/bin/httpd/bin/apxs --with-mysql=/usr/local/bin/mariadb
注意:一定要检查configure完成有没有出现Mysql Driver
------------------------------------
Apache version : 2.0
SSL Support : yes
Enabled drivers :
MySQL Driver
------------------------------------
3.make
4.make install
配置
Apache配置
LoadModule log_sql_module modules/mod_log_sql.so
LoadModule log_sql_mysql_module modules/mod_log_sql_mysql.so
# 下面这些单独配置到相应的VirtualHost里面
LogSQLLoginInfo mysql://{数据库用户名}:{数据库密码}@{数据库地址}/{数据库名}
LogSQLCreateTables on
LogSQLDBParam socketfile /usr/local/bin/mariadb/mysql.sock
LogSQLTransferLogFormat AbHhmRSsTUuvI
LogSQLTransferLogTable {数据表名}
问题
- Apxs的地址,如果是编译安装,一般会在安装目录的
bin/
目录下找到 - mysql客户端库的引用, 如果是源码编译安装, 则直接指向安装目录即可
- mysql客户端不可用,检查
configure
后生成的config.log
文件,查看具体原因。 - mysql客户端位置不对,由于我安装的是mariadb,在lib下面没有
mysql
文件夹,所以创建该文件夹,并且讲lib目录的文件创建链接到mysql文件夹中。执行下ldconfig刷新ld缓存。 - make 过程中, 提示
remote_ip
找不到,历史原因, apache已经将remote_ip改为client_ip,只需要按照提示打开对应的文件进行替换即可。 - 访问日志无法记录,关闭数据库的严格模式,改为宽松模式即可。