使用Apache搭建Web服务器

Apache服务器概述-安装
配置web服务器-搭建LAMP环境
修改web网站根目录-配置别名-虚拟目录
实现Apache打开软链接功能-禁止显示目录列表-用户认证
Apache虚拟主机基于IP-域名-端口三种搭建方式

暂时先使用yum安装LAMP环境(这张用不到mysql我应该不会装)后期使用源码编译搭建LAMP LNMP环境调优等等

Apache服务端:192.168.10.230
Apache客户端:可用Linux或者windows测试 这里随便

Apache服务器概述-安装

概念性内容直接复制

web服务概述
WEB服务器也称为WWW(WORLD WIDE WEB,万维网)服务器,主要功能是提供网上信息浏览服务。

常见web服务器(web):
httpd(Apache)、nginx+PHP
Tomcat: jsp + html
win:IIS
客户端:IE 、firefox、chrome、手机(浏览器)Browser

今天的主角:LAMP=Linux Apache Mysql PHP 中的 Apache(HTTPD)
类 Lunix 系统
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的 Web 应用程序平台。随着开源潮流的蓬勃发展,开放源代码 的 LAMP 已经与 J2EE 和.Net 商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个 IT 界的关注。从网站的流量上来说,50%以上的访问流量 是 LAMP 来提供的,LAMP 是最强大的网站解决方案

什么是 Apache
Apache HTTPD Server 简称 Apache,是 Apache 软件基金会的一个开源的网页服务器, 可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编 译到服务器中!Apache HTTP 服务器是一个模块化的服务器,各个功能使用模块化进行插拔! 目前支持 Windows,Linux,Unix 等平台!
Apache 软件基金会(也就是 Apache Software Foundation,简称为 ASF),是专门为运 作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是 Apache 项目!那么我们的 HTTPD 也只是 Apache 的开源项目之一!
主要的开源项目:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts, Tomcat,Tapestry,Hadoop 等等。只是最有名的是 HTTP Server,所以现在所说的 Apache 已 经就是 HTTPD Server 的代号了! 我们还见的比较多的是 Tomcat,Hadoop 等项目
官方网站:http://www.apache.org/ httpd:http://httpd.apache.org/

什么是 Mysql
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司,他也是最流行的关系型数据库管理系统!特别是在 WEB 应用方面!
关系型数据库:它通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数

官方网站:http://www.mysql.com/

什么是 PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通 用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适 用于 Web 开发领域。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创的语法。它可以 比 CGI 或者 Perl 更快速地执行动态网页。用 PHP 做出的动态页面与其他的编程语言相比, PHP 是将程序嵌入到 HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比 完全生成 HTML 标记的 CGI 要高许多;PHP 还可以执行编译后代码,编译可以达到加密和 优化代码运行,使代码运行更快。
简单的说,PHP 就是一个脚本解释器! 官方网站:http://php.net/
PHP 服务器安装好之后,升级切记注意,不要盲目升级!因为它会废弃很多低效的语法!

LAMP 工作原理
在这里插入图片描述
Web 服务器的工作模式和端口
工作模式是:B/S 模式
工作端口是:
正常端口:80/http
SSL 端口:443/https

安装服务器端:httpd(Apache)
httpd-2.4.6-67.el7.centos.x86_64.rpm:Apache 服务的主程序包,服务器端必须安装该软件包
httpd-devel-2.4.6-67.el7.centos.x86_64.rpm:Apache 开发程序包
httpd-manual-2.4.6-67.el7.centos.noarch.rpm:Apache手册文档,包含HTML 格式的Apache 计划的Apache User’s Guide 说明指南
httpd-tools-2.4.6-67.el7.centos.x86_64.rpm:Apache相关工具包

后续源码安装需要解决很多依赖的软件包 需手动把依赖的包安装好,才能编译通过

[root@localhost1 ~]# yum -y install httpd

安装字符界面下的浏览器客户端:elinks

[root@localhost1 ~]# yum -y install elinks

apache主配置文件

[root@localhost1 ~]# ll /etc/httpd/conf/httpd.conf

启动服务&开机自启

[root@localhost1 ~]# systemctl start httpd
[root@localhost1 ~]# systemctl enable httpd

查看端口

