Linux下使用Apache搭建Web网站服务器

Linux下使用Apache搭建Web网站服务器

实验目标

apache服务器常见概念

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

实战:

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

例2:取消apache默认欢迎页:

例3:使用rpm搭建lamp 环境

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

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

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

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

实验环境

apache服务端:xuegod-63   IP:192.168.1.63

apache客户端:xuegod-64   IP:192.168.1.64

实验概述

web服务概述:

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

web服务器(web):

PHP: httpd(apache)、nginx

JAVA: tomcat   jsp + html

.net :  win: IIS

客户端:IE 、firefox、chrome 、手机(浏览器)Browser

apache 概述:

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

图标

模式:

B/S 模式

端口:

[[email protected] ~]# vim /etc/services

80: http

443:https

实验脚本

实验环境搭建

 

安装服务器端:httpd

[[email protected]~]# yum install httpd -y

[[email protected] ~]# yum install elinks –y

主配置文件

[[email protected] ~]# ls/etc/httpd/conf/httpd.conf

/etc/httpd/conf/httpd.conf

#我们又是怎么知道httpd的注配置文件是在你那里的呢?

查看httpd注配置文件位置

[[email protected] ~]# rpm -pql/mnt/Packages/httpd-2.2.15-15.el6.x86_64.rpm

/etc/httpd

/etc/httpd/conf

/etc/httpd/conf.d

/etc/httpd/conf.d/README

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

/etc/httpd/conf/httpd.conf  #这里的就是httpd的主配置文件

[[email protected]~]#  rpm -pqiopenssh-server-5.3p1-70.el6.x86_64.rpm

重新启动服务

[[email protected] ~]# service httpd restart

停止 httpd:                                              [失败]

正在启动 httpd:httpd: Could not reliably determine the server‘s fully qualified domainname, using 192.168.1.63 for ServerName                              [确定]

或者

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动httpd:httpd: Could not reliably determine the server‘s fully qualifieddomain name, using 192.168.1.63 for ServerName                              [确定]

开机加载与显示                                                        

[[email protected] ~]# chkconfig httpd on

[[email protected] ~]# chkconfig --list httpd

httpd              0:关闭      1:关闭      2:启用      3:启用      4:启用      5:启用      6:关闭

查看httpd的端口

[[email protected] ~]# netstat -anutp | grephttpd

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

#可以看到httppd的端口是80,在没有重新启动服务之前是不会出现端口号的

也可以反向查看端口

[[email protected] ~]# lsof -i:80

或者

[[email protected] ~]# netstat -anutp | grep80

此服务的使用方法

1:通过浏览器访问,直接输入网址就OK了

2:通过elinks,elinxs  192.168.1.63

 

 

实战举例

例1:

搭建一台测试web服务器

案例:

部门内部搭建一台WEB服务器,采用的IP地址和端口为192.168.1.63:80,首页采用index.html

文件。管理员E-mail地址为 [email protected],网页的编码类型采用UTF-8,所有网站资源都存放在/var/www/html目录下,并将Apache的配置文件根目录设置为/etc/httpd目录。

 

脚本步骤

[[email protected]~]# vim /etc/httpd/conf/httpd.conf

修改配置文件相关参数:

[[email protected] chroot]#vim /etc/httpd/conf/httpd.conf   #以下参数需要我们掌握

#ServerRoot"/etc/httpd"  #apache配置文件的根目录,”ServerRoot-服务主目录“

#这里是pid文件

#Timeout 60  #超时时间

#Listen 80   监听的端口,这里监听的是httpd的端口。

#[email protected]  #设置管理员,e-mail地址

#ServerName192.168.1.63:80   #服务器主机名.

# DirectoryIndexindex.html index.php   #指定默认首页

#这是他的字符

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

#DocumentRoot"/var/www/html"   #网站页面根目录

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

网页上测试

#这样就看到了测试页面,其实这个测试页面会暴露很多重要的信息,因此我们要将其关掉!

例2:取消apache默认欢迎页:

[[email protected]~]# vim /etc/httpd/conf.d/welcome.conf

#将下面的几行给注释掉

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止httpd:                                              [确定]

正在启动 httpd:                                           [确定]

修改启动页面

[[email protected] ~]# echo ‘welcome towww.xuegod.cn!‘  >/var/www/html/index.html

