共计 13698 个字符,预计需要花费 35 分钟才能阅读完成。
什么是 Apache?
Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。该协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。需要满足的条件也和 BSD 类似。
Apache 主要特点
1、开放源代码、跨平台应用
2、支持多种网页编程语言
3、模块化设计、运行稳定、良好的安全性
Apache 软件版本
1.X
1、目前最高版本是 1.3,运行稳定
2、向下兼容性较好,但缺乏一些较新的功能
2.X
1、目前主要包括 2.0 和 2.2 两个版本
2、具有更多的功能特性
3、与 1.X 相比,配置管理风格存在较大差异
Apache 编译安装的优点
1、具有较大的自由度,功能可定制
2、可及时获得最新的软件版本
3、普遍适用于大多数 Linux 版本,便于移植使用
一:实验要求
1:学会编译安装 httpd 服务器
2:熟悉 httpd 服务的部署过程及常见配置
3:学会构建 AWStats 日志分析系统
4:httpd 服务的访问控制
客户机的地址限制
用户授权限制
5:构建虚拟 WEB 主机
基于域名的虚拟主机
基于 IP 地址、端口的虚拟主机
二:实验环境
1: 需要的软件包
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
httpd-2.4.25.tar.gz
2:搭建服务器的环境
RHEL6.5 版本
IP 地址:192.168.1.63 255.255.255.0
配置好 yum 仓库
三:实验代码
第一块:搭建 apache 服务器
主要目录和文件:
服务目录:/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
第 1 步:卸载 httpd 软件及相关软件包
[root@linuxidc ~]# rpm -e httpd httpd-manual webalizer subversion mod_Python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot –nodeps
注释:–nodeps 是强制接触依赖关系
第 2 步:检查手工编译需要的 4 中软件包是否安装
[root@linuxidc ~]# rpm -q gcc
gcc-4.4.7-4.el6.x86_64
[root@linuxidc ~]# rpm -q gcc-c++
gcc-c++-4.4.7-4.el6.x86_64
[root@linuxidc ~]# rpm -q make
make-3.81-20.el6.x86_64
[root@linuxidc ~]# yum install pcre-devel -y
第 3 步:解压软件包
[root@linuxidc ~]# tar zxvf httpd-2.4.25.tar.gz -C /opt/
[root@linuxidc ~]# tar -zxvf apr-1.5.2.tar.gz -C /opt/
[root@linuxidc ~]# tar -zxvf apr-util-1.5.4.tar.gz -C /opt/
[root@linuxidc opt]# cp -r apr-1.5.2/ httpd-2.4.25/srclib/apr
[root@linuxidc opt]# cp -r apr-util-1.5.4/ httpd-2.4.25/srclib/apr-util
注释:解压后复制到 httpd 的 srclib 解压目录中(不带版本号)
第 4 步:源码编译安装 Apache
[root@linuxidc ~]# cd /opt/httpd-2.4.25/
[root@linuxidc httpd-2.4.25]# ./configure \ #源码
–prefix=/usr/local/apache \
–enable-so \
–enable-rewrite \
–enable-mods-shared=most \
–with-mpm=worker \
–disable-cgid \
–disable-cgi
[root@linuxidc httpd-2.4.25]# echo $?
0
[root@linuxidc httpd-2.4.25]# make -j 4 #编译,将编译程序变为可执行程序
[root@linuxidc httpd-2.4.25]# make install #安装
参数解释:
–prefix= // 来指定安装路径
–enable-so // 该参数表示支持用 mod_so 模块提供的功能,用 LoadModule 在 httpd.conf 文件或包含的 conf 文件中动态加载某个模块。让 Apache 可以支持 DSO 模式
–enable-rewrite // 支持 URL 重写
–enable-mods-shared=most // 选项:告诉编译器将所有标准模块都动态编译为 DSO 模块。
–with-mpm=worker // 让 apache 以 worker 方式运行
–with-mpm=worker // 该参数是配置 apache 将以何种模式编译的。Apache 网站文档指出不同操作系统下的不同的默认模式.
–disable-cgid // 禁止用一个外部 CGI 守护进程执行 CGI 脚本
–disable-cgi // 禁止编译 CGI 版本的 PHP
第 5 步:命令链接到 PATH 变量并且管理 service
[root@linuxidc httpd-2.4.25]# ls /usr/local/apache/bin/apachectl #检查 apachectl 命令
/usr/local/apache/bin/apachectl
[root@linuxidc httpd-2.4.25]# echo $PATH #查看 PATH 变量
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
注释:Linux 系统中所有的命令都是放在 PATH 变量中的,可以放在 /usr/local//sbin 或者 /usr/local//bin 下。
[root@linuxidc httpd-2.4.25]# ln -s /usr/local/apache/bin/* /usr/local/bin/
[root@linuxidc httpd-2.4.25]# ls -l /usr/local/bin/apachectl /usr/local/bin/httpd
lrwxrwxrwx 1 root root 31 3 月 9 17:32 /usr/local/bin/apachectl -> /usr/local/apache/bin/apachectl
lrwxrwxrwx 1 root root 27 3 月 9 17:32 /usr/local/bin/httpd -> /usr/local/apache/bin/httpd
注释:优化路径,将 /usr/local/apache/bin/ 下的所有命令内容链接到 PATH 变量中的路径下。
只有将命令链接到 PATH 变量的路径中,命令才可以被使用。
[root@linuxidc httpd-2.4.25]# grep -v “#” /usr/local/apache/bin/apachectl > /etc/init.d/httpd
[root@linuxidc httpd-2.4.25]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server.
[root@linuxidc httpd-2.4.25]# chmod +x /etc/init.d/httpd
[root@linuxidc httpd-2.4.25]# chkconfig –add httpd
[root@linuxidc httpd-2.4.25]# chkconfig –list httpd
httpd 0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭
注释:使程序可以使用 service 管理,”service 管理的命令都在 /etc/init.d/ 这个目录下的 ”。如果是 rpm 命令安装的软件包就不需要使用 service 命令管理,可以直接执行 service 命令,但是手工源码编译的软件包,程序就不可以直接执行 service 命令。
第 6 步:将配置文件链接到 /etc 下
[root@linuxidc httpd-2.4.25]# ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
[root@linuxidc httpd-2.4.25]# vim /etc/httpd.conf
ServerName www.example.com:80
[root@linuxidc httpd-2.4.25]# service httpd start #启动服务没有效果
[root@linuxidc httpd-2.4.25]# netstat -anutp | grep http #监听 http 服务
tcp 0 0 :::80 :::* LISTEN 32974/httpd
第 7 步:物理机验证 http 服务
[root@linuxidc httpd-2.4.25]# service iptables stop #关闭防火墙
[root@linuxidc httpd-2.4.25]# cd /usr/local/apache/ #
[root@linuxidc apache]# cat htdocs/index.html
<html><body><h1>It works!</h1></body></html>
注释:在 /usr/local/apache/htdocs/ 下存放着 apache 服务自带的 index。Html 网页,用于验证,次服务是否启动成功,在此目录下,可以创建更多的网页文件。
[root@linuxidc htdocs]# vim a.html 创建一个新的网页
<html>
<body>
<h1>This is my first homepage!!!!——mobanche !</h1>
<h2>——–Welcome my homepage———-</h2>
</body>
</html>
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-03/141687p2.htm
第二块:Httpd 服务访问控制
作用:
控制对网站资源的访问
为特定的网站目录添加访问授权
常用访问控制方式:
客户机地址限制
用户授权限制
第 1 步:共享虚拟目录
[root@linuxidc ~]# vim /etc/httpd.conf
Include conf.d/*.conf #在主配置文件末尾增加。
注释:httpd.conf 是 apache 服务器的主配置文件,由于内容过多,不易查看,因此初见一个子主配置文件,当主配置文件读完之后就开始读子主配置文件,所以直接在子配置文件中修改配置文件。
[root@linuxidc ~]# cd /usr/local/apache/ #切换至服务目录
[root@linuxidc apache]# mkdir conf.d #创建子主配置文件目录
[root@linuxidc apache]# cd conf.d/
[root@linuxidc conf.d]# vim vdir.conf #创建子主配置文件
Alias /doc/ “/usr/share/doc/” #定义虚拟目录 doc,物理共享路径在 /usr/share/doc/
<Directory “/usr/share/doc”> #定义这个目录的权限如下内容
Options Indexes MultiViews FollowSymLinks #固定模式
AllowOverride None #固定的不允许重写
Order allow,deny #先允许,后拒绝
Allow from all #允许从任何客户机访问
Require all granted #对这个目录给予授权,这是 6.0 手动编译安装的 apache 时,定义被访问目录的权限
</Directory>
[root@linuxidc conf.d]# service httpd restart
第 2 步:共享目录授权访问
[root@linuxidc conf.d]# vim vdir.conf #修改子主配置文件
Alias /man/ “/usr/share/man/” #共享出去的目录和共享出去的别名
<Directory “/usr/share/man/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthName “**********welcome*********” #定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示
AuthType Basic #设置认证的类型,basic 为基本的认证
AuthUserFile /usr/local/apache/user #设置用于保存用户账号、密码的认证文件
路径(htpasswd)
require valid-user #要求只有认证文件中的合法用户才能访问。valid-user 表示所有合法用户 #Require all granted
</Directory>
[root@linuxidc conf.d]# htpasswd -c /usr/local/apache/user test #创建用户认证的数据库
New password: 123456
Re-type new password:123456
Adding password for user test
注意:htpasswd 命令指的是创建用户认证的数据库中的用户名称和密码,‘-c’指的是创建用户认证的数据库的路径。第一次创建需要加‘-c’,第二次以后就不需要了。
[root@linuxidc conf.d]# htpasswd /usr/local/apache/user jack
New password: 456789
Re-type new password:456789
Adding password for user jack
[root@linuxidc conf.d]# cat /usr/local/apache/user
test:$apr1$KQuygE7p$H7qBAPM5Z2V0SXrWfTFlo0
jack:$apr1$spCSLlRw$WYGcMNUbYqXUQZNkoMXcm1
[root@linuxidc conf.d]# service httpd restart
什么是 Apache?
Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。该协议和 BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。需要满足的条件也和 BSD 类似。
Apache 主要特点
1、开放源代码、跨平台应用
2、支持多种网页编程语言
3、模块化设计、运行稳定、良好的安全性
Apache 软件版本
1.X
1、目前最高版本是 1.3,运行稳定
2、向下兼容性较好,但缺乏一些较新的功能
2.X
1、目前主要包括 2.0 和 2.2 两个版本
2、具有更多的功能特性
3、与 1.X 相比,配置管理风格存在较大差异
Apache 编译安装的优点
1、具有较大的自由度,功能可定制
2、可及时获得最新的软件版本
3、普遍适用于大多数 Linux 版本,便于移植使用
一:实验要求
1:学会编译安装 httpd 服务器
2:熟悉 httpd 服务的部署过程及常见配置
3:学会构建 AWStats 日志分析系统
4:httpd 服务的访问控制
客户机的地址限制
用户授权限制
5:构建虚拟 WEB 主机
基于域名的虚拟主机
基于 IP 地址、端口的虚拟主机
二:实验环境
1: 需要的软件包
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
httpd-2.4.25.tar.gz
2:搭建服务器的环境
RHEL6.5 版本
IP 地址:192.168.1.63 255.255.255.0
配置好 yum 仓库
三:实验代码
第一块:搭建 apache 服务器
主要目录和文件:
服务目录:/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
第 1 步:卸载 httpd 软件及相关软件包
[root@linuxidc ~]# rpm -e httpd httpd-manual webalizer subversion mod_Python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot –nodeps
注释:–nodeps 是强制接触依赖关系
第 2 步:检查手工编译需要的 4 中软件包是否安装
[root@linuxidc ~]# rpm -q gcc
gcc-4.4.7-4.el6.x86_64
[root@linuxidc ~]# rpm -q gcc-c++
gcc-c++-4.4.7-4.el6.x86_64
[root@linuxidc ~]# rpm -q make
make-3.81-20.el6.x86_64
[root@linuxidc ~]# yum install pcre-devel -y
第 3 步:解压软件包
[root@linuxidc ~]# tar zxvf httpd-2.4.25.tar.gz -C /opt/
[root@linuxidc ~]# tar -zxvf apr-1.5.2.tar.gz -C /opt/
[root@linuxidc ~]# tar -zxvf apr-util-1.5.4.tar.gz -C /opt/
[root@linuxidc opt]# cp -r apr-1.5.2/ httpd-2.4.25/srclib/apr
[root@linuxidc opt]# cp -r apr-util-1.5.4/ httpd-2.4.25/srclib/apr-util
注释:解压后复制到 httpd 的 srclib 解压目录中(不带版本号)
第 4 步:源码编译安装 Apache
[root@linuxidc ~]# cd /opt/httpd-2.4.25/
[root@linuxidc httpd-2.4.25]# ./configure \ #源码
–prefix=/usr/local/apache \
–enable-so \
–enable-rewrite \
–enable-mods-shared=most \
–with-mpm=worker \
–disable-cgid \
–disable-cgi
[root@linuxidc httpd-2.4.25]# echo $?
0
[root@linuxidc httpd-2.4.25]# make -j 4 #编译,将编译程序变为可执行程序
[root@linuxidc httpd-2.4.25]# make install #安装
参数解释:
–prefix= // 来指定安装路径
–enable-so // 该参数表示支持用 mod_so 模块提供的功能,用 LoadModule 在 httpd.conf 文件或包含的 conf 文件中动态加载某个模块。让 Apache 可以支持 DSO 模式
–enable-rewrite // 支持 URL 重写
–enable-mods-shared=most // 选项:告诉编译器将所有标准模块都动态编译为 DSO 模块。
–with-mpm=worker // 让 apache 以 worker 方式运行
–with-mpm=worker // 该参数是配置 apache 将以何种模式编译的。Apache 网站文档指出不同操作系统下的不同的默认模式.
–disable-cgid // 禁止用一个外部 CGI 守护进程执行 CGI 脚本
–disable-cgi // 禁止编译 CGI 版本的 PHP
第 5 步:命令链接到 PATH 变量并且管理 service
[root@linuxidc httpd-2.4.25]# ls /usr/local/apache/bin/apachectl #检查 apachectl 命令
/usr/local/apache/bin/apachectl
[root@linuxidc httpd-2.4.25]# echo $PATH #查看 PATH 变量
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
注释:Linux 系统中所有的命令都是放在 PATH 变量中的,可以放在 /usr/local//sbin 或者 /usr/local//bin 下。
[root@linuxidc httpd-2.4.25]# ln -s /usr/local/apache/bin/* /usr/local/bin/
[root@linuxidc httpd-2.4.25]# ls -l /usr/local/bin/apachectl /usr/local/bin/httpd
lrwxrwxrwx 1 root root 31 3 月 9 17:32 /usr/local/bin/apachectl -> /usr/local/apache/bin/apachectl
lrwxrwxrwx 1 root root 27 3 月 9 17:32 /usr/local/bin/httpd -> /usr/local/apache/bin/httpd
注释:优化路径,将 /usr/local/apache/bin/ 下的所有命令内容链接到 PATH 变量中的路径下。
只有将命令链接到 PATH 变量的路径中,命令才可以被使用。
[root@linuxidc httpd-2.4.25]# grep -v “#” /usr/local/apache/bin/apachectl > /etc/init.d/httpd
[root@linuxidc httpd-2.4.25]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server.
[root@linuxidc httpd-2.4.25]# chmod +x /etc/init.d/httpd
[root@linuxidc httpd-2.4.25]# chkconfig –add httpd
[root@linuxidc httpd-2.4.25]# chkconfig –list httpd
httpd 0: 关闭 1: 关闭 2: 关闭 3: 关闭 4: 关闭 5: 关闭 6: 关闭
注释:使程序可以使用 service 管理,”service 管理的命令都在 /etc/init.d/ 这个目录下的 ”。如果是 rpm 命令安装的软件包就不需要使用 service 命令管理,可以直接执行 service 命令,但是手工源码编译的软件包,程序就不可以直接执行 service 命令。
第 6 步:将配置文件链接到 /etc 下
[root@linuxidc httpd-2.4.25]# ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
[root@linuxidc httpd-2.4.25]# vim /etc/httpd.conf
ServerName www.example.com:80
[root@linuxidc httpd-2.4.25]# service httpd start #启动服务没有效果
[root@linuxidc httpd-2.4.25]# netstat -anutp | grep http #监听 http 服务
tcp 0 0 :::80 :::* LISTEN 32974/httpd
第 7 步:物理机验证 http 服务
[root@linuxidc httpd-2.4.25]# service iptables stop #关闭防火墙
[root@linuxidc httpd-2.4.25]# cd /usr/local/apache/ #
[root@linuxidc apache]# cat htdocs/index.html
<html><body><h1>It works!</h1></body></html>
注释:在 /usr/local/apache/htdocs/ 下存放着 apache 服务自带的 index。Html 网页,用于验证,次服务是否启动成功,在此目录下,可以创建更多的网页文件。
[root@linuxidc htdocs]# vim a.html 创建一个新的网页
<html>
<body>
<h1>This is my first homepage!!!!——mobanche !</h1>
<h2>——–Welcome my homepage———-</h2>
</body>
</html>
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-03/141687p2.htm
第三块:构建虚拟 WEB 主机
虚拟 Web 主机
在同一台服务器中运行多个 Web 站点,其中每一个站点并不独立占用一台真正的计算机
httpd 支持的虚拟主机类型
1、基于域名的虚拟主机
2、基于 IP 地址的虚拟主机
3、基于端口的虚拟主机
第 1 步:基于 ip 的虚拟主机
需求:
1:构建 2 个虚拟 Web 站点:
www.benet.com,IP 地址为 192.168.1.36
www.accp.com,IP 地址为 192.168.1.63
2:在浏览器中访问这两个域名时,分别显示不同的内容
分析:在虚拟机中添加网卡,给定网桥模式,修改添加网卡信息,并且将 mack 地址修改。
[root@linuxidc conf.d]# vim vhost.conf
<VirtualHost 192.168.1.63:80> #定义虚拟主机,给定 IP 地址
ServerAdmin linuxidc@linuxidc.com #定义此虚拟主机的 IP 地址
DocumentRoot /opt/accp/ #定义虚拟主机的归属目录
ServerName www.accp.com #定义域名
ErrorLog logs/accp.com-error_log #错误日志
CustomLog logs/accp.com-access_log common
</VirtualHost>
<Directory “/opt/accp”> #定义虚拟主机的目录权限
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.1.36:80>
ServerAdmin admin@benet.com
DocumentRoot /opt/benet/
ServerName www.benet.com
ErrorLog logs/benet.com-error_log
CustomLog logs/benet.com-access_log common
</VirtualHost>
<Directory “/opt/benet”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
[root@linuxidc conf.d]# mkdir /opt/accp #创建虚拟主机的文件夹目录
[root@linuxidc conf.d]# mkdir /opt/benet
[root@linuxidc conf.d]# echo “<h1>welcome accp<h1>” > /opt/accp/index.html
[root@linuxidc conf.d]# echo “<h1>welcome benet<h1>” > /opt/benet/index.html #给定虚拟主机输入一些信息
[root@linuxidc conf.d]# service httpd restart
[root@linuxidc conf.d]# service iptables stop
第 2 步:基于端口地址的虚拟主机
[root@linuxidc conf.d]# vim vhost.conf
Listen 192.168.1.63:8080
<VirtualHost 192.168.1.63:8080>
ServerAdmin linuxidc@linuxidc.com
DocumentRoot /opt/accp/
ServerName www.accp.com
ErrorLog logs/accp.com-error_log
CustomLog logs/accp.com-access_log common
</VirtualHost>
<Directory “/opt/accp”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.1.63:80>
ServerAdmin admin@benet.com
DocumentRoot /opt/benet/
ServerName www.benet.com
ErrorLog logs/benet.com-error_log
CustomLog logs/benet.com-access_log common
</VirtualHost>
<Directory “/opt/benet”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
[root@linuxidc conf.d]# service httpd restart
第 3 步:基于域名的虚拟主机
[root@linuxidc conf.d]# vim vhost.conf
Listen 192.168.1.63:8080
<VirtualHost 192.168.1.63:8080>
ServerAdmin linuxidc@linuxidc.com
DocumentRoot /opt/accp/
ServerName www.accp.com
ErrorLog logs/accp.com-error_log
CustomLog logs/accp.com-access_log common
</VirtualHost>
<Directory “/opt/accp”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.1.63:80>
ServerAdmin admin@benet.com
DocumentRoot /opt/benet/
ServerName www.benet.com
ErrorLog logs/benet.com-error_log
CustomLog logs/benet.com-access_log common
</VirtualHost>
<Directory “/opt/benet”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
注释:hosts 文件在 C:\Windows\System32\drivers\etc 下,hosts 文件中添加以下内容,需要将此文件拖出到桌面修改,修改完之后再拖回去。
192.168.1.63 www.benet.com
192.168.1.63 www.accp.com
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-03/141687.htm