基于 Linux 安装 web 服务及基本配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 Linux 安装 web 服务及基本配置相关的知识,希望对你有一定的参考价值。

在网络环境中,web 服务无疑是最为流行的应用系统。有了 web 站点,企业可以充分展示自己的作品,宣传企业形象。web 站点还为企业提供了与客户交流、电子商务交易平台等丰富的网络应用。
Apache HTTP Server 是 ASF 旗下著名的软件项目,其正式名称是“httpd”,也就是历史上的 Apache 网站服务器。
那我们为什么不选择使用系统盘中的httpd服务呢,因为系统盘中的httpd不方便更新,麻烦。
Apache 的话不管是卸载还是更新新版本,都很方便。
Apache 的主要特点:
1、开放源代码
2、跨平台使用
3、支持各种 Web 编程语言
4、模块化设计
5、运行稳定
6、良好的安全性
下面是Apache 的源码编译安装包,需要可以下载,也可自行从网页上下载:
https://pan.baidu.com/s/1LFabNY2sbFqnPI1lluuV2w
提取码:olpz

接下来我们就可以来安装 httpd 服务了
准备工作:

为了避免发生端口冲突、程序冲突等现象,我们可以使用:
rpm   -qa  |  grep   httpd   (查询系统中的httpd)
如果有的话 ,使用 :rpm -e httpd --nodeps  (nodeps:不检测依赖关系)

Apache 的配置及运行需要几个软件包的支持,因此我们需要从系统光盘中预先安装这些软件及其开发包(devel) 以便提供相应的库和头文件。
技术图片
依赖包都安装完毕后,我们将下载获得的 httpd 源码包解压并释放到 /usr/src 中,然后切换到源码目录中:

[root@localhost tmp]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
#-C 指定解压到的位置

配置:
根据服务器的实际应用需要,可以灵活设置不同的定制选项(需要的话可以执行 “./configure --help 获取”)

[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 脚本程序支持

接下来,编译及安装:

[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 服务,程序路径并不在默认的搜索路径中,执行起来比较麻烦,为了使该服务使用时更加方便,可以为相关程序添加符号链接

[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 系统下,将编译安装的程序添加为系统服务有两种方式:
1、通过 chkconfig 命令添加,然后由 systemctl 进行管理;我们需要建立可控的服务脚本,例如,可将 apachectl 脚本复制为 /etc/init.d/httpd 并在文件开头添加 chkconfig 识别配置

[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    //服务识别参数 在级别3、5中启动 启动和关闭的顺序分别是85、21
 #description: Apache HTTP Server   //服务描述信息
[root@www /]# chkconfig --add httpd   // 将httpd添加为系统服务

2、在/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 系统的根目录)

以上是关于基于 Linux 安装 web 服务及基本配置的主要内容,如果未能解决你的问题,请参考以下文章

基于linux的jdk1.7安装及环境变量配置

基于linux的jdk1.7安装及环境变量配置

基于阿里云服务器Linux系统部署JavaWeb项目

linux下安装及配置jenkins(war包)

linux服务之apache服务的安装及配置(centos)

Haproxy安装配置及日志输出问题