千家信息网

Linux系统服务搭建之Apache

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,1、 www: world wide web 万维网http 协议: 超文本传输协议HTML语言: 超文本标识语言 index.html2、 URL:统一资源定位: 协议+域名:端口+网页文件名htt
千家信息网最后更新 2025年12月02日Linux系统服务搭建之Apache

1、 www: world wide web 万维网

http 协议 超文本传输协议

HTML语言: 超文本标识语言 index.html

2、 URL:统一资源定位: 协议+域名:端口+网页文件名

http://www.baidu.com:80/phpmyadmin/index.php

3 搭建www的服务器的方法

windows IIS + asp + SQLserver

IIS: Internet Information server

Linux apache+mysql+php

nginx

一、相关文件

apache配置文件

源码包安装:/usr/lcoal/apache2/etc/httpd.conf(主配置文件)

/usr/local/apache/etc/extra/*.conf(子配置文件)

rpm包安装:/etc/httpd/conf/httpd.conf

网页保存位置:

源码包: /usr/local/apache2/htdocs/

rpm包安装: /var/www/html/

日志保存位置

源码包:/usr/local/apache2/logs/

rpm包: /var/log/httpd/

二、配置文件

注意:apache配置文件严格区分大小写

1、 针对主机环境的基本配置

ServerRoot apache主目录

/usr/local/apache2

Listen 监听端口 :80

LoadModule 加载的相关模块 php5

User

Group 用户和组

ServerAdmin 管理员邮箱

ServerName

服务器名(没有域名解析时,使用临时解析。默认不开启)

ErrorLog "logs/error_log 错误日志

CustomLog "logs/access_log" common 正确访问日志

DirectoryIndex index.html index.php

默认网页文件名,优先级顺序

Include etc/extra/httpd-vhosts.conf

子配置文件中内容也会加载生效

2 主页目录及权限

DocumentRoot "/usr/local/apache2//htdocs"

#网页文件存放目录(默认)

#定义指定目录的权限

Options Indexes FollowSymLinks

#options

None: 没有任何额外权限

All: 所有权限

Indexes: 浏览权限(当此目录下没有默认网页文件时,显示目录内容)

FollowSymLinks:准许软连接到其他目录

AllowOverrideNone

#定义是否允许目录下

.htaccess文件中的权限生效

None:.htaccess中权限不生效

All:文件中所有权限都生效

AuthConfig:文件中,只有网页认证的权限生效。

Require all granted 访问控制列表

#定义此目录的允许访问权限

以下5个例子都是在Require allgranted紧下面插入(很重要)

例1: 仅允许IP为192.168.1.1的主机访问

Require all granted

Require ip 192.168.1.1

例2: 仅允许192.168.0.0/24网络的主机访问

Require all granted

Require ip 192.168.1.0/24

例3: 禁止192.168.1.2的主机访问,其他的都允许访问,

Require all granted

Require not ip 192.168.1.2

4: 允许所有访问,

Require all granted

5: 拒绝所有访问,

Require all denied

三、四个小实验

实验环境:

使用lamp环境安装好的apache进行试验

安装完成后,先启动apache进行服务验证,是否安装成功,并且主页是否可以访问。

注:发现启动服务报错:AH00558: httpd: Could not reliably determine the server's fullyqualified domain name, using localhost.localdomain. Set the 'ServerName'directive globally to suppress this message

解决办法:打开主配置文件httpd.conf

搜索ServerName (约在200行左右)

修改为 ServerName localhost:80(并且去掉前面的#注释)

实验一:目录别名

可以使特定的网站程序不出现在网站根目录下面,而这样的话,就可以避免和原来的程序本身发生混淆和冲突;缩短网页目录的纵深,减少URL的长度。

1. 打开apache主配置文件

#Includeetc//extra/httpd-autoindex.conf (将#号去掉)

2. 进到子配置文件目录extra下,打开httpd-autoindex.conf

仿照例子写一个别名:

Alias /a/ "/www/a/" #实际目录结束要有/

Options Indexes MultiViews

AllowOverride None

Require all granted

在/www/a/目录下手动创建index.html文件

3. 将apache服务重启:

/usr/local/apache2/bin/apachectlstop

/usr/local/apache2/bin/apachectlstart

注:重启源码包安装的apache需要先关闭,再启动。

4. 验证试验结果:

打开浏览器输入 服务器IP/a/ (最后的"/"必须有)

实验二:用户认证

提高网站安全性,保护个别页面的信息,限制特定目录只有指定用户可以访问。

1.打开主配置文件在最下面添加:

#被保护目录

Options Indexes

AllowOverride All #(开启权限认证文件.htaccess)

Require all granted

2.在指定目录下创建权限文件:

cd /usr/local/apache2/htdocs/baohu

Vi .htaccess #添加下面的内容

AuthName"50 docs" #提示信息

AuthTypebasic #加密类型

AuthUserFile/usr/local/apache2/htdocs/baohu/apache.passwd

#密码文件,文件名自定义。(但是路径要对,使用绝对路径)

requirevalid-user #允许密码文件中所有用户访问

3.使用命令生成密码文件apache.passwd,加入允许访问的用户。(此用户和系统用户无关

Htpasswd

-c /usr/local/apache2/htdocs/baohu/apache.passwd test1

-c 建立密码文件,只有添加第一个用户时,才能-c

htpasswd

-m /usr/local/apache2/htdocs/baohu/apache.passwd test2

-m 再添加更多用户时,使用-m参数

4. 验证访问:(自己手动去目录下创建index.html文件)

浏览器输入 服务器IP/baohu/index.html

实验三:***虚拟主机***

虚拟主机的分类:

1) 基于IP的虚拟主机:一台服务器,多个ip,搭建多个网站

Ifconfig eth0:0 IP #建立网卡子端口

2) 基于端口的虚拟主机:一台服务器,一个ip,搭建多个网站,每个网络使用不同端口访问

3) 基于名字的虚拟主机:一台服务器,一个ip,搭建多个网站,每个网站使用不同域名访问

1. 实验搭建(准备工作)

a. 域名解析:准备两个域名

www.sohu.com

www.sina.com

b. 没搭建DNS,只能手动添加到本地hosts文件内进行解析

Windows系统中:C:\WINDOWS\system32\drivers\etc\hosts

Linux系统中:/etc/hosts

c. 网站主页目录规划

在/htdocs/目录下分别创建sohu 和 sina 两个目录

并且在分别在新建目录内创建index.html文件(分别写不一样的内容

2. 实验流程(修改配置文件

A. vi /usr/local/apache2/etc/httpd.conf

#修改主配置文件开启文件关联

Include etc//extra/httpd-vhosts.conf #此行取消注释

B. vi /usr/local/apache2/etc/extra/httpd-vhosts.conf

#添加下方内容(添加之前先把原先存在的示例删除掉

Options Indexes

AllowOverride None

Require all granted

Options Indexes

AllowOverride None

Require all granted

#虚拟主机标签

ServerAdmin webmaster@sina.com #管理员邮箱

DocumentRoot "/usr/local/apache2/htdocs/sina" #网站主目录

ServerName www.sina.com #完整域名

ErrorLog "logs/sina-error_log" #错误日志

CustomLog "logs/sina-access_log" common #访问日志

ServerAdmin webmaster@sohu.com

DocumentRoot "/usr/local/apache2/htdocs/sohu"

ServerName www.sohu.com

ErrorLog "logs/sohu.com-error_log"

CustomLog "logs/sohu.com-access_log" common

C. 重启服务,验证结果

Windows 下:浏览器下输入两个不同的域名验证网页内容

Linux下:通过elinks命令验证:elinks 域名

实验四:rewrite重写功能

URL中输入一个地址会自动跳转为另一个,多用于网站更换或者添加新域名。

实验要求:

A 虚拟主机能正常访问

B 打开主配置文件开启重写模块

LoadModule rewrite_module modules/mod_rewrite.so #取消注释

域名跳转实验:

1. 修改虚拟主机配置文件

vi */extra/httpd-vhosts.conf

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

