在网络环境中,web 服务无疑是最为流行的应用系统。有了 web 站点,企业能够充分展现本身的做品,宣传企业形象。web 站点还为企业提供了与客户交流、电子商务交易平台等丰富的网络应用。
Apache HTTP Server 是 ASF 旗下著名的软件项目,其正式名称是“httpd”,也就是历史上的 Apache 网站服务器。
那咱们为何不选择使用系统盘中的httpd服务呢,由于系统盘中的httpd不方便更新,麻烦。
Apache 的话不论是卸载仍是更新新版本,都很方便。
Apache 的主要特色:
一、开放源代码
二、跨平台使用
三、支持各类 Web 编程语言
四、模块化设计
五、运行稳定
六、良好的安全性
下面是Apache 的源码编译安装包,须要能够下载,也可自行从网页上下载:
https://pan.baidu.com/s/1LFabNY2sbFqnPI1lluuV2w
提取码:olpz html
接下来咱们就能够来安装 httpd 服务了
准备工做:node
为了不发生端口冲突、程序冲突等现象,咱们可使用: rpm -qa | grep httpd (查询系统中的httpd) 若是有的话 ,使用 :rpm -e httpd --nodeps (nodeps:不检测依赖关系)
Apache 的配置及运行须要几个软件包的支持,所以咱们须要从系统光盘中预先安装这些软件及其开发包(devel) 以便提供相应的库和头文件。
依赖包都安装完毕后,咱们将下载得到的 httpd 源码包解压并释放到 /usr/src 中,而后切换到源码目录中:web
[root@localhost tmp]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/ #-C 指定解压到的位置
配置:
根据服务器的实际应用须要,能够灵活设置不一样的定制选项(须要的话能够执行 “./configure --help 获取”)shell
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --prefix:指定将 httpd 服务程序安装到那个目录下 --enable-so:启用动态加载模块支持 --enable-rewrite:启用网页地址重写功能 --enable-charset-lite:启动字符集支持 --enable-cgi:启用 CGI 脚本程序支持
接下来,编译及安装:apache
[root@localhost httpd-2.4.25]# make && make install & make :进行编译,将源代码转换为可执行的程序 & make install :将编译完的 httpd 程序及相关目录、文件复制到预设的安装目录(--prefix 选项指定)
确认安装结果:[root@localhost /]# /usr/local/httpd/bin/apachectl start # 执行此命令启动服务
启动以后能够执行此命令查看 tcp 的80端口有没有启用:编程
[root@localhost /]# netstat -anpt | grep 80 tcp6 0 0 :::80 :::* LISTEN 20412/httpd
经过源码编译安装的 httpd 服务,程序路径并不在默认的搜索路径中,执行起来比较麻烦,为了使该服务使用时更加方便,能够为相关程序添加符号连接vim
[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 28 7月 27 17:08 /usr/local/bin/apachectl -> /usr/src/httpd/bin/apachectl lrwxrwxrwx 1 root root 24 7月 27 17:08 /usr/local/bin/httpd -> /usr/src/httpd/bin/httpd
而后再执行的话就不用输入冗长的路径了,例如,当执行“httpd -v” 命令(查看程序版本)时,至关于执行“/usr/local/httpd/bin/httpd -v”安全
[root@localhost httpd-2.4.25]# httpd -v Server version: Apache/2.4.25 (Unix) Server built: Jul 27 2019 16:48:44
添加 httpd 为系统服务:
Centos 7 系统下,将编译安装的程序添加为系统服务有两种方式:
一、经过 chkconfig 命令添加,而后由 systemctl 进行管理;咱们须要创建可控的服务脚本,例如,可将 apachectl 脚本复制为 /etc/init.d/httpd 并在文件开头添加 chkconfig 识别配置bash
[root@www /]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@www /]# vim /etc/init.d/httpd #!/bin/bash // shell环境 #chkconfig: 35 85 21 //服务识别参数 在级别三、5中启动 启动和关闭的顺序分别是8五、21 #description: Apache HTTP Server //服务描述信息 [root@www /]# chkconfig --add httpd // 将httpd添加为系统服务
二、在/lib/systemd/system/目录下,手动编写以.service结尾的单元 (unit)配置文件。内容以下:服务器
[root@www /]# 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 文件后,执行以下命令设置 httpd 开机启动:
[root@www /]# systemctl enable httpd.service Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@www /]# systemctl is-enabled httpd.service enabled
httpd.conf 是 httpd 服务的主配置文件。
若要向 Internet 中发布一个 web 站点,须要申请一个合法的 IP地址,并向 DNS服务器提供商注册一个完整的网站名称。
配置httpd服务:编辑主配置文件,查找配置项 ServerName,在附近添加内容,用于设置网站名称
[root@www /]# vim usr/local/httpd/conf/httpd.conf ……//省略部份内容 ServerName www.test.com ……//省略部份内容
修改完毕以后可使用带“-t ” 选项的 apachectl 命令进行语法检测,显示以下表示正确
[root@www /]# apachectl -t Syntax OK
部署网页文档:网站根目录位于 /usr/local/httpd/htdocs 下
[root@www /]# cat /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html>
若想经过域名访问httpd服务器,须要在客户机上指定DNS服务器地址或在hosts文件中增长 httpd服务器的 IP解析记录。
DNS参考文章:https://blog.51cto.com/14227204/2384462
httpd 服务器使用了两种类型的日志:访问日志和错误日志。这两种日志分别为 access_log 和 error_log ,均位于/usr/localhttpd/logs 目录下,经过查看访问日志,能够及时了解 web站点的访问状况。
[root@www /]# tail /usr/local/httpd/logs/access_log 192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET / HTTP/1.1" 200 45 192.168.1.123 - - [27/Jul/2019:18:00:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET / HTTP/1.1" 304 - 192.168.1.123 - - [27/Jul/2019:18:00:17 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.1.123 - - [27/Jul/2019:18:00:18 +0800] "GET / HTTP/1.1" 304 -
httpd 各主配置项含义以下:
以上只是 httpd中比较主要的全局配置项,还有不少其余的,在此就不一一列举了
除了全局配置项之外,httpd.conf 文件中的大多数配置是包括在区域中的。区域配置项使用一对组合标记,限定了配置项的做用范围,例如,最多见的目录区域配置的形式以下:在以上区域定义中,设置了一个根目录的区域配置,其中添加的访问控制相关配置只对根目录有效,而不会做用于全局或其余区域。(注意:这里的根目录是指httpd服务器 server root 指定的值,而不是Centos 7 系统的根目录)