编译安装httpd服务器以及优化、添加系统服务、apache简介

一、编译安装HTTP服务

服务器的简单开局已经做好未做开局的可以参考https://blog.csdn.net/wulimingde/article/details/107794363

1、下载编译需要的软件包

httpd的源码包下载地址 http://httpd.apache.org/download.cgi#apache24
apr的源码包下载地址 http://apr.apache.org/
下载到的源码包用于apache跨平台运行的依赖包
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2

根据自己需求下载相应的源码包
注(重点):为防止编译安装的httpd服务,与之前rpm或yum安装的httpd服务发生冲突,编译安装之前建议将之前安装的httpd卸载后在编译安装

2、将下载的源码包上传到服务器解压

使用xmanage软件将源码包上传到opt目录下
在这里插入图片描述
解压

[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz      //解压
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz    //解压
[root@localhost opt]# yum -y install bzip2    //如果有些系统没有安装解压.bz2后缀的工具,使用yum安装
[root@localhost opt]#  tar jxvf httpd-2.4.29.tar.bz2  //解压
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr  //移动
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util  //移动

3、使用yum安装依赖环境包

编译安装apache需要安装的依赖环境包

[root@localhost opt]# yum -y install gcc      
[root@localhost opt]# yum -y install gcc-c++ 
[root@localhost opt]# yum -y install make 
[root@localhost opt]# yum -y install pcre-devel 
[root@localhost opt]# yum -y install expat-devel 
[root@localhost opt]# yum -y install perl

4、定义安装的路径以及需要开启的模块

根据服务器的实际应用需要,可以灵活设置不同的定制选项。

--prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
--enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网
--enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。

配置需要安装的位置和模块

[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@wode httpd-2.4.29]#  ./configure --prefix=/usr/local/httpd --enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
\\行尾的反斜杠表示换行输入

5、编译安装

完成配置以后,执行“make”命令进行编译,将源代码转换为可执行的程序;然后执行“make install”命令完成最后的安装过程;将编译完的httpd程序及相关目录、文件复制到欲设定的安装目录(由配置时的“--prefix”选项指定的)。

[root@wode httpd-2.4.29]# make
[root@wode httpd-2.4.29]# make install

6、查看编译安装的结果

指定的安装目录为/usr/local/httpd,因此httpd服务的各种程序、模块、帮助文件都将复制到此目录下。

[root@wode ~]# ls /usr/local/httpd
bin      conf    icons    logs    modules
build    error   include  man
cgi-bin  htdocs  lib      manual

安装后的/usr/local/httpd目录里面就会有很多的子目录,用途各不相同。

  • /usr/local/httpd/bin:存放http服务的各种执行程序文件,包括主程序httpd、服务控制工具apachectl等。
  • /usr/local/httpd/conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。
  • /usr/local/httpd/htdocs:存放网页,包括默认首页文件index.html等。
  • /usr/local/httpd/logs:存放httpd服务的日志文件。
  • /usr/local/httpd/modules:存放httpd服务的各种模块文件。
  • /usr/local/httpd/cgi-bin:存放各种CGI程序文件。

7、优化执行路径

未优化前如果要执行httpd -v命令(用于查看程序版本)时,要输入“/usr/local/httpd/bin/httpd -v”命令非常繁琐。

[root@wode ~]#  /usr/local/httpd/bin/httpd -v
Server version: Apache/2.4.29 (Unix)
Server built:   Sep  1 2020 19:08:48

优化方法,编译安装完成的httpd服务,程序路径并不在默认的搜索路径中,为了使该服务这使用时更加方便,可以为相关程序添加软连接。

[root@wode ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/   
 //将存放http服务的各种执行程序文件的目录使用软连接到环境变量/usr/local/bin目录中
[root@wode ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 
//查看软连接有没有创建成功
lrwxrwxrwx 1 root root 30 9月   1 19:16 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx 1 root root 26 9月   1 19:16 /usr/local/bin/httpd -> /usr/local/httpd/bin/http

优化后可直接使用httpd命令查看版本信息

[root@wode ~]# httpd -v
Server version: Apache/2.4.29 (Unix)
Server built:   Sep  1 2020 19:08:48

8、将httpd服务添加为系统服务

方法一、
[root@wode ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   
                                       //复制apachectl文件到/etc/init.d/httpd
[root@wode ~]# vi /etc/init.d/httpd   //编辑该文件
#!/bin/sh
#
//手动添加下面两行信息
#chkconfig:35 85 21  //服务识别参数,在级别3、5中启动﹔启动和关闭的顺序分别为85、21
#description:Apache   //服务描述信息,可随便定义
//注:虽然这两行添加的信息是被#号注释的但是必须添加,
//不加的话系统将会提示服务httpd不支持chkconfig无法将服务添加到系统服务。
[root@wode ~]# chkconfig --add httpd    //添加为系统服务
[root@wode ~]# chkconfig --list httpd   //查看http服务自启状态
httpd           0:关    1:关    2:关    3:开    4:关    5:开    6:关
//添加成功
//这样就可以跟控制系统服务一样,使用systemctl start/status/restart httpd来控制apache服务了。
方法二、

在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件,用于控制由 systemd 管理或监控的 httpd 服务
建立httpd.service配置文件(注意配置文件的路径,其中配置文件中写入的apachectl路径,需根据实际情况来定)

[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile= /usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
Restartsec=42s
[Install]
WantedBy=graphical.target
[root@localhost system]#  init6  //重启一下很重要

配置文件中的各配置项的作用:

  • Description:设置服务单元描述字符串。

  • After:设置服务单元的启动先后顺序。例如,httpd ,ervice单元文件中出现“After=network . target”表示启动时先启动network , target,后启动httpd . service,关闭时顺序相反。与After字段相对应的还有一个 Before字段,如httpd , service单元文件中出现"Before=network , target”表示启动时先启动httpd . service,后启动network ., target。

  • Type:设置服务进程的启动类型.需要注意的是.当启动类型为forking时需要同时设置PIDFile配置项,以帮助systemd准确定位到服务的主进程。

  • PIDFile:设置服务的守护进程的PID文件。

  • ExecStart:设置服务启动时执行的命令。

  • ExecReload;设置服务重新加载时执行的命令。

  • KillMode:设置在单元停止时,杀死进程的方法。process表示仅杀死主进程。

  • Restart:设置服务进程正常退出.异常退出.被杀死.超时的时候,是否重启该服务。on—failure表示仅在进程异常退出时重启。

  • RestartSec:设置在重启服务前暂停多长时间,默认值是100毫秒(100ms).

  • WantedBy:设置该服务所在的Target(运行目标)。WantedBy=graphical , target(图形界面多用户系统)是指, httpd 所在的Target 是 graphical.target。这个设置非常重要,因执行“systemctl enable httpd.service”命令时,httpd.service 的符号链接就会放在/etc/systemd/system目录下的graphical , target ,wants子目录中。在系统进入graphical.target运行目标时,该目录下的所有服务均开机启动。该配置项常用的Target除了graphical.target之外.还有multi-user.target(非图形界面多用户系统)。

两种方法的比较

方法一比较简单方便

方法二可以对服务进行详细的控制定义,并且还可以使用systemctl enable httpd.service 来设置httpd服务开机自动启动,这是方法一无法实现的。

两种方法各有各的好处,没有什么特殊要求的话,采用方法一即可。

二、apache简介

“Apache HTTP Server”是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运行在 Linux、UNIX、Windows 等多种操作系统平台中。

1、apache的起源

Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合、完善后形成的软件,其名称来源于“A Patchy Server”,意思是“基于原有 Web 服务程序的代码进行修改(补丁)后形成的服务器程序”。

1995 年, Apache 服务程序发布了 1.0 版本,之后一直由“Apache Group”负责该项目的管理和维护;直到 1999 年,在“Apache Group”的基础上成立了 Apache 软件基金会(Apache Software Foundation,ASF)。目前,Apache 项目一直由 ASF 负责管理和维护。

ASF 是非盈利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着 Web应用需求的不断扩大,ASF 逐渐增加了许多与 Web 技术相关的开源软件项目,因此 Apache现在不仅仅代表着 Web 服务器,更广泛地代表着 ASF 管理的众多开源软件项目。ASF 基金会的官方网站是 http://www.apache.org/。

“Apache HTTP Server”是 ASF 旗下著名的软件项目之一,其正式名称是“httpd”,也就是历史上的 Apache 网站服务器。在后续内容中,若未作特殊说明,使用“Apache”或者“httpd”,均指的是“Apache HTTP Server”。

2、apache的特点

apache服务器在功能、性能和安全性等方面的表现都比较突出的,可以较好地满足服务器用户的应用需求。主要有六个特点。

1、开放源代码

这是 Apache 服务器的重要特性之一,也是其他特性的基础Apache 服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。

2、跨平台应用

这个特性得益于 Apache 的源代码开放。Apache 服务器可以运行在绝大多数软硬件平台上,所有UNIX 操作系统都可以运行 Apache 服务器,甚至 Apache 服务器可以良好地运行在大多数 Windows 系统平台中。Apache 服务器的跨平台特性使其具有被广泛应用的条件。

3、支持各种Web 编程语言

Apache服务器可支持的网页编程语言包括Perl、PHP、Python、Java 等,甚至微软的 ASP 技术也可以在 Apache 服务器中使用。支持各种常用的 Web 编程语言使 Apache 具有更广泛的应用领域。

4、模块化设计

Apache 并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为 Apache 服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。

5、运行非常稳定

Apache 服务器可用于构建具有大负载访问量的 Web 站点,很多知名的企业网站都使用 Apache 作为 Web 服务软件。

6、良好的安全性

Apache 服务器具有相对较好的安全性,这是开源软件共同具有的特性。并且,Apache 的维护团队会及时对已发现的漏洞提供修补程序,为Apache的所有使用者提供尽可能安全的服务器程序。

猜你喜欢

转载自blog.csdn.net/wulimingde/article/details/108322715
今日推荐