阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Apache搭建Web网站服务器

130次阅读
没有评论

共计 10604 个字符,预计需要花费 27 分钟才能阅读完成。

一:实验目标

 apache 服务器常见概念

 apache 服务器安装及相关配置文件

1:为公司内网搭建一个 web 服务器

2 使用rpm 搭建 lamp 环境

3:修改网根目录及对应参数,设置访问权限

4, 使用别名,引用网站根目录以外的路径。

5:打开软链接功能。 通过软件链接直接引用网站根目录以外的内容

6: 当一个目录下没有默认首页时,访问 http://192.168.1.63/phpmyadmin/ 禁止显示目录列表

7:通过用户认证的方式,对网站下/usr/local/phpmyadmin/ 目录进行保护。

8 配置apache 虚拟主机,实现在一台服务器上运行多个网站

 

二:实验环境

服务端:xuegod63.cn   IP:192.168.1.63

客户端:xuegod64.cn   IP:192.168.1.64

三:实验步骤

一:相关服务概述

Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。

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

模式: B/S 模式,服务的端口为:80:http  443:https

  Apache 中,其配置文件目录为“/etc/httpd/conf/httpd.conf”,这里面包括设置网站资源的存放目录及一些相关的配置。

二:服务安装及相关配置详解

1:安装 httpd 服务器

1.1:安装服务器端:httpd 及测试工具

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

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

[root@xuegod63 ~]# yum install httpd-devel -y

[root@xuegod63 Packages]# yum install elinks  -y

1.2 启动服务

[root@xuegod63 ~]# service httpd restart

[root@xuegod63 ~]# chkconfig httpd on

1.3:查看端口

[root@xuegod63 ~]# netstat -anutp | grep 80

tcp        0      0 :::80            :::*            LISTEN      3854/httpd

 

2:服务相关配置文件

2.1:查看目录下相关文件作用

[root@xuegod63 httpd]# pwd

/etc/httpd

[root@xuegod63 httpd]# ls

conf  conf.d  logs  modules  run

注释:

Conf 是存放服务的主配置文件

conf.d 是存放 apache 的主页面信息

2.2:查看 配置信息

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

1)apache 服务器的外部相关配置内容

ServerRoot “/etc/httpd”  #apache 配置文件的根目录

Timeout 60  #超时时间,即连接服务端在 60 秒内没有任何操作,即自动断开

Listen 80   #监听的端口

ServerAdmin root@localhost  #设置管理员,e-mail 地址

ServerName www.example.com:80  #服务器主机名.

2)apache 服务器的主配置内容

DocumentRoot “/var/www/html”   #网站页面根目录, 存放文档的地方

<Directory “/var/www/html”> 

Options Indexes FollowSymLinks #O 目录浏览 #Followsymlinks: 可以用连接 要是想要禁止显示文件目录,可以直接在‘indexes’前加‘-’。

    AllowOverride None

    Order allow,deny #目录与访问的控制

    Allow from all 

</Directory>

注释:Allow,Deny 都会读取,如果有冲突和未说明的时候按照 Order 选项逗号后面的那个为准。

谁写到后面,谁的优先级高。

3)别名功能,引用网站根目录以外的路径。

Alias /icons/ “/var/www/icons/” #别名和别名目录

<Directory “/var/www/icons”>

    Options Indexes MultiViews FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

4)网站没有默认首页的时候显示的内容

</Directory> Options Indexes  #当一个目录没有默认首页时,允许显示此目录列表

<Directory />

    Options FollowSymLinks

    AllowOverride None

</Directory>

DirectoryIndex index.html index.html.var #指定默认首页

AddDefaultCharset UTF-8   #设置服务器的默认编码为:UTF-8

 

三:实战

实战1:

1:实验要求

首先取消 apache 默认欢迎页,改为“welcome to www.xuegod.cn”,使用 rpm 搭建 lamp 环境,修改网根目录及对应参数,设置访问权限,允许 1.0 网段和百度来访问,不允许 2.0 网段访问。使用别名功能,引用网站根目录以外的路径。将/usr/local/phpmyadmin  目录通过虚拟目录功能添加到网站根目录。当访问 http://192.168.1.63/phpmyadmin/  时,就可以访问目录 /usr/local/phpmyadmin 中的内容。

2:实验步骤

1:为公司内网搭建一个 web 服务器 

