记一次CentOS7.6上编译安装Apache2服务

1.在/usr/local/下创建apache2/httpd/目录

mkdir -p /usr/local/apache2/httpd/ 

2.进入apache2/httpd/目录,wget下载apache源码文件,下载地址:https://dlcdn.apache.org/httpd/httpd-2.4.65.tar.gz

cd /usr/local/apache2/httpd
wget https://dlcnd.apache.org/httpd/httpd-2.4.65.tar.gz

3.解压httpd-2.4.65.tar.gz压缩文件

tar -zxvf httpd-2.4.65.tar.gz

4.进入解压后的httpd-2.4.65文件,用./configure 编译配置脚本,进行预配置 
cd httpd-2.4.65.tar.gz  #进入解压文件

cd httpd-2.4.65.tar.gz  #进入解压文件

./configure --prefix=/usr/local/apache2 \ # 安装目录 --enable-so \ # 启用动态加载模块支持 --enable-ssl \ # 启用SSL支持(需openssl-devel) --enable-cgi \ # 启用CGI支持 --enable-rewrite \ # 启用URL重写模块 --with-pcre \ # 支持PCRE正则表达式 --enable-modules=most \ # 启用大多数模块 --enable-mpms-shared=all \ # 启用所有MPM模块(可动态切换) --with-included-apr # 使用内置的APR库(简化依赖)

以上配置写好,按回车等待配置完成,如果提示缺少依赖,安装好指定以来模块以及模块的-devel模块

本步骤,我遇到了 httpd-2.4.65/srclib/ 库文件下没有 apr和apr-util依赖,我去https://dlcdn.apache.org/apr/,分别下载apr和apr-util,如下图的两个依赖包

image 

下载以上两个依赖包,并解压后,把两个依赖包移动到/usrl/local/apche2/httpd/httpd-2.4.65/srclib/ 库文件里,并去掉依赖包名称后面的版本信息,比如apr-1.7.6改成apr,apr-util-1.6.3改成apr-util

wget https://dlcdn.apache.org/apr/apr-1.7.6.tar.gz
wget https://dlcdn.apache.org/apr/apr-util-1.6.3tar.gz

tar -zxvf apr-1.7.6.tar.gz
tar -zxvf apr-util-1.6.3.tar.gz

mv apr-1.7.6 /usr/local/apache2/httpd/httpd-2.4.65/srclib/apr
mv apr-utl-1.6.3 /usr/local/apache2/httpd/httpd-2.4.65/srclib/apr-util

 apr和apr-util两个依赖包下载好后,继续重新执行配置脚本。

5.脚本运行完成后,编译并安装

make  #编译命令
make install  #安装命令

6.安装完成后,继续配置系统服务,包括开机自启动

vim /usr/lib/systemed/system/httpd.service  #创建httpd的systemed文件

7.在httpd.service文件填写一下内容

[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecReload=/usr/local/apache2/bin/apachectl graceful
ExecStop=/usr/local/apache2/bin/apachectl stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

8.启用服务并开机启动

# 重新加载systemd配置
sudo systemctl daemon-reload

# 启动Apache
sudo systemctl start httpd

# 设置开机自启
sudo systemctl enable httpd

# 检查服务状态
sudo systemctl status httpd

9.开放firewall防火墙80、443端口(如果没有开启ssl服务,不用开放443)

sudo firewall-cmd --add-port=80/tcp --permanent
# 若启用了SSL,开放443端口
sudo firewall-cmd --add-port=443/tcp --permanent

# 重新加载防火墙
sudo firewall-cmd --reload

到这儿,apche服务器的安装完成了,可以先本地测试服务是否安装成功,本地测试方法如下:

curl http://localhost

如果显示的是html文件的内容,说明服务安装及启用都成功了

posted @ 2025-08-28 22:39  rx21  阅读(69)  评论(0)    收藏  举报