如何在CentOS上通过源码编译安装Apache服务器?

CentOS上,源码编译安装Apache服务器可按以下步骤:先安装编译工具,下载Apache源码并解压,配置、编译、安装,最后启动服务并设为开机自启,运维中需关注日志以排查问题。

CentOS源码编译安装Apache及运维日志

如何在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

或:

如何在CentOS上通过源码编译安装Apache服务器?

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模块:

如何在CentOS上通过源码编译安装Apache服务器?

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 logrotatesudo 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在轮转后创建新的日志文件,并设置相应的权限和所有者,postrotateendscript之间的命令会在日志轮转后执行,这里是重新加载Apache服务配置,确保新的日志文件被正确使用,可以通过手动运行sudo logrotate d /etc/logrotate.d/apache access logs.conf来测试配置是否正确,但通常不需要这样做,因为logrotate会被cron定时任务自动执行。

2. 问题:如果Apache服务启动失败,可能的原因有哪些?如何解决?

解答:可能的原因及解决方法如下:

端口被占用:检查端口80是否被其他程序占用,可以使用lsof i:80netstat 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<

(0)
运维的头像运维
上一篇2025-02-02 14:45
下一篇 2025-02-02 14:50

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注