WEB网站服务(一)

文章介绍了ApacheHTTPServer的起源、主要特点和版本信息,详细阐述了如何通过源码编译安装httpd服务器,包括卸载RPM安装、配置选项、编译安装步骤。同时,讲解了如何优化执行路径、添加httpd系统服务,并提供了服务配置文件的详细解释。最后,讨论了Web站点的部署过程,包括配置httpd服务和启动服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 Apache网站服务基础

  1. 1.1.1Apache简介

  1. Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务。Apache服务器可以运行在Linux,UNIX,windows等多种操作系统·平台中。

  1. 1.Apache的起源

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

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

  1. Apache HTTP Server是ASF旗下著名的软件项目之一,正式名称为‘httpd’, 也就是历史上的Apache网站服务器。

  1. 2.Apache的主要特点

  1. 开放源代码:Apache服务器的重要特性之一,也是其他特性的基础

  1. 跨平台应用:Apache服务器可以运行在绝大多数软硬件平台上

  1. 支持各种Web编程语言:支持网页编程语言包括perl,php,python,java等。微软的ASP技术也可以在Apache服务器上使用

  1. 模块化设计:软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能3

  1. 运行非常稳定:Apache服务器可用于构建具有大负载访问量的Web站点

  1. 良好的安全性:Apache服务器具有相对较好的安全性,这是开源软件的特性

  1. 3.Apache的主要版本

  1. Apache服务器目前包括1.X和2.X,两个版本具有一定的差异,也具有各自的特性

  1. 1.X版本:最高版本1.3,继承了Apache服务器1.0版本以来的优秀特性和管理风格,具有非常好的兼容性和稳定性

  1. 2.X版本:使用的配置语法和管理风格也有所改变,新构建的网站服务器,使用2.X版本是不错的选择

  1. 1.1.2安装httpd服务器

  1. 配置Apache网站服务前,需要正确安装http服务器软件。httpd服务器的安装分为RPM安装,源码编译安装

  1. 将以源码包httpd-2.4.25.tar.gz为例

  1. 1.卸载使用RPM方式安装的httpd

  1. rpm -e httpd --nodeps

  1. 2.源码编译及安装·

  1. 解包

  1. tar zxf httpd-2.4.25.tar.gz -C /usr/src

  1. 切换目录

  1. cd /usr/src/httpd-2.4.25

  1. 配置

  1. 若要获取可用的各种配置选项及其含义,可以执行./configure --help

  1. / 表示当前目录

  1. ./configure --prefix=/usr/local/httpd --enable-so --ebable-rewrite --enable-charset-lite --ebable-ogi

  1. 上述配置命令,各选项的含义如下

  1. --perfix:指定将httpd服务程序安装到那个目录下

  1. --enable-so:启用动态加载模块支持,使httpd具备进一步的扩展功能的能力

  1. --enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护

  1. --enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页

  1. --enable-cgi:启用CGI脚本程序支持, 便于扩展网站的应用访问能力

  1. 编译及安装

  1. make

  1. make install

  1. 3.确认安装结果

  1. ls /usr/local/httpd

  1. bin cgi-bin error icons logs manual

  1. build conf htdocs inclue man modules

  1. /usr/local/httpd/bin:存放httpd服务的各种执行程序文件,包括住程序httpd,服务控制工具apachectl等。

  1. /usr/local/httpd/logs:存放httpd服务的日志文件

  1. /usr/local/httpd/cgi-bin:存放各种CGI程序文件

  1. /usr/local/httpd/conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf,增强配置子目录extra等。

  1. /usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html等。

  1. /usr/local/httpd/modules:存放httpd服务的各种模块文件

  1. 4.优化执行路径

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

  1. ln -s /usr/lcoal/httpd/bin/* /sur/local/bin

  1. 这样在执行相关命令就不用输入冗于的路径了。列如当执行httpd -v 命令(用于查看程序版本)时,相当于执行/usr/local/httpd/bin/httpd -v命令。

  1. 5.添加httpd系统服务

  1. 将编译安装的程序添加为系统服务有两种方式:1.通过chkconfig命令添加为系统服务,由systemctl进行管理。2.在/lib/systemd/system目录下,手动编写以.service结尾的单元配置文件。

  1. (1).使用chkconfig添加系统服务

  1. (2).建立【service】.service配置文件

  1. 在/lib/systemd/system/目录下,建立一个以.service结尾的单元配置文件,用于systemd控制或监控的httpd服务,配置文件分为三个部分,控制单元的定义,服务的定义以及安装部分。

  1. 配置文件个配置项的作用如下:

  1. Description:设置服务单元描述字符串

  1. After:设置服务单元的启动先后顺序。列入:httpd.service单元文件中出现“After=network.target” 表示启动时先启动network.target,后启动httpd.service,关闭时顺序相反。与After对应的患有一个Before字段,同上

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

  1. PIDFile:设置服务的守护进程的PID文件

  1. ExecStart:设置服务启动时执行的命令

  1. ExecReload:设置服务重新加载时执行的命令

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

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

  1. RestartSec:设置在重启服务前暂停多长时间,默认100毫秒

  1. WantedBy:设置该服务所在的Target(运行目标)

  1. 6.设置httpd服务开机自启动

  1. systemctl enable httpd.service

  1. 查看httpd服务的状态

  1. systemctl is-enabled httpd.service

1.2.httpd服务器基本配置

1.2.1.Web站点的部署过程

1.确认网站名称,IP地址

若要向internet中发布一个Web站点,需要申请一个合法的互联网IP地址,并向DNS服务提供商注册一个完整的网站名称。如:www.aaa.com

若要客户机在浏览器中通过网站名称来访问此Web站点,还要有可用的域名服务

2.配置并启动httpd服务

(1).编辑httpd配置文件

修改配置文件后建议进行语法检查

apachectl -t

(2).启动httpd服务

systemctl start httpd

(3).查看httpd端口(80)

netstat -anpt | grep httpd

有80端口说明安好了

定义:上下文无关文法是一种描述形式语言的数学模型,由四元组 G=(V,Σ,R,S) 构成。其中,V 是非终结符集合,Σ 是终结符集合,R 是产生式规则集合,S 是起始符号。 示例:在文档中,有 G(E) 和 G(S) 等上下文无关文法,用于描述表达式的结构。例如,G(E) 的定义如下: E→T∣E+T∣E−T T→F∣T∗F∣T/F F→(E)∣i 这里,E、T、F 是非终结符,而 +、−、∗、/、(、) 和 i 是终结符。该文法用于描述算术表达式的构造方式。 推导是根据文法规则从起始符号逐步生成句子的过程,分为两种类型: 最左推导:始终扩展当前最左边的未展开非终结符。 最右推导:始终扩展当前最右边的未展开非终结符。 例如,在 G(N) 的上下文无关文法中,数字串的最左推导过程可以表示为: N⇒ND⇒NDD⇒⋯⇒DDD⇒0DDD⇒01DD⇒012D⇒0127 语法树是通过图形方式展示字符串如何根据文法规则进行推导的结构。它清晰地反映了推导过程中的层次关系。例如,对于表达式 i+i∗i,其语法树可以直观地展示操作符和操作数之间的层次结构。 如果一个句子存在多个不同的语法树,即可以通过多种推导过程生成,那么这个文法就被认为是二义性的。例如,句子 iiiei 有两个可能的语法树,这表明该文法存在二义性。 在自动机理论中,确定化是指将非确定有限自动机(NFA)转换为确定有限自动机(DFA),以确保每个状态在读取输入符号时只有一个确定的转移路径。最小化则是指去除 DFA 中的冗余状态,以获得更简洁的模型。文档中提供了 DFA 确定化和最小化的详细步骤示例。 正则表达式是一种用于匹配字符串模式的工具。文档中给出了许多正则表达式的例子,例如 (0∣1)∗01,用于匹配所有以“01”结尾的由 0 和 1 组成的字符串。正则表达式在文本处理和模式匹配中具有广泛应用。 综上所述,编译原理不仅涉
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值