Apache网站服务器

Apache网站服务基础

Apache简介

Apache HTTP Server 是开源软件项目的杰出代表,基于标准的HTPP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。

Apache的主要特点

Apache服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求。其主要特点包括以下几个方面。

  • 开放源代码:Apache服务程序由全世界的众多开发者共同维护,并且任何人都可以自由的使用,这充分体现了开源软件的精神。
  • 跨平台应用:这个特性得益于Apache的源代码开放。Apache服务器可以运行在绝大多数软硬件平台上,所欲Unix服务器都可以运行Apache服务器,甚至在大多数windows系统平台也可以良好地运行Apache服务器。Apache服务器的跨平台特性使其具有被广泛应用的条件。
  • 支持各种Web编程语言:Apache服务器可支持的网页编程语言包括Perl、PHP、Python、Java等,甚至微软的ASP技术也可以在Apache服务器中使用。
  • 模块化设计:Apache并没有将所有功能集中在单一的服务程序内部,而是尽可能地通过标准的模块来实现专有的功能,其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。
  • 运行非常稳定:Apache服务器可用于构建具有极大负载访问量的Web站点,很多知名企业网站都是用Apache作为web服务软件。
  • 良好的安全性:Apache服务器具有相对较好的安全性,这是开源软件共同具有的特性。

安装httpd服务器

httpd服务器的安装可以选用RPM安装、源码编译安装两种方式,前者相对简单、快速,但是在功能上存在一定的局限性。
源码安装包的文件名及含义:httpd-2.2.17.tar.gz,标注的字段分别为主版本、次版本、发布次数,发布次数为奇数代表该版本为开发版、偶数为稳定版

1.准备工作

为了避免发生端口冲突、程序冲突等现象,建议先卸载使用RPM安装的httpd。使用–nodeps选项忽略依赖关系可保留无需源码安装的httpd所需的依赖包,为源码编译安装httpd服务提高了不少效率,初次安装也可以先使用yum安装一次httpd服务,再执行以下命令。

rpm -e httpd --nodeps

2.源码编译及安装

(1) 解包

将下载获得的httpd源码包解压并释放到/usr/src目录下,且切换到展开后的源码目录中。

tar -zxf httpd-2.2.17-tar-gz -C /usr/src
cd /usr/src/httpd-2.2.17
(2) 解决依赖关系

源码安装httpd服务器所需的各种依赖软件如下👇
可以使用RPM方式安装,还可以使用yum方式安装

rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm
rpm -ivh apr-devel-1.4.8-3.el7_4.1.x86_64.rpm
rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm
rpm -ivh libdb-devel-5.3.21-24.el7.x86_64.rpm
rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm
rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
rpm -ivh pcre-8.32-17.el7.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm

(3) 配置

根据服务器的实际应用需要,可以灵活设置不同 的定制选项,如制定安装路径、启用字符集支持等。若要获知可用的各种配置选项及其含义,可以执行“./configure --help”命令。

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-chaerset-lite --enable-cgi --enable-deflate --enable-pires --with-mpm=prefork

上述命令中,各选项的含义如下。

  • –prefix:指定将httpd服务程序安装到哪个目录下,如/usr/local/httpd
  • –enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力
  • –enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护
  • –ernble-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页
  • –enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力
(4) 编译及安装

完成配置以后,执行“make”命令进行编译,将源代码转换为可执行的程序;然后执行“ make install”命令完成最后的安装过程;将编译完的httpd程序及相关目录、文件复制到预设的安装目录(由配置时的“–prefix”选项指定)。

make
make install

3.确认安装结果

由于指定的安装目录为/usr/local/httpd,因此httpd服务的各种程序、模块、帮助文件等都将复制到此目录下。

[root@VM-0-12-centos ~]# ls /usr/local/httpd
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules

在安装后的/usr/local/httpd目录下,主要子目录的用途如下👇

  • /usr/local/httpd/bin:存放httpd服务的各种执行程序文件,包括主程序httpd、服务控制工具apachectl等。
  • /usr/local/httpd/conf:存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。
  • /usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html等
  • /usr/local/httpd/logs:存放httpd服务的日志文件
  • /usr/local/httpd/modules:存放httpd服务的各种模块文件
  • /usr/local/httpd/cgi:存放各种CGI程序文件

4.优化执行路径

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

[root@VM-0-12-centos ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@VM-0-12-centos ~]# ls -l /usr/local/bin
总用量 0
lrwxrwxrwx 1 root root 23 7月  20 17:00 ab -> /usr/local/httpd/bin/ab
lrwxrwxrwx 1 root root 30 7月  20 17:00 apachectl -> /usr/local/httpd/bin/apachectl
...

