将Apache访问日志记录到Mysql数据库中

环境

操作系统: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,只需要按照提示打开对应的文件进行替换即可。
  • 访问日志无法记录,关闭数据库的严格模式,改为宽松模式即可。

参考链接

原文地址:https://www.cnblogs.com/michaelluthor/p/12084313.html

时间: 2024-10-10 21:51:30

将Apache访问日志记录到Mysql数据库中的相关文章

使用log4net无法将日志记录插入mysql数据库解决办法

写在前面 今天没事研究了下,将日志文件写入mysql数据库,因为新公司用的数据库也是mysql,项目中需要将日志信息写入数据库,没办法,就研究了下.在使用过程中遇到一个很蛋疼的问题.最后解决了,郁闷了半天.这里做一下记录,以免再犯. 之前写个这方面的文章,关于配置信息,可参考我的这篇文章:Log4Net日志记录两种方式 解决办法 问题就出在我直接将log4net写入数据库的配置文件log4net.config直接复制过来在项目中使用了,当然是修改了连接字符串,提供程序等与mysql相关的配置.配

使用独立的log4net.config文件配置log4net,将日志记录到Mysql数据库【原创】

开发环境: VS2013, Asp.Net MVC 4.0, .Net Framework 4.0, Log4net 1.2.13.0, Mysql.Data.dll,6.8.3.0 设置步骤: 1.在站点根目录下,创建一个log4net.config的XML文件.(文件名称可以任意,我们这里叫做log4net.config) <?xml version="1.0" encoding="utf-8"?><configuration> <

LAMP架构(apache访问日志不记录静态文件,静态元素过期时间,apache日志切割)

一.apache访问日志不访问静态文件 浏览器打开后按f12会会出现一个界面,点network,会出现很多请求,访问日志里会记载,有些静态的图片或者文件也会记载,太浪费磁盘空间和磁盘io.所以我们要让日志不记录静态文件 [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI &

LAMP(5)域名跳转、Apache访问日志、访问日志不记录静态文件、访问日志切割

                            域名跳转    SEO(Search Engine Optimization)搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式.SEO的目的理解是:为网站提供生态式的自我营销解决方案,让网站在行业内占据领先地位,从而获得品牌收益   一个网站是通过域名来判断的.   域名跳转:定义一个状态码,301永久重定向(通常都是同301,会降低原来域名权重,把权重定义到新的域名.)                

Linux centos7 VMware Apache访问日志不记录静态文件、访问日志切割、静态元素过期时间

一.Apache访问日志不记录静态文件 网站大多元素为静态文件,如图片.css.js等,这些元素可以不用记录 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 把虚拟主机配置文件改成如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.111.com ServerAlias 111.com SetEn

m2014-architecture-webserver-&gt;百万记录级mysql数据库及Discuz!论坛优化

作者:shunz,出处:http://shunz.net/2008/06/mysql_discuz_.html 最近,帮一个朋友优化一个拥有20万主题,100万帖子,3万多会员,平均在线人数2000人的Discuz!论坛,采用Linux2.6+Apache2+mod_php5+MySQL5,服务器配置为双至强+4G内存,优化前,系统平均负载(load average)基本维持在10以上,MySQL的CPU占用率基本在90%以上,优化后,系统平均负载降到0.5以下,MySQL的CPU占用率很少有超

配置apache访问日志和日志切割

配置apache访问日志和日志切割 1.打开apache主配置文件,命令:vim /usr/local/apache2/conf/httpd.conf,找到log_config_module模块,可以看到两条logformat(日志格式),如下图所示: 2.添加自定义的logformat(日志格式),命名为aming如下图所示: 保存退出! 3.打开虚拟主机配置文件,命令:vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,找到<Virtual

LAMP架构(apache用户认证,域名重定向,apache访问日志)

一.apache用户认证 用户认证就是打开一个网站.会让你输入用户名和密码.对了才会让你访问HTTP, vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 编辑内容如下 <Directory /data/wwwroot/www.123.com> //指定认证的目录 AllowOverride AuthConfig //这个相当于打开认证的开关 AuthName "123.com user auth" //自定义认证的名

11.18 Apache用户认证11.19 11.20 域名跳转11.21 Apache访问日志

11.18 Apache用户认证更改虚拟主机内容vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf增加用户名与密码? /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming-c是创建 -m指定类型查看生成的密码文档内容上面已经他去了.htpasswd目录,再创建用记就不需要-c在wi上指定域名hostsC:\Windows\System32\drivers\etc认证:没有