2. 创建规则匹配文件

vi */.htaccess #在指定的网站网页目录下创建

RewriteEngine on

#开启rewrite功能

RewriteCond %{HTTP_HOST} www.sina.com

#把以www.sina.com 开头的内容赋值给HTTP_HOST变量

RewriteRule .* http://www.sohu.com

#.* 输入任何地址都跳转到http://www.sohu.com

3. 重启服务器,进行访问验证

静态向动态跳转:

1. 修改虚拟主机配置文件

vi */extra/httpd-vhosts.conf

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

2. 创建规则文件

vi */.htaccess

RewriteEngine on

RewriteRule index(\d+).html index.php?id=$1

#输入index(数值).html时,跳转到index.php文件

3. 重启服务,进行访问验证

验证方式:在*/htdocs/sohu/目录下新建index.php文件

访问www.sohu.com/index(数值).html看访问的是否是你的index.php的网页

注:静态网页向动态网页跳转这个实验,只有完整的lamp环境下才能访问。

四、常用子配置文件

httpd-default.conf #apache线程控制,必须开启

Timeout 300 #超时时间

KeepAlive On

#开启线程控制(不开启的话用户访问页面会产生一个进程,访问其他页面会产生另一个进程,这样的话一个用户会产生好多个进程,会降低apache性能。开启此项,当用户访问网站时会产生一个进程,打开其他页面时会产生线程,保证了一个用户只产生一个进程。网站此项功能必须开启。)

