前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 Linux 安装 web 服务及基本配置

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

作者头像
小手冰凉
发布2019-09-10 10:41:51
1.6K0
发布2019-09-10 10:41:51
举报
文章被收录于专栏:小手冰凉小手冰凉

在网络环境中,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 服务了

准备工作:

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

Apache 的配置及运行需要几个软件包的支持,因此我们需要从系统光盘中预先安装这些软件及其开发包(devel) 以便提供相应的库和头文件。

依赖包都安装完毕后,我们将下载获得的 httpd 源码包解压并释放到 /usr/src 中,然后切换到源码目录中:

代码语言:javascript
复制
[root@localhost tmp]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
#-C 指定解压到的位置

配置:

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

代码语言:javascript
复制
[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 脚本程序支持

接下来,编译及安装:

代码语言:javascript
复制
[root@localhost httpd-2.4.25]# make && make install    
& make :进行编译,将源代码转换为可执行的程序    
& make install :将编译完的 httpd 程序及相关目录、文件复制到预设的安装目录(--prefix 选项指定)

确认安装结果:

[root@localhost /]# /usr/local/httpd/bin/apachectl start # 执行此命令启动服务

启动之后可以执行此命令查看 tcp 的80端口有没有启用:

代码语言:javascript
复制
[root@localhost /]# netstat -anpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      20412/httpd         

通过源码编译安装的 httpd 服务,程序路径并不在默认的搜索路径中,执行起来比较麻烦,为了使该服务使用时更加方便,可以为相关程序添加符号链接

代码语言:javascript
复制
[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”

代码语言:javascript
复制
[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 识别配置

代码语言:javascript
复制
[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)配置文件。内容如下:

代码语言:javascript
复制
[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 开机启动:

代码语言:javascript
复制
[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,在附近添加内容,用于设置网站名称

代码语言:javascript
复制
[root@www /]# vim usr/local/httpd/conf/httpd.conf 
……//省略部分内容
ServerName www.test.com
……//省略部分内容

修改完毕之后可以使用带“-t ” 选项的 apachectl 命令进行语法检测,显示如下表示正确

代码语言:javascript
复制
[root@www /]# apachectl -t
Syntax OK

部署网页文档:网站根目录位于 /usr/local/httpd/htdocs 下

代码语言:javascript
复制
[root@www /]# cat /usr/local/httpd/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>

若想通过域名访问httpd服务器,需要在客户机上指定DNS服务器地址或在hosts文件中增加 httpd服务器的 IP解析记录。

DNS参考文章:https://cloud.tencent.com/developer/article/1501071

httpd 服务器使用了两种类型的日志:访问日志和错误日志。这两种日志分别为 access_log 和 error_log ,均位于/usr/localhttpd/logs 目录下,通过查看访问日志,可以及时了解 web站点的访问情况。

代码语言:javascript
复制
[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 系统的根目录)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档