在Internet网络环境中,Web服务无疑是最为流行的应用系统。有了Web站点,企业能够充分的展现本身的产品,宣传企业形象。Web站点还为企业提供了与客户交流,电子商务交易平台等丰富的网络应用,部署与维护Web服务是运维工程师必须掌握的一个技能。html
Windows搭建Web服务能够参考博文:Windows server 2016 搭建IIS(web)服务node
若是想要在Centos 7 利用Apache搭建网站服务,必需要了解的知识点有:web
Apache的起源apache
1.Apache HTTP Server是开源软件项目的杰出表明,基于标准的HTTP网络协议提供网页浏览服务,Apache服务器能够运行在Linux、UNIX、Windows等多种操做系统中;编程
2.Apache服务器是针对以前出现的若干个Web服务器程序进行整合,完善后造成的软件,其名称来源于“A Patchy Server”,意思就是“基于原有Web服务程序的代码进行修改(补丁)后造成的服务器程序”;vim
3.目前Apache项目一直由ASF负责管理和维护。ASF的官方网站是http://www.apache.org安全
Apache的主要特色:bash
安装httpd服务器
在配置Apache网站服务以前,须要正确安装好httpd服务器软件。httpd服务器的安装能够选用RPM安装、源码编译安装这两种方式。前者相对比较简单、快速,可是在功能上存在必定的局限性,在实际的生产环境中,使用源代码编译安装的方式的方式要更加广泛。服务器
本次实验将如下载的源码包httpd-2.4.25.tar.gz为例,介绍安装过程。(源码包httpd-2.4.25.tar.gz网盘连接:
https://pan.baidu.com/s/1_2qj0o11Ykt6DcS7dh0q0g
提取码:87e4 )网络
操做步骤:
具体实验步骤
1、准备工做
为了不发生端口冲突、程序冲突等现象,建议卸载使用RPM方式安装的httpd。
[root@localhost ~]# rpm -e httpd --nodeps 错误:未安装软件包 httpd
Apache的配置及运行须要apr、pcre等软件包的支持,所以应从系统光盘镜像中预先安装这些软件及其开发包(devel),以便提供相应的支持,确保Apache的安装顺利完成。
须要的rpm软件包有:
[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm [root@localhost Packages]# rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-13.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-8.32-15.el7_2.1.x86_64.rpm
按照顺利安装完成。
2、源码编译安装
将下载好的源代码httpd-2.4.25.tar.gz上传到服务器本地,接下来开始编译安装。
1.解包
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src [root@localhost ~]# cd /usr/src/httpd-2.4.25/
2.配置
根据服务器的实际应用须要,能够灵活设置不一样的定制项,若要获知可用的各类配置选项及其含义,能够执行“ ./configure --help”命令,“/”表示当前目录,下面配置一些最经常使用的配置项:
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
上述配置命令中,各选项的含义:
3.编译及安装
完成配置后,执行“make”命令进行编译,将源代码转换为可执行的程序;而后执行“make install”命令完成最后的安装过程。
[root@localhost httpd-2.4.25]# make && make install
3、确认安装目录
因为指定的是安装目录为/usr/local/httpd,所以httpd服务的各类程序、模块、帮助文件都将复制到此目录下。
[root@localhost httpd-2.4.25]# ls /usr/local/httpd bin cgi-bin error icons logs manual build conf htdocs include man modules
在安装后的/usr/local/httpd目录下,主要子目录的用途:
httpd服务的目录结构:
主要的目录和文件
- 服务目录:/usr/local/httpd/
- 主配置文件:/usr/local/httpd/conf/httpd.conf
- 网页目录:/usr/local/httpd/htdocs/
- 服务脚本:/usr/local/httpd/bin/apachectl
- 执行程序:/usr/local/httpd/bin/httpd
- 访问日志: /usr/local/httpd/log/access_log
- 错误日志: /usr/local/httpd/log/error_log
4、优化执行路径
经过源码安装的httpd服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更加方便,能够为相关程序添加符号连接。
[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin [root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl lrwxrwxrwx. 1 root root 30 7月 13 19:20 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl lrwxrwxrwx. 1 root root 26 7月 13 19:20 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
这样在执行相关的命令就不须要输入冗长的路径了。好比:
[root@localhost httpd-2.4.25]# httpd -v //查看程序版本 Server version: Apache/2.4.25 (Unix) Server built: Jul 13 2019 18:49:20
5、添加httpd系统服务
CentOS 7系统下,将编译安装的程序添加为系统服务有两种方式:
①经过chkconfig命令添加为系统服务,而后由systemctl进行管理(注意,经过这种方式不能设置程序开机自启动);
②在/lib/systemd/system/目录下,手动编写以.service结尾的单元(unit)配置文件。
1)使用chkconfig添加系统服务
若但愿将httpd添加为系统服务,以便经过chkconfig进行管理,须要创建可控的服务器脚本。
[root@localhost ~]# cp /usr/local/httpd//bin/apachectl /etc/init.d/httpd [root@localhost ~]# vim /etc/init.d/httpd //添加以下内容 #!/bin/bash # chkconfig: 35 85 21 \\服务识别参数,在级别三、5中启动;启动和关闭的顺序分别为8五、21 #description: Startup script for the Apache HTTP Server \\服务描述信息,能够忽略 ………… //忽略部份内容 [root@localhost httpd-2.4.25]# chkconfig --add httpd \\添加httpd为系统服务 [root@localhost httpd-2.4.25]# systemctl start httpd //启动httpd服务 [root@localhost httpd-2.4.25]# chkconfig --level 35 httpd on //设置httpd服务为开机自启动 [root@localhost httpd-2.4.25]# systemctl is-enabled httpd httpd.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig httpd --level=5 enabled //查看httpd服务是否为开机自启动,enabled为开机自启动
2)创建[service].service配置文件
在/lib/systemd/system/目录下,创建一个以.service结尾的单元(unit)配置文件,用于控制httpd服务。配置内容分为三部分:
①控制单元(unit)的定义;
②服务[service]的定义;
③安装部分[install]。
具体内容,以下:
[root@localhost ~]# vim /lib/systemd/system/httpd.service //填写以下内容 [Unit] Description=The Apache HTTP Server After=network.target [Service] Type=forking PIDFile=/usr/local/httpd/logs/httpd.pid ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=graphical.target
配置文件的个配置项的做用,如图所示:
httpd.service文件编写完成后,就能够设置开机自启动了
[root@localhost ~]# systemctl enable httpd //设置开机自启动 Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@localhost ~]# systemctl is-enabled httpd //查看自启动服务状态 enabled
经过Apache搭建的httpd服务已经完成!客户端就已经能够访问了,可是咱们来认识一些基本的配置:
1、配置并启动服务
1.配置httpd服务
编辑httpd服务的主配置文件httpd.conf,查找到配置项“ServerName”去除前面“#”号便可!(若是有合法的域名,建议修改为合法的域名,未来经过域名访问)
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf ………… //省略部份内容 ServerName www.example.com:80 ………… //省略部份内容
修改完成后,建议使用带“-t”选项的apachectl命令对配置文件进行语法检查!
[root@localhost ~]# apachectl -t Syntax OK
2.启动httpd服务
[root@localhost ~]# systemctl start httpd //启动httpd服务 [root@localhost ~]# netstat -anpt | grep httpd //查看监听端口 tcp6 0 0 :::80 :::* LISTEN 59183/httpd
2、部署网页文档
httpd服务器已提供了一个名为index.html的测试网页,作为访问网站的默认首页(能够自行编辑)!
[root@localhost ~]# cat /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html>
3、客户机访问
客户机经过IP访问
若是须要使用https的方式访问,则须要:
[root@localhost yum.repos.d]# yum -y install mod_ssl \\安装所选的ssl模块 [root@localhost yum.repos.d]# systemctl restart httpd \\从新启动httpd服务
客户机访问测试:
使用https访问,默认的首页时,将显示APache官网首页!
若是须要域名访问,须要搭建DNS服务,搭建DNS服务能够参考博文CentOS 7搭建DNS服务
4、查看Web站点的访问状况
httpd服务器使用两种类型的日志:访问日志和错误日志。
经过查看访问日志文件access_log,能够及时了解Web站点的访问状况。
访问日志中每行对应一条访问记录,记录了客户机的IP地址、访问服务器的日期和时间、请求的网页对象等信息。
[root@localhost ~]# tail /usr/local/httpd/logs/access_log 192.168.1.100 - - [13/Jul/2019:20:29:40 +0800] "GET / HTTP/1.1" 200 45
经过查看错误日志err_log,能够为排查服务器运行故障提供参考依据。
错误日志文件中每行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误时间的内容描述等。
上述过程是使用Apache搭建Web服务器的基本步骤,其中涉及httpd.conf配置文件的改动量很是少,要搭建一台简单的Web服务器仍是很是简单的。
咱们来认识httpd服务的主要配置文件及各项的含义:
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf ServerRoot "/usr/local/httpd" Listen 80 User daemon Group daemon ServerAdmin you@example.com ServerName www.example.com:80 DocumentRoot "/usr/local/httpd/htdocs" DirectoryIndex index.html ErrorLog "logs/error_log" LogLevel warn CustomLog "logs/access_log" common PidFile "logs/httpd.pid" AddDefaultCharset UTF-8 Include conf/extra/httpd-default.conf
上述设置行中,各全局配置项的含义,如图:以上配置项是Httpd.conf文件中主要的全局配置项,还有不少其余的配置项,在此就不一一介绍了,若是有须要能够查看Apache服务器中的相关帮助手册。