重新测试

删除页面

[[email protected] ~]# rm -rf /var/www/html/index.html

重新测试

例2:

使用rpm搭建lamp 环境

LAMP = linux+apache+mysql数据库+php

安装数据包

[[email protected] ~]# yum install httpdmysql-server php php-mysql -y

Httpd==阿帕奇

mysql-server==数据库

php ==php

php-mysql==php相关的插件

或者

mysql-server

rpm -ihv /mnt/Packages/perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

rpm -ihv/mnt/Packages/perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

php

rpm -ivh/mnt/Packages/php-common-5.3.3-26.el6.x86_64.rpm

rpm -ivh/mnt/Packages/php-cli-5.3.3-26.el6.x86_64.rpm

rpm -ivh /mnt/Packages/php-5.3.3-26.el6.x86_64.rpm

php-mysql

m -ivh/mnt/Packages/php-pdo-5.3.3-26.el6.x86_64.rpm

rpm -ivh/mnt/Packages/php-mysql-5.3.3-26.el6.x86_64.rpm

启动服务

[[email protected] ~]# service mysqld start

开机加载并测试

[[email protected] ~]# chkconfig mysqld on

[[email protected] ~]# mysql

#可以看到测试的数据库已经出现,用exit退出,在每一个命令后面都要加“;”。

创建一个测试页

[[email protected] ~]# vim/var/www/html/index.php  #在这下面进行编辑

<?php

phpinfo();

?>

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

测试php有没有起来

#可以看到php已经起来了

这样lamp就搭建完成了

例3:

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

 

创建目录并拷贝文件

[[email protected] ~]# mkdir /var/www/html/bbs

[[email protected] ~]# cp -r /boot/grub//var/www/html/bbs/

修改配置文件

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

测试

例4:

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

将/usr/local/phpmyadmin目录通过虚拟目录功能添加到网站根目录。当访问http://192.168.1.63/phpmyadmin/ 时,就可以访问目录/usr/local/phpmyadmin中的内容。

注:apache的别名也叫虚拟目录

语法:

Alias URL路径   PATH物理路径

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

Alias /icons/ "/var/www/icons/"

/icons/ "#引用的别名

/var/www/icons/"#真实的路径

 查看路径

创建目录与拷贝

[[email protected] ~]# mkdir/usr/local/phpmyadmin

[[email protected] ~]# cp -r /boot/grub//usr/local/phpmyadmin/

添加

[[email protected] ~]# echo "test1"> /usr/local/phpmyadmin/a.html

修改配置文件

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                               [确定]

正在启动 httpd:                                           [确定]

测试

真正的地址

[[email protected] ~]# ls/usr/local/phpmyadmin

a.html  grub

 

5

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

#现在我们是可以访问到这里的,我们要实现目标,不能够访问到这里

 

修改配置文件:

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

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

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

测试

#现在可以看到,而且已经打不开这里了

#在后面追加a.html,仍然能够打开。

例6:

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

创建一个目录并拷贝

[[email protected] ~]# ls/usr/local/phpmyadmin/

a.html grub

[[email protected] ~]# mkdir /web2

[[email protected] ~]# cp /etc/passwd /web2

创建一个软连接

[[email protected] ~]# ln -s /web2//usr/local/phpmyadmin/web2

[[email protected] ~]# ls/usr/local/phpmyadmin/

a.html grub  web2

#我们可以看到web2以被成功设置成软连接

这个时候在将主配置文件中的禁用给消除,并且重启服务

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

测试

#点击web2软连接

#有我们刚才所拷贝的passwd的文件了

例7:

通过用户认证的方式,对网站下/usr/local/phpmyadmin/目录进行保护-设置密码。 设置/usr/local/phpmyadmin/目录,只能通过用户名密码方式访问。

 

实验前

#在实验前我们是可以进入/usr/local/phpmyadmin/这里的

方法一:

修改配置文件

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

<Directory "/usr/local/phpmyadmin/">

Allow from all

authtype basic  #这些都是后添加的命令

authname "MySQL adminsoftware......."

authuserfile /etc/httpd/conf/passwd.secret

#require user tom

#require usertom bob

require valid-user

</Directory>

参数说明:                      

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

authname "MySQLadmin software......."   #请不要动我的奶酪

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

创建用户并加密

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

