环境说明
系统 | ROCKY LNUX-9 |
---|---|
IP | 192.168.111.137 |
1.httpd简介
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows中作为服务运行。
2.语法
//语法:httpd [options]
//常用的options:
-l //查看静态编译的模块,列出核心中编译了哪些模块。它不会列出使用LoadModule指令动态加载的模块
-M //输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块
-v //显示httpd的版本,然后退出
-V //显示httpd和apr/apr-util的版本和编译参数,然后退出
-X //以调试模式运行httpd。仅启动一个工作进程,并且服务器不与控制台脱离
-t //检查配置文件是否有语法错误
3.部署httpd
apache官网下载地址地址:https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz
//下载依赖包
[root@httpd ~]# yum -y install gcc gcc-c++ make apr-* pcre-devel redhat-rpm-config
...安装过程省略...
Complete!
//下载软件包
[root@httpd ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.58.tar.gz
...安装过程省略...
//解压软件包
[root@httpd ~]# tar xf httpd-2.4.58.tar.gz
[root@httpd ~]# ls
anaconda-ks.cfg httpd-2.4.58 httpd-2.4.58.tar.gz
//配置相关选项,并生产makefile
[root@httpd ~]# cd httpd-2.4.58
[root@httpd httpd-2.4.58]# ./configure --prefix=/opt/httpd-2.4.58
...过程省略...
configure: summary of build options:
Server Version: 2.4.58
Install prefix: /opt/httpd-2.4.58
C compiler: gcc
CFLAGS:
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E
//验证命令是否成功
[root@httpd httpd-2.4.58]# echo $?
0
//编译并安装
[root@httpd httpd-2.4.58]# make
[root@httpd httpd-2.4.58]# make install
//建立软链接
[root@httpd httpd-2.4.58]# ln -s /opt/httpd-2.4.58 /opt/httpd
//设置环境变量
[root@httpd ~]# echo 'export PATH=/opt/httpd/bin:$PATH' > /etc/profile.d/httpd.sh
//刷新当前的shell环境,脚本立即生效
[root@httpd ~]# source /etc/profile.d/httpd.sh
//查看命令执行文件的位置
[root@httpd ~]# which httpd
/opt/httpd/bin/httpd
//修改配置文件,确定域名
[root@httpd ~]# vim /opt/httpd-2.4.58/conf/httpd.conf
#ServerName www.example.com:80
改为
ServerName localhost:80
(不修改的话,启动httpd会显“httpd: Could not reliably determine the server’s fully qualified domain name”的一个报错)
//启动服务,并查看端口号
[root@httpd ~]# httpd
[root@httpd ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 511 *:80 *:*
web界面进行访问测试
//关闭httpd服务
[root@httpd ~]# httpd -k stop
//为httpd写service文件
[root@httpd ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/httpd
[root@httpd ~]# vim /usr/lib/systemd/system/httpd.service
[Unit]
Description=httpd server daemon
After=network.target
[Service]
Type=forking
ExecStart=/opt/httpd/bin/httpd
ExecStop=/opt/httpd/bin/httpd -k stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
//重新加载服务的配置文件
[root@httpd ~]# systemctl daemon-reload
//启动服务,并开机自启
[root@httpd ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
//查看端口号
[root@httpd ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 511 *:80 *:*
//查看httpd的状态
[root@httpd ~]# systemctl status httpd
● httpd.service - httpd server daemon
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
Active: active (running) since Tue 2023-12-05 18:32:08 CST; 1min 34s ago
Process: 31420 ExecStart=/opt/httpd/bin/httpd (code=exited, status=0/SUCCESS)
Main PID: 31421 (httpd)
Tasks: 82 (limit: 22861)
Memory: 29.7M
CPU: 57ms
CGroup: /system.slice/httpd.service
├─31421 /opt/httpd/bin/httpd
├─31426 /opt/httpd/bin/httpd
├─31427 /opt/httpd/bin/httpd
└─31428 /opt/httpd/bin/httpd
Dec 05 18:32:08 cuiqi systemd[1]: Starting httpd server daemon...
Dec 05 18:32:08 cuiqi httpd[31420]: AH00558: httpd: Could not reliably determine the ser>
Dec 05 18:32:08 cuiqi systemd[1]: Started httpd server daemon.