1apache 默认欢迎页如下图所示,其欢迎页的默认目录为“/etc/httpd/conf.d/welcome.conf

使用 Apache 搭建 Web 网站服务器 

2取消 apache 默认欢迎页: 它会显示目录,列表,图标

[root@xuegod63 ~]# vim /etc/httpd/conf.d/welcome.conf

#<LocationMatch “^/+$”>   #把红色内容注释

#    Options -Indexes

#    ErrorDocument 403 /error/noindex.html

#</LocationMatch>

[root@xuegod63 ~]# service httpd restart

使用 Apache 搭建 Web 网站服务器 

3重新创建首页并重启服务

[root@xuegod63 conf.d]# echo ‘welcome to www.xuegod.cn!’ > /var/www/html/index.html

[root@xuegod63 ~]# service httpd restart

试:

使用 Apache 搭建 Web 网站服务器 

 

 

2: 使用rpm 搭建 lamp 环境

LAMP 环境是由多个数据包共同搭建完成的,LAMP = linux+apache+mysql 数据库 +php,搭建完成之后,最终会支持 php

1:安装相应的软件包

[root@xuegod63 ~]# yum install httpd  mysql-server php php-mysql -y

[root@xuegod63 ~]# service mysqld start

[root@xuegod63 ~]# chkconfig mysqld on

2:编写 php 首页文档

[root@xuegod63 html]# cd  /var/www/html/

[root@xuegod63 html]# vim index.php

<?php

phpinfo();

?>

[root@xuegod63 html]# service httpd restart

3:测试apache 是否支持 php

使用 Apache 搭建 Web 网站服务器 

 

3:修改网页根目录及对应参数,设置访问权限

1):创建 目录并拷贝数据

[root@xuegod63 html]# mkdir bbs

[root@xuegod63 html]# cp -r /boot/grub/ bbs/

[root@xuegod63 bbs]# cp /etc/passwd   /var/www/html/bbs/

 

2):修改 Apache 主配置文件,给其权限

[root@xuegod63 html]# vim /etc/httpd/conf/httpd.conf

改:#DocumentRoot /var/www/html

为:DocumentRoot /var/www/html/bbs

 

<Directory “/var/www/html/bbs”>      

    Options  FollowSymLinks

    Order allow,deny

    #Allow from all

    allow from 192.168.1.0/24

    deny from 192.168.2.0/24

    allow from .baidu.com

</Directory>

#Allow,Deny 都会读取,如果有冲突和未说明的时候按照 Order 选项逗号后面的那个为准。

谁写到后面,谁的优先级高。

 

3)重启测试

[root@xuegod63 conf]# service httpd restart

使用 Apache 搭建 Web 网站服务器 

4: 使用别名功能,引用网站根目录以外的路径

在这里 /phpmyadmin/ “/usr/local/phpmyadmin/  引用别名功能,实现访问别名直接能够充分从网页根目录进行访问。所谓的别名功能指的就是跳板原理,将网站根目录与新创建的目录关联起来。当方位新目的之手,直接从新目录跳转到网站的根目录,从而访问到网站的根目录。

   创建别名目录,拷贝数据并创建网页首页面

[root@xuegod63 ~]# mkdir /usr/local/phpmyadmin

[root@xuegod63 ~]# cp -r /boot/grub/ /usr/local/phpmyadmin/

[root@xuegod63 ~]# echo “wecome to my test” > /usr/local/phpmyadmin/test.html

 

修改 Apache 服务器的主配置文件

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

使用 Apache 搭建 Web 网站服务器 

注:Alias /phpmyadmin/ “/usr/local/phpmyadmin/”     #/phpmyadmin/ 可以随意起。比如改 /phpmyadmin/ /php/  则访问链接:http://192.168.1.63/php

 

测试

[root@xuegod63 ~]# service httpd restart

 

使用 Apache 搭建 Web 网站服务器

使用 Apache 搭建 Web 网站服务器

 

 

注释:这里做的时候即使不显示内容,也是正常的。

 

实战2

5:打开软链接功能。 通过软件链接直接引用网站根目录以外的内容

6,当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/ 禁止显示目录列表

7:通过用户认证的方式,对网站下/usr/local/phpmyadmin/ 目录进行保护。

1:实验要求

当一个目录下没有默认首页时,访问 http://192.168.1.63/phpmyadmin/ 禁止显示目录列表