[[email protected]~]# htpasswd –cm #存放用户名和密码的文件名 用户名

[[email protected] ~]# htpasswd -cm/etc/httpd/conf/passwd.secret yu

New password: 123456

Re-type new password123456:

Adding password for user yu  #此用户是创建了文件和加密

[[email protected] ~]# htpasswd -m/etc/httpd/conf/passwd.secret mk

New password: 123456

Re-type new password123456:

Adding password for user mk #此用户只加了密,但没有创建文件

#在第一次创建用户的时候,需要加 “–c”的命令,是创建用户文件的意思,那么在创建第二个用户端 时候就不能在加“-c”的命令了。因为你要是在加这个命令的话,它就会默认自动的将第一个用户给取代了,也就是说最终创建完成之后,只有最后一个用户存在了。

 

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

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

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

查看一下用户信息

[[email protected] ~]# cat /etc/httpd/conf/passwd.secret

yu:$apr1$w8uubsVD$oT0TMoaeHmL4QdpP.E6OG/

mk:$apr1$7SAJo3uT$2IXlCcw4lpOmvO3Jt2itj0

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

 

查看htpasswd的命令参数

[[email protected] ~]# htpasswd -h

Usage:

-c  Create a new file. #创建文件

-n Don‘t update file; display results on stdout.

 -m Force MD5 encryption of the password. #加密码

-d Force CRYPT encryption of the password (default).

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                               [确定]

正在启动 httpd:                                           [确定]

测试

#现在我们登陆的时候都需要账户和密码才可以登录进去的 。

方法二:

实验前:

将方法一的配置文件给删掉,测试登陆不需要账户密码验证

修改配置文件

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf  #在需要使用用户验证的目录的相关Directory段落添加

 

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

[[email protected] ~]# 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

创建用户并加密

[[email protected] ~]# htpasswd -cm/etc/httpd/conf/passwd.secret xiaoyu

New password: 123456

Re-type new password:123456

Adding password for user xiaoyu

[[email protected] ~]# htpasswd -m/etc/httpd/conf/passwd.secret laoyuyu

New password: 123456

Re-type new password:123456

Adding password for user laoyuyu

查看用户信息

[[email protected] ~]# cat/etc/httpd/conf/passwd.secret

xiaoyu:$apr1$QIoDvMMg$FSjvjuQFONXrRushKtset.

laoyuyu:$apr1$uYUPxAGL$m0tBTAH47zYdkWA8Q3TVZ0

#可以看到用户都是加密的

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

测试

例8:

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

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

1、通过不同的IP地址

2、通过不同的域名

3、通过不同的端口号

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

修改配置文件---开启虚拟主机

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

改:

#NameVirtualHost *:80

为:

NameVirtualHost *:80

 

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

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

添加一个网卡并加ip地址

[[email protected] ~]# ifconfig eth0:1192.168.1.56 netmask 255.255.255.0

[[email protected] ~]# mkdir /var/www/html/bbs  #创建一个目录

将两个网址加入进去

[[email protected] ~]# echo"bbs.xuegod.cn" > /var/www/html/bbs/index.html

[[email protected] ~]# echo"www.xuegod.cn" > /var/www/html/index.html

查看

[[email protected] ~]# ls /var/www/html/

bbs index.html

 

修改配置文件

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [失败]

正在启动 httpd:[Fri Aug 21 18:28:24 2015] [warn] NameVirtualHost *:80 has no VirtualHosts

[确定]

测试

#在方法1.1中是具有缺陷的,它是比较占网络资源的。

方法二:通过不同域名:

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

修改配置文件—在方法一的配置文件基础之上进行修改

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf

修改的脚本如下

DocumentRoot /var/www/html/

    ServerName www.xuegod.cn

    ErrorLoglogs/www.xuegod.cn-error_log

    CustomLoglogs/www.xuegod.cn-access_log common

<VirtualHost *:80>

    [email protected]

    DocumentRoot /var/www/html/bbs/

    ServerName bbs.xuegod.cn

    ErrorLoglogs/bbs.xuegod.cn-error_log

    CustomLoglogs/bbs.xuegod.cn-access_log common

Hosts进行解析ip

重启服务

[[email protected] ~]# /etc/init.d/httpdrestart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

测试

在windows下

 

路径如下

以文本的格式打开,在后面添加