[root@localhost1 ~]# ss -anput | grep httpd
tcp    LISTEN     0      128      :::80                   :::*                   users:(("httpd",pid=7953,fd=4),("httpd",pid=7952,fd=4),("httpd",pid=7951,fd=4),("httpd",pid=7950,fd=4),("httpd",pid=7949,fd=4),("httpd",pid=7948,fd=4)

浏览器访问测试
在这里插入图片描述
elinks 192.168.10.230 服务端ip 按Q退出
在这里插入图片描述
主配置文件介绍

[root@localhost1 ~]# vim /etc/httpd/conf/httpd.conf 

ServerRoot “/etc/httpd”    #httpd服务的根目录
Listen 80         #监听端口,默认本地IP,如果指定IP写上IP:80
Include config.modules.d/.conf    #当前目录下conf.modules.d 这个目录下所有conf文件都生效
Options Indexes FollowSymLinks    #Options Indexes目录浏览FollowSymLinks用连接浏览
AllowOverride None #设置为 none,忽略.htaccess
Include conf.d/
.conf #conf.d 里面的 conf 文件也属有效配置文件
User apache     #运行以哪个身份运行
Group apache    #运行以哪个组的身份运行
ServerAdmin root@localhost   #管理员邮箱
DocumentRoot “/var/www/html”    #默认的主目录,如果改动要改动两处,Directory
<Directory “/var/www/html”>
Options Indexes FollowSymLinks AllowOverride None

LogLevel warn    #日志等级
AddDefaultCharset UTF-8 #支持的语言,默认编码
  #配置文件的最后是虚拟主机的字段,其中你大部分字段做个了解即可,用到的时候去查 即可

Yum的方式搭建LAMP环境

LAMP=Linux(存在)+Apache(HTTPD 已安装)+Mysql+PHP
#centos6

yum -y install httpd mysql mysql-server php php-mysql

#centos7

yum -y install httpd mariadb mariadb-server php php-mysql

mysql和mariadb是一个东西

测试数据库:

[root@localhost1 ~]# systemctl start mariadb
[root@localhost1 ~]# systemctl enable mariadb

在这里插入图片描述
测试apache是否支持php

[root@localhost1 ~]# cd /var/www/html/
[root@localhost1 html]# vim index.php
<?php 
		phpinfo(); 
?>
[root@localhost1 ~]# systemctl restart httpd

可以看到php测试页即可
类似于PHP 探针:
扩展:探针:一个PHP编写的文件,可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息,定时刷新一次。以及包括服务器IP地址,Web服务器环境监测,php等信息。

例:

修改配置文件前记得备份 以便恢复

[root@localhost1 conf]# cp httpd.conf httpd.conf.bak

设置httpd监听端口80
设置管理员E-mail地址为kill@xuegod.cn
设置web服务器的主机名和监听端口为192.168.10.230:80
设置Apache文档目录为/var/www/html
设置主页文件为index.html
设置服务器的默认编码为UTF-8

(基本都是默认)
31 ServerRoot “/etc/httpd” Apache配置文件根目录
32 Timeout 60    #添加此项,超时时间
43 Listen 80    #监听的端口
改:96 #ServerName www.example.com:80
为:96 ServerName 192.168.10.230:80   #服务器主机名
120 DocumentRoot “/var/www/html”    #网站页面根目录
145 Options Indexes FollowSymLinks    #当一个目录没有默认首页时,允许显示此目录列表
改:165 DirectoryIndex index.html
为:165 DirectoryIndex index.html index.php    #指定默认首页
317 AddDefaultCharset UTF-8    #设置服务器的默认编码为: UTF-8

取消Apache默认欢迎页

 vim /etc/httpd/conf.d/welcome.conf

#This configuration file enables the default “Welcome”

#page if there is no default index page present for
the root URL. To disable the Welcome page, comment
out all the lines below.

改:8 <LocationMatch “^/+$”>
9 Options -Indexes
10 ErrorDocument 403 /.noindex.html
11

为:8 #<LocationMatch “^/+$”> #把红色内容注释
9 # Options -Indexes
10 # ErrorDocument 403 /.noindex.html
11 #
重启
创建首页并测试

 echo "test kylin 10.230" >> /var/www/html/index.html

在这里插入图片描述
修改web网站根目录-配置别名-虚拟目录
LAMP环境,几种不同的安全访问机制的实现:

修改网站目录对应参数及权限:
修改网站默认根目录,并且设置访问权限,只有在我允许的范围之内可以访问
修改网站默认根目录

vim /etc/httpd/conf/httpd.conf
设置文档目录为/var/www/html/bbs
修改 DocumentRoot 路径为 指定的目录
改:120  DocumentRoot "/var/www/html"
为:120  DocumentRoot "/var/www/html/bbs"

允许所有人访问/var/www/html/bbs 目录

目录与访问控制:

改:132  <Directory "/var/www/html ">
为:132  <Directory "/var/www/html/bbs">      #子目录会继承这个目录的属性
	   145    Options Indexes FollowSymLinks           #Options:Indexes:目录浏览  
    152    AllowOverride None                 #Followsymlinks:可以用连接
改:157  Require all granted				#表示支持所有访问
为:157  # Require all granted
#加入如下:
     158   <RequireALL>
     159      Require ip 192.168.*.*		#允许本机IP访问
     160       Require not ip 192.168.*.*	#禁止物理机IP访问
     161   </RequireALL>
161  </Directory>
修改完需要重启httpd服务

在这里插入图片描述
Apache2.4的访问控制:
Require all granted    #允许所有
Require all denied   #拒绝所有
Require method http-method [http-method] …   #允许,特定的HTTP方法
Require user userid [ userid ] …    #允许,特定用户
Require group group-name [group-name] …   #允许,特定用户组
Require valid-user   #允许,有效用户
Require ip 10 172.20 192.168.2   #允许 特定IP和网段
Require not ip 10 172.20 192.168.2    #不允许 特定IP和网段

使用别名,引用网站根目录以外的路径
将/usr/local/virtual-dir目录通过虚拟目录功能添加到网站根目录。当访问http://服务器ip/virtual-dir时,就可以访问目录/usr/local/virtual-dir中的内容
注:Apache的别名也叫虚拟目录
语法
AliasURL路径    PATH物理路径
测试:
加入
在这里插入图片描述

Alias /vir "/usr/local/virtual-dir"
<Directory  "usr/local/virtual-dir">
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
</Directory>
[root@localhost1 var]# mkdir /usr/local/virtual-dir
[root@localhost1 var]# echo "This is virtual test dir" >> !$/index.html

在这里插入图片描述
实现Apache打开软链接功能-禁止显示目录列表-用户认证
禁止目录访问

 #Options Indexes FollowSymLinks

通过用户认证的方式,对网站下/usr/local/virtual-dir目录进行保护
设置只能通过用户名密码方式访问
在需要使用用户验证的目录和相关Directory段落添加以下内容 并注释掉 #Require all granted

Alias /vir "/usr/local/virtual-dir"
<Directory  "usr/local/virtual-dir">
            Options Indexes FollowSymLinks
            AllowOverride None
            #Require all granted
            --------------------
            authtype basic
            authname "mima yanzheng"
            authuserfile /etc/httpd/conf/passwd.m
            require valid-user
            --------------------
</Directory>

在这里插入图片描述
参数说明:
authtype basic    #authtype命令:指定认证类型为 basic
authname “******”   #AuthName命令:指定认证区域名称,区域名称是在提示要求认证的对话框中显示给用户的
authuserfile /etc/httpd/conf/passwd.m    #AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对
require命令   #指定哪些用户或组才能被授权访问 如:
require user test cat2   (只有用户test和cat2可以访问)
require valid-user     (在AuthUserFile指定的文件中任何用户都可以访问)

利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件

[root@localhost1 var]# htpasswd -cm /etc/httpd/conf/passwd.m test 
New password: 
Re-type new password: 
Adding password for user test

htpasswd中 -c为创建密码文件 -m为创建用户
添加用户不可在加-c参数 会覆盖掉之前的数据

[root@localhost1 conf]# cat passwd.m 
test:$apr1$EI0SR34d$QrqUFP9S2.LfV9cq4V9wN1
kz:$apr1$UBpleoX4$pFV2h0TBk.6QpAnVXyhCq.

测试
elinks
在这里插入图片描述
windows
在这里插入图片描述
Apache虚拟主机基于IP-域名-端口三种方式搭建
实现在一台服务器上运行多个网站
Apache虚拟主机实现有三种方法:
1、通过不同的IP地址
2、通过不同的域名
3、通过不同的端口号
三种都需要打开虚拟主机功能

一、不同IP解析不同域名
先增加一个临时IP 用于实验测试

[root@localhost1 conf]# ifconfig ens32:1 192.168.10.233 netmask 255.255.254.0

真尼玛傻逼

[root@localhost1 html]# vim /etc/httpd/conf.d/virtual.conf 

创建虚拟主机文件
写入

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/xuni1/
    ServerName www.xuni1.com
    ErrorLog logs/www.xuni1.com-error_log
    CustomLog logs/www.xuni1.com-access_log common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    ServerName www.xuni2.com
    DocumentRoot /var/www/html/xuni2/
    ErrorLog logs/www.xuni2.com-error_log
    CustomLog logs/www.xuni2.com-access_log common
</VirtualHost>

这里只写域名 IP端口很少用
测试
在这里插入图片描述
在这里插入图片描述

= =说一下 虚拟目录里面 和httpd.conf全局目录
虚拟主机的目录得在全局设定好的下面 不然尼玛的读不出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值