源码安装httpd

环境说明

系统ROCKY LNUX-9
IP192.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.
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值