注:对于这个文本文件在没有给权限之前是无法保存的,所以要点击属性,中找到安全,给权限!

 

测试

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

修改配置文件

[[email protected] conf]# vim/etc/httpd/conf/httpd.conf

改:

Listen   80  
为:

Listen   80

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

重启服务

[[email protected] ~]#/etc/init.d/httpd restart

停止 httpd:                                              [确定]

正在启动 httpd:                                           [确定]

测试

时间: 2024-08-02 06:49:58

Linux下使用Apache搭建Web网站服务器的相关文章

使用Apache搭建Web网站服务器

  使用Apache搭建Web网站服务器 一:实验目标 apache服务器常见概念 apache服务器安装及相关配置文件 例1:为公司内网搭建一个web服务器 例2:使用rpm搭建lamp 环境 例3:修改网根目录及对应参数,设置访问权限 例4,:使用别名,引用网站根目录以外的路径. 例5:打开软链接功能. 通过软件链接直接引用网站根目录以外的内容 例6:当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/禁止显示目录列表 例7:通过用户认证的方式,对网

转:Linux下使用Nginx搭建简单图片服务器

最近经常有人问图片上传怎么做,有哪些方案做比较好,也看到过有关于上传图片的做法,但是都不是最好的,今天再这里简单讲一下Nginx实现上传图片以及图片服务器的大致理念. 如果是个人项目或者企业小项目,仅仅只有十来号人使用的小项目,可以使用如下方案: 用户访问系统,使用上传图片功能,那么图片就上传到你的当前项目所在的tomcat服务器上,在/image下,上传成功后用户可以直接访问 http://ip:port/project/images/xxx.jpg 这样做在用户少的时候是没有问题的 当你的企

2-19-使用apache搭建web网站

1 搭建一台测试web服务器 案例: 部门内部搭建一台WEB服务器,采用的IP地址和端口为192.168.10.34:80,首页采用index.html 文件.管理员E-mail地址为 [email protected],网页的编码类型采用UTF-8,所有网站资源都存放在/var/www/html目录下,并将Apache的配置文件根目录设置为/etc/httpd目录. [[email protected] ~]#yum -yinstall httpd [[email protected] ~]#

linux下SVN+apache搭建

下载包wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.11.tar.gzwget http://subversion.tigris.org/downloads/subversion-1.5.3.tar.gz 1. 编译apachetar zxvf httpd-2.2.11.tar.gzcd  httpd-2.2.11./configure   --enable-dav --enable-dav-fs --enable-so   -

Linux下使用Apache的Httpd+Mod_jk+Tomcat搭建Web集群服务

Linux下使用Apache的Httpd+Mod_jk+Tomcat搭建Web集群服务 目的 ?? 使用多个tomcat服务器来对请求进行分流,防止单个服务器压力过重.这里为了简单,只使用两个tomcat. 软件 apache httpd-2.2.31(下载地址:https://httpd.apache.org/download.cgi) apache tomcat-7.0.69(下载地址:https://tomcat.apache.org/download-70.cgi) tomcat-con

linux下搭建HTTP网站服务器和网站日志分析工具AWStats的使用

服务器IP地址:192.168.4.5 服务器主机名:srv5.tarena.com 1.在服务器端安装httpd软件包 [[email protected] /]# yum -y install httpd [[email protected] /]# service httpd start [[email protected] /]# chkconfig httpd on 2.在客户机端验证 在浏览器中输入192.168.4.5 如果显示欢迎页面表示服务器搭建成功 3.部署网页文档 首先将欢

基于centos 7搭建Nginx网站服务器(包含虚拟web主机的配置)

Nginx专为性能优化而开发,其最大的优点就是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力,单台物理服务器可支持20000~50000个并发请求,正是如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供web服务,目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生

Linux web 网站服务器 虚拟主机

Linux  web 网站服务器  虚拟主机

在Linux上用Apache搭建Git服务器

在Linux上用Apache搭建Git服务器 最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下. 服务器:阿里云服务器 Linux版本:CentOS 6.5 Apache版本:Apache/2.2.15 Git版本:git 1.7.1 Git访问方式:基于http的基本验证(非SSL) Apache的安装 1. 安装Apache软件:yum install httpd 2. 设置Apache在服务器启动时运行:chkconfig --levels 235 h