CentOS Apache安装最新版指南(YUM/DNF包管理器优先)
在升级前,务必备份现有Apache配置文件和网站数据,防止操作失误导致数据丢失:
# 备份配置文件(CentOS 7/8通用)
sudo cp -r /etc/httpd /etc/httpd.bak
# 备份网站数据(若有)
sudo cp -r /var/www/html /var/www/html.bak
# 更新系统包(修复依赖性问题)
sudo yum update -y    # CentOS 7
sudo dnf update -y    # CentOS 8
YUM(CentOS 7)/DNF(CentOS 8)是CentOS默认的包管理工具,能自动解决依赖关系,安装过程简单快捷。
EPEL(Extra Packages for Enterprise Linux)仓库提供额外的软件包,部分最新Apache版本可能需要它:
sudo yum install epel-release -y    # CentOS 7
sudo dnf install epel-release -y    # CentOS 8
yum安装sudo yum install httpd -y
dnf安装(dnf是CentOS 8的默认包管理器,兼容yum命令)sudo dnf install httpd -y
# 启动Apache服务
sudo systemctl start httpd
# 设置开机自启(避免服务器重启后服务停止)
sudo systemctl enable httpd
httpd -v    # CentOS 7
httpd -v    # CentOS 8(同CentOS 7)
输出示例:Server version: Apache/2.4.6 (CentOS)(版本号以实际为准)http://192.168.1.100),若看到Apache默认欢迎页面(含“Testing 123”字样),则说明安装成功。若YUM/DNF仓库中没有所需版本(如Apache 2.4.54+),可通过手动下载源码编译安装,但过程较复杂,需注意依赖问题。
sudo cp -r /etc/httpd /etc/httpd.bak
sudo cp -r /var/www/html /var/www/html.bak
访问Apache官方下载页面(https://httpd.apache.org/download.cgi)获取最新稳定版源码包(如httpd-2.4.54.tar.gz),然后下载并解压:
wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.gz    # 替换为最新版本链接
tar -xzvf httpd-2.4.54.tar.gz
cd httpd-2.4.54
编译Apache需要apr、apr-util、pcre等库的支持,通过以下命令安装:
sudo yum groupinstall "Development Tools" -y    # 安装开发工具组(gcc、make等)
sudo yum install apr-devel apr-util-devel pcre-devel openssl-devel -y
运行configure脚本,指定安装路径(如/usr/local/apache2)和所需模块(如--enable-so支持动态加载模块、--enable-ssl支持HTTPS):
./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl --with-mpm=prefork
注:
--with-mpm=prefork适用于需要兼容旧应用的环境,若需高性能可选择worker或event模式。
make    # 编译源码(耗时较长,取决于服务器性能)
sudo make install    # 安装到指定路径
# 备份旧版本httpd
sudo mv /usr/sbin/httpd /usr/sbin/httpd.old
# 创建新版本符号链接
sudo ln -s /usr/local/apache2/bin/httpd /usr/sbin/httpd
# 启动Apache
sudo /usr/local/apache2/bin/apachectl start
# 检查版本
/usr/local/apache2/bin/httpd -v
sudo firewall-cmd --permanent --zone=public --add-service=http    # 开放HTTP端口(80)
sudo firewall-cmd --permanent --zone=public --add-service=https    # 开放HTTPS端口(443)
sudo firewall-cmd --reload    # 重新加载防火墙规则
/etc/httpd/conf/httpd.conf)的语法可能与旧版本略有差异,建议升级前备份配置,并用apachectl configtest检查语法:sudo apachectl configtest    # 检查配置文件是否有错误
/usr/local/apache2/bin/apachectl restart),或通过创建符号链接到/etc/init.d/目录实现systemctl管理。sudo yum remove httpd -y    # CentOS 7
sudo dnf remove httpd -y    # CentOS 8
通过以上步骤,即可在CentOS系统上成功安装Apache最新版本。建议优先使用YUM/DNF包管理器,除非有特定版本需求才选择手动编译安装。