MaxKeepAliveRequests 100 #最大线程连接数

httpd-info.conf #apache状态统计

SetHandler server-status

Order deny,allow

Deny from all

Allow from .example.com

#通过访问www.domain.com/server-status可以查看apache状态。如果页面显示not found 则需要修改目录权限,在Deny from all下加上allow from ip(允许的ip)。

httpd-manual.conf #apache帮助文档

通过访问www.domain.com/manual 查看apache帮助文档,一般为英文,没用,可以到apache官网下载帮助文档。

httpd-languages.conf #语言编码

要使其生效需要在主配置文件中打开,如果中文乱码不是浏览器编码的原因可能是此配置文件注释没打开。

五、yum安装apache后的虚拟主机

目的:实现apache的虚拟主机DNS的搭配使用

应用技术基于域名的虚拟主机 和 基于IP的虚拟主机

前提:1、一台双网卡的WEB服务器,eth0-192.168.115.195

eth2-192.168.115.199

2、一台DNS服务器eth0-192.168.115.194

3、一台客户机192.168.115.200

5.1、规划

网站 IP DocumentRoot ServerAdmin
---------------------------------------------------------------------www.163.com 192.168.115.195 /www/163.com www.163.com
www.sina.com 192.168.115.195 /www/sina.com www.sina.com
www.sohu.com 192.168.115.195 /www/sohu.com www.sohu.com
www.baidu.com 192.168.115.199 /www/baidu.com www.baidu.com
www.baidu.com是基于IP的
---------------------------------------------------------------------

5.2、配置DNS服务器

5.2.1、配置本地yum源,安装软件bind

启动服务service named start

5.2.2、配置网卡服务并重启网络服务


service network restart

5.2.3、配置主配置文件named.conf

删除其他所有多余行,只保存下面的内容






5.2.4、配置数据配置文件

创建相关域名的正向解析文件并更改所有者为 named



配置各个相关域名的正向解析文件

163.com



sina.com

Sohu.com

Baidu.com(基于IP的虚拟主机)


重启DNS服务 service named restart


5.3、配置115.200客户机测试

此处使用的是Win客户机,配置如下:

测试

5.4、配置apache服务器

5.4.1、配置网卡并重启网络服务

Eth0


Eth2

重启网络服务service network restart

5.4.2、配置本地yum源,安装httpd

yum -y install httpd

service httpd start

5.4.3、创建相关目录及主页

实现重启服务时不出现warning信息

vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 //改成192.168.115.195:80

配置Apache实现虚拟主机
vi /etc/httpd/conf/httpd.conf

NameVirtualHost *:80// 改为NameVirtualHost 192.168.115.195:80IP是本机的IP
NameVirtualHost 192.168.115.195:80支持基于主机名的虚拟主机


vi /etc/httpd/conf/httpd.conf
主配置文件最下面添加以下内容






5.4.4、测试验证




文件 配置 目录 服务 主机 虚拟主机 网站 域名 权限 用户 服务器 网页 实验 验证 内容 输入 多个 日志 端口 网络 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 世界上网络安全最先进的公司 网络安全与执法学校认可文凭 软件开发应用商店 苹果id账号密码数据库 旅游网站数据库如何设计 北京智诚影楼管理软件开发公司 福建火山软件开发平台pc教程 寝室服务器 统筹信息化与网络安全统筹推进 互联网科技风向 计算机网络技术基础认知 如何免费获得cbm数据库账号 数据库real长度 托管服务器有什么意思 资产管理数据库表的建立 将远程数据库备份到本地 湖南网络技术学院宿舍怎么样 小程序云数据库维护 梦幻西游2 新开服务器 我的世界开局送32k服务器网易版 迷你世界玩家炸掉服务器 我的世界膜拜火影服务器 生物与网络技术的融合 互联网公司数据库 nc软件开发工程师招聘 金税盘白盘用什么软件开发票 射频底层软件开发 网络技术专业高一学什么 网络安全与信息保密区别 如何创建要附加的数据库文件
0