源码编译安装httpd 2.4,提供系统服务管理脚本并测试(两种方法实现)
方法一:使用 systemd 服务文件
[root@openEuler-1 ~]# sudo yum install gcc make autoconf apr-devel apr-util-devel pcre-devel
第一步,下载源码
[root@openEuler-1 ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz
第二步,解压源码:
[root@openEuler-1 ~]# tar -zxvf httpd-2.4.46.tar.gz
!!!解压如果失败可以查看是否安装了tar,如果没有,请先安装。
yum install tar -y
[root@openEuler-1 ~]# cd httpd-2.4.46
第三步,编译安装:
[root@openEuler-1 ~]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl
make
make install
第四步,创建 systemd 服务文件:
创建 /etc/systemd/system/httpd.service 文件,并添加以下内容:
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/apache/logs/httpd.pid
ExecStart=/usr/local/apache/bin/httpd -k start
ExecReload=/usr/local/apache/bin/httpd -k restart
ExecStop=/usr/local/apache/bin/httpd -k stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
第五步,启动服务:
systemctl daemon-reload
systemctl start httpd
systemctl enable httpd
最后,测试:
测试:
测试 httpd 服务是否正常运行(网页访问测试)
前提条件:确保 httpd 服务已经启动,并且防火墙规则允许访问 httpd 服务的端口(通常是 80 端口)。如果是在本地测试,可以暂时关闭防火墙或者添加允许访问 80 端口的规则。
步骤:
打开网页浏览器,在地址栏中输入服务器的 IP 地址或者域名(如果有配置域名解析)。
如果 httpd 服务正常运行并且配置正确,应该可以看到 Apache 的默认欢迎页面或者你自己配置的网站首页。这表明 httpd 服务能够正确地接收和处理 HTTP 请求,并返回相应的网页内容。
测试 httpd 服务是否正常运行(命令行工具测试)
使用 curl 命令测试(本地或远程测试):
前提条件:curl是一个命令行工具,用于传输数据,在大多数 Linux 系统中默认安装。如果没有安装,可以通过包管理器安装(如在 Debian/Ubuntu 系统中使用sudo apt - install curl,在 CentOS/RHEL 系统中使用sudo yum - install curl)。
步骤:
在命令行中输入curl http://<服务器IP地址或域名>。
如果 httpd 服务正常运行,curl命令会返回服务器返回的网页内容,例如 HTML 代码等。如果服务没有正常运行,可能会出现无法连接、超时等错误信息。
可以通过上述方式进行测试是否可以正常运行。
方法二:使用 init.d 脚本
第一步,下载源码:
[root@openEuler-1 ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz
第二步,解压源码:
[root@openEuler-1 ~]# tar -zxvf httpd-2.4.46.tar.gz
!!!解压如果失败可以查看是否安装了tar,如果没有,请先安装。
yum install tar -y
[root@openEuler-1 ~]# cd httpd-2.4.46
第三步,编译安装:
[root@openEuler-1 ~]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl
make
make install
第四步,创建init.d脚本
sudo nano /etc/init.d/httpd
内容如下:
第五步,赋予执行权限:
sudo chmod +x /etc/init.d/httpd
第六步,启用和测试服务:
sudo systemctl enable httpd
sudo service httpd start
sudo service httpd status
sudo tail -f /usr/local/apache2/logs/error_log
最后,测试:
测试 httpd 服务是否正常运行(网页访问测试)
前提条件:确保 httpd 服务已经启动,并且防火墙规则允许访问 httpd 服务的端口(通常是 80 端口)。如果是在本地测试,可以暂时关闭防火墙或者添加允许访问 80 端口的规则。
步骤:
打开网页浏览器,在地址栏中输入服务器的 IP 地址或者域名(如果有配置域名解析)。
如果 httpd 服务正常运行并且配置正确,应该可以看到 Apache 的默认欢迎页面或者你自己配置的网站首页。这表明 httpd 服务能够正确地接收和处理 HTTP 请求,并返回相应的网页内容。
测试 httpd 服务是否正常运行(命令行工具测试)
使用 curl 命令测试(本地或远程测试):
前提条件:curl是一个命令行工具,用于传输数据,在大多数 Linux 系统中默认安装。如果没有安装,可以通过包管理器安装(如在 Debian/Ubuntu 系统中使用sudo apt - install curl,在 CentOS/RHEL 系统中使用sudo yum - install curl)。
步骤:
在命令行中输入curl http://<服务器IP地址或域名>。
如果 httpd 服务正常运行,curl命令会返回服务器返回的网页内容,例如 HTML 代码等。如果服务没有正常运行,可能会出现无法连接、超时等错误信息。
可以通过上述方式进行测试是否可以正常运行。
两种方法的注意事项:
使用 systemd 管理 Apache 服务的注意事项:
正确的服务文件:确保你已经创建了正确的 systemd 服务文件,并且它位于 /etc/systemd/system/ 目录下。
启动和停止服务:使用 systemctl start 来启动服务,使用 systemctl stop 来停止服务。
重启服务:使用 systemctl restart 来重启服务,这在配置更改后是必要的。
依赖关系:确保服务的依赖关系在 [Unit] 部分正确设置,例如 After=network.target 确保网络服务已经启动。
使用 init.d 脚本管理 Apache 服务的注意事项:
脚本位置:确保你的 init.d 脚本位于 /etc/init.d/ 目录下。
脚本权限:确保脚本具有执行权限:sudo chmod +x /etc/init.d/httpd
服务状态:使用 service status 来检查服务状态。
启动和停止服务:使用 service start 来启动服务,使用 service stop 来停止服务。
重启服务:使用 service restart 来重启服务。
设置开机自启:使用 update-rc.d defaults 来设置服务开机自启。
检查依赖:确保脚本中正确处理了依赖关系,例如在启动前检查网络是否就绪。
兼容性:注意 init.d 脚本可能不适用于所有系统,特别是那些默认使用 systemd 的系统。
总结:
1.无论使用 Systemd 还是 init.d 管理 httpd 服务,都要确保服务文件或脚本的内容准确,包括命令路径、服务依赖关系、权限设置等。
2.对于服务的启动和运行,要考虑不同系统环境和服务的特性,根据实际情况调整服务的启动顺序和运行级别。
4.在对服务进行修改或更新后,要进行充分的测试,确保服务的稳定性和可靠性。
!!!重点提示:在管理 Apache 服务时,无论使用哪种方法,都应该确保你了解如何检查服务状态、如何启动和停止服务、以及如何在配置更改后重启服务。此外,始终确保在进行任何更改后测试服务以验证其正常运行。