这样,再执行相关命令时就不用输入冗长的路径了。例如,当执行“httpd -v”命令(用于查看程序版本)时,即相当于执行了“/usr/local/httpd/bin/httpd-v”命令。

[root@VM-0-12-centos ~]# httpd -v
Server version: Apache/2.4.38 (Unix)
Server built:   Jul 20 2020 10:08:23

5.添加httpd系统服务

centos6 方法
通过chkconfig进行管理系统服务
[root@www init.d]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@www init.d]# vi /etc/init.d/httpd 
				//在文件最开始加入以下三行
#!/bin/bash
# chkconfig:35 85 21		//服务识别参数,在级别3和5中启动,启动关系顺序分别为85、21
# description:Startup script for the Apache HTTP Server		//服务描述信息
[root@www init.d]# chkconfig --add httpd			//将httpd添加为系统服务
[root@www init.d]# chkconfig --list httpd			//查看httpd服务的自启动状态

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 
      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。
httpd          	0:关	1:关	2:关	3:开	4:关	5:开	6:关

成功执行上述操作以后,linux系统每次进入运行级别3、5时,httpd服务也会自动运行

centos7 方法
通过systemctl进行管理系统服务
[root@www init.d]# vi /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/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RetartSec=42s
[Install]
WantedBy=graphical.target

[root@www init.d]# systemctl enable httpd.service 
Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@www init.d]# systemctl is-enabled httpd.service 
enabled

上述操作完成后,可以通过systemctl命令控制httpd服务的启停

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

httpd服务器基本配置

1.Web站点部署过程

1)确定网站名字、IP地址

2)配置并启动httpd服务
主配置文件:/usr/local/httpd/conf/httpd.conf
服务脚本:/usr/local/httpd/bin/apachectl

[root@www httpd]# vi /usr/local/httpd/conf/httpd.conf
201 #ServerName www.example.com:80		//将此行(201行附近)取消注释,并修改为自己的网站名称,如ServerName www.qp.com
[root@www httpd]# /usr/local/httpd/bin/httpd -t		//测试主配置文件语法
Syntax OK
[root@www httpd]# /usr/local/httpd/bin/apachectl start
[root@www httpd]# netstat -antp | grep http
tcp6       0      0 :::80		:::*		LISTEN      9994/httpd

3)部署网页文档

[root@dns htdocs]# vi /usr/local/httpd/htdocs/index.html
	<html><body><h1>It works!</h1></body></html>

4)在客户机中访问Web站点
在这里插入图片描述
5)查看Web站点访问情况
httpd服务器使用了两种类型的日志,均在/usr/local/httpd/log/
访问日志: /usr/local/httpd/log/access_log
错误日志: /usr/local/httpd/log/error_log
均在/usr/local/httpd/log/

2、httpd.conf配置文件

全局配置项:决定httpd服务器的全局运行参数,使用“关键字 值”的配置格式

常用配置项:

ServerRoot "/usr/local/httpd"		服务目录
Listen 80		监听的IP地址、端口号
User daemon		运行服务的用户身份
Group daemon		运行服务的组身份
ServerAdmin webmaster@kgc.com		管理员邮箱
ServerName www.kgc.com			网站服务器的域名
DocumentRoot "/usr/local/httpd/htdocs"	       网页文档的根目录
DirectoryIndex index.html index.php		默认的索引页文件
ErrorLog logs/error_log			设置错误日志文件的路径
LogLevel warn			记录日志的级别,默认为warn
CustomLog logs/access_log common		访问日志文件的位置
PidFile logs/httpd.pid		保存httpd进程PID号的文件
AddDefaultCharset	         设置站点中的网页默认使用的字符集编码
Timeout			网络连接超时,默认为300秒
KeepAlive			是否保持连接,可选On或Off
MaxKeepAliveRequests		每次连接最多请求文件数
KeepAliveTimeout			保持连接状态时的超时时间
CharsetDefault UTF-8		设置网页默认使用的字符集编码
Include conf/extra/httpd-default.conf		需要包含进来的其他配置文件

区域配置项:使用一对组合标记,限定了配置项的作用范围

<Directory />    			//定义“ / ”目录区域的开始
    Options FollowSymLinks  		//控制选项,允许使用符号链接
    AllowOverride none     	//不允许隐含控制文件中的覆盖配置
    Order deny,allow			//访问控制策略的应用顺序
	Deny from all			//禁止任何人访问此区域
Require all denied     		//拒绝所有访问请求
</Directory>		//定义“ / ”目录区域的结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值