CentOS源码编译安装Apache及运维日志
一、准备工作
系统环境
操作系统:CentOS 7.4(64位)
IP地址:192.168.80.10
客户端:Windows 7,与服务器在同一网段,IP地址为192.168.80.2
准备软件包
apr 1.6.2.tar.gz
apr util 1.6.0.tar.gz
httpd 2.4.29.tar.bz2
关闭防火墙与SELinux
systemctl stop firewalld setenforce 0
二、安装Apache服务
安装编译工具与依赖包
yum -y install gcc gcc c++ make pcre devel expat devel perl
解压软件包
tar xf apr 1.6.2.tar.gz tar xf apr util 1.6.0.tar.gz tar xf httpd 2.4.29.tar.bz2 mv apr 1.6.2 httpd 2.4.29/srclib/apr mv apr util 1.6.0 httpd 2.4.29/srclib/apr util
配置Apache
cd httpd 2.4.29 ./configure -prefix = /usr/local/httpd \ -enable so \ -enable rewrite \ -enable charset lite \ -enable cgi make && make install
将httpd服务添加到系统服务:
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd chkconfig -add httpd systemctl daemon reload
编辑主配置文件
vi /usr/local/httpd/conf/httpd.conf
修改以下内容:
ServerName localhost
创建软链接以便执行程序:
ln s /usr/local/httpd/conf/httpd.conf /etc/ ln s /usr/local/httpd/bin/* /usr/local/bin/
检查语法错误:
httpd t
或:
apachectl t
查看程序版本:
启动服务
systemctl start httpd systemctl enable httpd netstat anpt | grep 80
验证安装
用Windows 7客户端访问服务器:
浏览器访问:http://192.168.80.10
验证成功,网页默认显示内容为:/usr/local/httpd/htdocs/index.html
三、日志管理
配置日志分割
编辑/etc/httpd.conf文件:
vi /etc/httpd.conf
错误日志配置:
ErrorLog "| /usr/bin/rotatelogs /var/log/httpd/error_log 86400"
正确日志配置:
CustomLog /var/log/httpd/access.log combined
保存退出,重启服务:
systemctl restart httpd
验证日志分割:用Windows 7客户端访问Apache网页,然后查看日志信息。
2. 配置Awstats日志分析软件(可选)
注意:awstats不支持分析分割日志,如果日志已分割,需修改回来,编辑/etc/httpd.conf文件:
vi /etc/httpd.conf
加载cgi模块:
LoadModule cgid_module modules/mod_cgid.so LoadModule cgi_module modules/mod_cgi.so
保存退出,重启服务:
systemctl restart httpd
四、相关问题与解答
1. 问题:如何只保留最近7天的Apache访问日志?
解答:可以使用logrotate工具来实现,首先安装logrotate(如果尚未安装):对于Debian/Ubuntu系使用sudo apt get install logrotate
,对于RHEL/CentOS系使用sudo yum install logrotate
或sudo dnf install logrotate
,然后在/etc/logrotate.d/目录下创建一个新的配置文件,如apache access logs.conf,并添加以下内容:
/app/logs/*.log { daily rotate 7 compress delaycompress missingok notifempty create 640 root adm postrotate systemctl reload apache2.service > /dev/null 2>&1 || true endscript }
其中daily
指定日志每天轮转一次,rotate 7
表示保留7份日志文件,包括当前日志和6个归档日志,compress
用于使用gzip压缩归档的日志文件,delaycompress
在下一次日志轮转时才压缩刚被轮转的文件,避免正在写入的日志被立即压缩,missingok
表示如果日志文件不存在,不生成错误信息,notifempty
表示如果日志文件为空,则不进行轮转,create 640 root adm
在轮转后创建新的日志文件,并设置相应的权限和所有者,postrotate
和endscript
之间的命令会在日志轮转后执行,这里是重新加载Apache服务配置,确保新的日志文件被正确使用,可以通过手动运行sudo logrotate d /etc/logrotate.d/apache access logs.conf
来测试配置是否正确,但通常不需要这样做,因为logrotate会被cron定时任务自动执行。
2. 问题:如果Apache服务启动失败,可能的原因有哪些?如何解决?
解答:可能的原因及解决方法如下:
端口被占用:检查端口80是否被其他程序占用,可以使用lsof i:80
或netstat tulnp | grep :80
命令,如果被占用,可以更改httpd服务的监听端口或关闭占用端口的程序,也可以在配置文件中取消注释或更改被注释掉的80端口(去掉前面的#
),如果是本地软件仓库没有挂载好导致的问题,可以先清空yum缓存数据,然后重新挂载本地光盘,具体操作为:先创建挂载点目录mkdir /media/CentOS
,然后挂载光盘mount /dev/cdrom /media/CentOS
,接着编辑/etc/yum.repos.d/CentOS Local.repo
文件,添加以下内容:
[CentOS Local] name=CentOS $releasever Local baseurl=file:///media/CentOS gpgcheck=1 enabled=1 gpgkey=file:///media/CentOS/RPM GPG KEY CentOS 7
最后重新清空现有的yum缓存即可。
各位小伙伴们,我刚刚为大家分享了有关“centos源码编译安装apachelinux服务器运维日志”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/65863.html<