修改配置文件。在打开软链接功能。 通过软件链接直接引用网站根目录以外的内容。通过用户认证的方式,对网站下 /usr/local/phpmyadmin/ 目录进行保护。 设置 /usr/local/phpmyadmin/ 目录,只能通过用户名密码方式访问。

 

2:实验步骤

1)禁止显示目录列表

[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf  # 修改红色标记内容

Alias /phpmyadmin/ “/usr/local/phpmyadmin/”

<Directory “/usr/local/phpmyadmin/”>

    Options -Indexes FollowSymLinks   # 在 Indexes 前加 - 减号,此目录下没有默认首页时,禁止显示目录

    AllowOverride None

Order deny,allow

    Allow from all

</Directory>

测试

[root@xuegod63 ~]# service httpd restart

使用 Apache 搭建 Web 网站服务器 

3)通过软件链接直接引用网站根目录以外的内容

[root@xuegod63 html]# mkdir /web2

[root@xuegod63 html]# echo “welcome to the test1” > /web2/b.html

[root@xuegod63 html]#  ln -s /web2   /var/www/html/web2 #ln创建软连接,s指原目标

[root@xuegod63 html]#  vim /etc/httpd/conf/httpd.conf

<Directory “/var/www/html/bbs”>

    Options Indexes FollowSymLinks #默认开启

</Directory>

 

测试

[root@xuegod63 ~]# service httpd restart

使用 Apache 搭建 Web 网站服务器 

3)通过用户认证的方式

方法一:

[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf   #在需要使用用户验证的目录的相关 Directory 段落添加以下红色标记内容:

 

Alias /phpmyadmin/ “/usr/local/phpmyadmin/”

<Directory “/usr/local/phpmyadmin/”>

    Options Indexes FollowSymLinks

    AllowOverride None

    Order deny,allow

    Allow from all

    authtype basic

    authname “MySQL admin software…….”

    authuserfile /etc/httpd/conf/passwd.secret

    #require user tom

    #require user tom bob

    require valid-user

</Directory>

 

参数说明:

authtype basic  # 1)authtype 命令:指定认证类型 为:basic。

authname “MySQL admin software…….”   #请不要动我的奶酪

#  AuthName 命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的 。如

使用 Apache 搭建 Web 网站服务器 

authuserfile /etc/httpd/conf/passwd.secret  #AuthUserFile 命令:指定一个包含用户名和密码的文本文件,每行一对。

require 命令:指定哪些用户才能被授权访问。如:

require user user1 user2(只有用户 user1 和 user2 可以访问)

require valid-user (在 AuthUserFile 指定的文件中任何用户都可以访问)

 

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

[root@xuegod63 phpmyadmin]# htpasswd -h   #查看参数

-c  Create a new file.

-m  Force MD5 encryption of the password.

[root@xuegod63 conf]# htpasswd -cm 存放用户名和密码的文件名   用户名

[root@xuegod63 conf]# htpasswd -cm /etc/httpd/conf/passwd.secret tom

New password: 123456

Re-type new password: 123456

Adding password for user tom

# 第一个生成用户名和密码,需要创建文件,因此需要加 - c 参数

[root@xuegod63 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob

New password: 123456

Re-type new password: 123456

Adding password for user bob

 

测试:

[root@xuegod63 conf]# service httpd restart

http://192.168.1.63/phpmyadmin/

使用 Apache 搭建 Web 网站服务器 

注释:这里记得把之前写的“禁止显示目录列表”的‘’给去掉。

 

 

方法二:

#vim httpd.conf    #在需要使用用户验证的目录的相关 Directory 段落添加

Alias /phpmyadmin/ “/usr/local/phpmyadmin/”

<Directory “/usr/local/phpmyadmin/”>

    Options Indexes FollowSymLinks

    AllowOverride None

    Order deny,allow

    Allow from all

    AllowOverride AuthConfig

 

</Directory>

# AllowOverride AuthConfig 一行表示允许对 /usr/local/phpmyadmin/ 目录下的文件进行用户认证。

 

在要保护的目录下创建一个存放 进行用户认证 信息的文件:

[root@xuegod63 conf]# vim /usr/local/phpmyadmin/.htaccess  #写入以下内容

authtype basic

authname “MySQL admin software by .htaccess”

authuserfile /etc/httpd/conf/passwd.secret

#require user tom

require valid-user

 

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

[root@xuegod63 conf]# htpasswd -cm /etc/httpd/conf/passwd.secret tom

New password: 123456

Re-type new password: 123456

Adding password for user tom

 

[root@xuegod63 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob

New password: 123456

Re-type new password: 123456

Adding password for user bob

[root@xuegod63 conf]# cat /etc/httpd/conf/passwd.secret   #查看内容

tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf.

bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0

 

[root@xuegod63 conf]# service httpd restart

测试:

http://192.168.1.63/phpmyadmin/

使用 Apache 搭建 Web 网站服务器 

 

8,配置 apache 虚拟主机,实现在一台服务器上运行多个网站

apache 虚拟主机实现有三种方法:

1、通过不同的 IP 地址

2、通过不同的域名

3、通过不同的端口号

 

三种都需要把虚拟主机功能打开:

[root@xuegod63 html]# vim /etc/httpd/conf/httpd.conf  

改:#NameVirtualHost *:80

为:NameVirtualHost *:80

 

方法1:1、通过不同的 IP 地址,解析不同域名

1)给服务器增加IP(另一个域名解析出来的那个 IP)

[root@xuegod63 ~]##ifconfig eth0:1 192.168.1.56 netmask 255.255.255.0

[root@xuegod63 ~]## mkdir  /var/www/html/bbs/

[root@xuegod63 ~]# echo “bbs.xuegod.cn”  > /var/www/html/bbs/index.html

[root@xuegod63 ~]# echo “www.xuegod.cn”  > /var/www/html/index.html

 

2)修改httpd.conf

#vim httpd.conf   在文件的最后,添加以下内容

<VirtualHost 192.168.1.63:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html/

    ServerName dummy-host.example.com

    ErrorLog logs/dummy-host.example.com-error_log

    CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

<VirtualHost 192.168.1.56:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html/bbs/

    ServerName dummy-host.example.com

    ErrorLog logs/dummy-host.example.com-error_log

    CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

 

3)测试:

[root@xuegod63 conf]# service httpd restart

http://192.168.1.56/  bbs.xuegod.cn

http://192.168.1.63/  www.xuegod.cn

 

方法二:通过不同域名:

在域名管理后台,修改DNS 配置,www.xuegod.com 与 bbs.xuegod.com 解析成相同的 IP。

 

1)修改httpd.conf

#vim httpd.conf

<VirtualHost *:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html/

    ServerName www.xuegod.cn

    ErrorLog logs/www.xuegod.cn-error_log

    CustomLog logs/www.xuegod.cn-access_log common

</VirtualHost>

<VirtualHost *:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html/bbs/

    ServerName bbs.xuegod.cn

    ErrorLog logs/bbs.xuegod.cn-error_log

    CustomLog logs/bbs.xuegod.cn-access_log common

</VirtualHost>

 

2)添加主机域名

[root@xuegod63 ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.63   xuegod63.cn

192.168.1.63   www.xuegod.cn

192.168.1.63   bbs.xuegod.cn

192.168.1.64   xuegod64.cn

 

3)测试:

[root@xuegod63 conf]# service httpd restart

[root@xuegod63 ~]# elinks www.xuegod.cn

[root@xuegod63 ~]# elinks bbs.xuegod.cn

 

使用 Apache 搭建 Web 网站服务器

使用 Apache 搭建 Web 网站服务器

 

 

方法 :基于端口配置虚拟主机:

[root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf   

改: Listen   80  
为:Listen   80  

    Listen   81  #  更改为你要添加的 多个 端口

 

1)再建立 两个 虚拟主机: 

   [root@xuegod63 conf]# vim /etc/httpd/conf/httpd.conf   #  在文件的最后添加

<VirtualHost *:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html/

    ServerName www.example.com

    ErrorLog logs/www.example.com-error_log

    CustomLog logs/www.example.com-access_log common

</VirtualHost>

<VirtualHost *:81>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /var/www/html/bbs/

    ServerName bbs.example.com

    ErrorLog logs/bbs.example.com-error_log

    CustomLog logs/bbs.example.com-access_log common

</VirtualHost>

 

2)

测试:

[root@xuegod63 conf]# service httpd restart

http://192.168.1.63/

http://192.168.1.63:81/

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143468.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计10604字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中