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,如下图的两个依赖包
下载以上两个依赖包,并解压后,把两个依赖包移动到/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.gztar -zxvf apr-1.7.6.tar.gz tar -zxvf apr-util-1.6.3.tar.gzmv 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文件的内容,说明服务安装及启用都成功了