**********************************************************************************************************************
◆案例1◆源码安装Apache
**********************************************************************************************************************
**********************************************************
安装依赖
**********************************************************
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
yum install -y gcc openssl openssl-devel zlib zlib-devel pcre pcre-devel expat-devel libxml2-devel
**********************************************************
安装Apr -1.6.3
**********************************************************
wget http://www-eu.apache.org/dist//apr/apr-1.6.3.tar.gz
tar -xzvf apr-1.6.3.tar.gz
cd apr-1.6.3/
CC="gcc -m64" ./configure --prefix=/usr/local/apr
./configure --prefix=/usr/local/apr
make && make install
**********************************************************
安装Apr-util -1.6.1
**********************************************************
wget http://www-eu.apache.org/dist//apr/apr-util-1.6.1.tar.gz
tar -xzvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util \
--with-apr=/usr/local/apr
make && make install
**********************************************************
安装Apache -2.4.33
**********************************************************
wget http://www-eu.apache.org/dist//httpd/httpd-2.4.33.tar.gz
tar -xzvf httpd-2.4.33.tar.gz
cd httpd-2.4.33/
./configure --prefix=/usr/local/apache2 \
--enable-rewrite \
--enable-so \
--enable-headers \
--enable-expires \
--with-mpm=worker \
--enable-modules=most \
--enable-deflate \
--enable-ssl \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre
make && make install
**********************************************************************************************************************
◆案例2◆打开网页实现身份验证 -- 用户名密码认证
**********************************************************************************************************************
1.编辑主配置文件
vim ?/usr/local/apache2/conf/httpd.conf
2.查找修改关键位置
定位特征:# It can be "All", "None", or any combi偏移+3
查找AllowOverride none (约在235行)
修改为 AllowOverride all
3.在httpd配置文件目录 ?/usr/local/apache2/htdocs 下创建 .htaccess 并写入以下内容
vim /usr/local/apache2/htdocs/.htaccess
写入↓
authname ?"welcome to apache"#欢迎提示信息
authtype basic#认证类型
authuserfile /usr/local/apache2/htdocs/login.psd#认证文件存放位置
require valid-user#除认证用户其他用户不允许登陆
4.添加认证用户 -c 创建密码文件只能添加一个用户 –m 创建密码文件,是追加写入
添加<-c>认证用户,只能添加一个用户
/usr/local/apache2/bin/htpasswd ?-c ?/usr/local/apache2/htdocs/login.psd ??LyShark
添加<-m>认证用户LyShark,是追加写入,可以创建多个用户
/usr/local/apache2/bin/htpasswd ?-m ?/usr/local/apache2/htdocs/login.psd ??LyShark
**********************************************************************************************************************
◆案例3◆实现身份验证 ?– 客户端的验证
**********************************************************************************************************************
**********************************************************
允许个别IP地址访问网页,拒绝所有
**********************************************************
1.修改主配置文件
vim /usr/local/apache2/conf/httpd.conf
定位特征:# ??AllowOverride FileInfo AuthCon偏移+3
写入(约在236行)在<Directory>嵌套里写入以下下内容
<requireall>
???????require all granted
???????require ip 192.168.1.10#允许访问的IP地址
</requireall>
#Require all granted#此行必须注释掉
**********************************************************
拒绝个别IP地址访问,允许所有
**********************************************************
1.修改主配置文件
vim /usr/local/apache2/conf/httpd.conf
定位特征:# ??AllowOverride FileInfo AuthCon偏移+3
写入(大约在236行) 在<Directory>嵌套里写以下内容
<requireall>
???????require all granted
???????require ip 192.168.22.147#拒绝访问的IP地址
</requireall>
#Require all granted#此行必须注释掉
**********************************************************************************************************************
◆案例4◆目录别名 - 减小目录深度
**********************************************************************************************************************
1.打开主配置文件
vim /usr/local/apache2/conf/httpd.conf
2.在配置文件行尾,追加写入
alias "/lyshark""/user/local/apache2/htdocs/a/b/c/d"
含义:将访问路径由 http://IP地址/a/b/c/d 简化为 http://IP地址/lyshark
**********************************************************************************************************************
◆案例5◆配置虚拟主机(重点)
**********************************************************************************************************************
****************************************************************************
※基于IP的虚拟主机※>>>实现一台服务器多个IP地址,搭建多个网站<<<
****************************************************************************
1.在eth0网卡添加一个子接口 eth0:0
ifconfig eth0:0 192.168.22.148 ?netmask 255.255.255.0
2.编辑主配置文件,开启虚拟主机选项(取消注释)
vim /usr/local/apache2/conf/httpd.conf
定位特征:# Local access to the Apache HTTP S偏移-2
搜索关键字 ?Virtual hosts(约在463行)
Include conf/extra/httpd-vhosts.conf#取消此行注释
3.修改主配置文件添加虚拟主机
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.22.147:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost1"
???ServerName dummy-host.example.com
</VirtualHost>
<VirtualHost 192.168.22.148:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost2"
???ServerName dummy-host2.example.com
</VirtualHost>
4.分别创建vhost1 和vhost2目录,并放入两个index.html文件
mkdir /usr/local/apache2/htdocs/vhost1
mkdir /usr/local/apache2/htdocs/vhost2
echo "vhost1 test page">/usr/local/apache2/htdocs/vhost1/index.html
echo "vhost2 test page">/usr/local/apache2/htdocs/vhost2/index.html
5.重启服务,测试效果
/usr/local/apache2/bin/apachectl restart
****************************************************************************
※基于端口的虚拟主机※>>>实现一台服务器多个端口,搭建多个网站<<<
****************************************************************************
1.编辑主配置文件,开启虚拟主机选项(取消注释)
vim /usr/local/apache2/conf/httpd.conf
定位特征:# Local access to the Apache HTTP S偏移-2
搜索关键字Virtual hosts(大约在463行)
Include conf/extra/httpd-vhosts.conf#取消此行注释
2.修改主配置文件添加虚拟主机
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.22.147:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost1"
???ServerName dummy-host.example.com
</VirtualHost>
<VirtualHost 192.168.22.147:8080>
???DocumentRoot "/usr/local/apache2/htdocs/vhost2"
???ServerName dummy-host2.example.com
</VirtualHost>
3.分别创建vhost1 和vhost2目录,并放入两个index.html文件
mkdir /usr/local/apache2/htdocs/vhost1
mkdir /usr/local/apache2/htdocs/vhost2
echo "vhost1 test page">/usr/local/apache2/htdocs/vhost1/index.html
echo "vhost2 test page">/usr/local/apache2/htdocs/vhost2/index.html
4.重启服务,测试
/usr/local/apache2/bin/apachectl restart
****************************************************************************
※基于域名的虚拟主机※>>>实现一台服务器多个域名,搭建多个网站<<<
****************************************************************************
1.搭建dns服务器,实现正向解析,将解析地址指向同一个ip
2.打开主配置文件开启虚拟主机
vim /usr/local/apache2/conf/httpd.conf
定位特征:# Local access to the Apache HTTP S偏移-2
搜索关键字:Virtual hosts (大约在463行)
Include conf/extra/httpd-vhosts.conf#取消注释开启功能
3.进入虚拟主机配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost1"
???ServerName www.wang.com#wang.com解析到vhost1目录录下
</VirtualHost>
<VirtualHost *:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost2"
???ServerName www.rui.com#rui.com解析到vhost2目录下
</VirtualHost>
4.在网页保存位置创建两个相应目录,并放入网站index.html
mkdir /usr/local/apache2/htdocs/vhost1
mkdir /usr/local/apache2/htdocs/vhost2
echo "vhost1 test page">/usr/local/apache2/htdocs/vhost1/index.html#创建测试页
echo "vhost2 test page">/usr/local/apache2/htdocs/vhost2/index.html
5.重启服务生效
/usr/local/apache2/bin/apachectl restart
**********************************************************************************************************************
◆案例6◆开启个人主页功能
**********************************************************************************************************************
----------------------------------------------------------------------------
实验要求:给予每个用户都有一个单独的网页空间
----------------------------------------------------------------------------
1.开启相应的模块
vim /usr/local/apache2/conf/httpd.conf
LoadModule userdir_module modules/mod_userdir.so#取消注释(大约在146行)
定位特征:# User home directories
Include conf/extra/httpd-userdir.conf#取消注释(大约在458行)
2.进入配置文件,不做修改退出
vim /usr/local/apache2/conf/extra/httpd-userdir.conf
3.创建用户并设置密码
useradd ?lyshark
passwd ?lyshark
4.进入用户家目录,创建相应文件,并赋予权限
mkdir -p /home/lyshark/public_html#在用户家目录创建public_html
echo “这是lyshark 的网页空间” >>/home/lyshark/public_html/index.html ?#创建测试页
chmod 755 /home/lyshark/public_html/index.html#赋予执行权限
chmod 755 /home/lyshark#赋予执行权限
5.通过浏览器访问测试
格式为:http://192.168.22.147/~lyshark
**********************************************************************************************************************
◆案例7◆启用地址跳转(重点)
**********************************************************************************************************************
----------------------------------------------------------------------------
实验要求:实现域名跳转www.xdl.com跳转到www.baidu.com
----------------------------------------------------------------------------
1.搭建dns服务器,实现正向解析,将解析地址指向同一个ip
2.编辑主配置文件开启相应功能(取消注释)
vim /usr/local/apache2/conf/httpd.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so #开启虚拟主机(约在141行)
LoadModule rewrite_module modules/mod_rewrite.so#开启网页重写(约在148行)
Include conf/extra/httpd-vhosts.conf#加载模块(约在464行)
3.改写虚拟主机配置文件
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
写入:
<VirtualHost *:80>
DocumentRoot "/usr/local/apache2/htdocs/xdl"
ServerName www.xdl.com
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/xdl">
Options indexes followsymlinks
Allowoverride all
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/usr/local/apache2/htdocs/baidu"
ServerName www.baidu.com
</VirtualHost>
4.分别创建网页文件存储位置,和测试页
mkdir -p /usr/local/apache2/htdocs/xdl
mkdir -p /usr/local/apache2/htdocs/baidu
echo “XDL com” > /usr/local/apache2/htdocs/xdl/index.html
echo “BAIDU com” > /usr/local/apache2/htdocs/baidu/index.html
5.在要跳转的网页目录下创建. htaccess文件
写入
rewriteengine on#开启跳转功能
rewritecond %{HTTP_HOST} www.xdl.com#将www.xdl.com
rewriterule .* http://www.baidu.com#跳转到www.baidu.com
**********************************************************************************************************************
◆案例8◆启用HTTPS生成SSL证书
**********************************************************************************************************************
1.建立服务器私钥,过程中需要输入密码
openssl genrsa -des3 -out server.key 1024
----------------------------------------------------------------------------
注释:
Genrsa –des3#加密类型
-outserver.key#输出文件
-1024#加密长度
----------------------------------------------------------------------------
2.建立证书,生成的csr文件交给CA签名后形成服务端自己的证书
openssl req -new -key server.key -out server.csr
----------------------------------------------------------------------------
注释:
req -new #新建证书
-key server.key#私钥文件
-out server.csr#输出文件
注:依次输入:国家 省 市 组织 机构 全称 EMAIL 是否要改变密码 是否改名称
----------------------------------------------------------------------------
3.转化成证书,这一步由证书CA机构来做的,这里只是实验.
openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out servernew.crt
4.配置服务器让其支持https
cp servernew.crt /usr/local/apache2/conf/server.crt#将证书复制到conf目录下
cp server.key /usr/local/apache2/conf/server.key#私钥也要放入conf目录下
vim /usr/local/apache2/conf/httpd.conf#打开http主配置文件
LoadModule ssl_module modules/mod_ssl.so#开启ssl功能(大约在129行)
Include conf/extra/httpd-ssl.conf #开启ssl模板,搜索SSLRandomSeed(大约在481行)
vim /usr/local/apache2/conf/extra/httpd-ssl.conf#打开ssl配置文件
定位特征码:# ??to use and second the expiring
搜索SSLSessionCache #将缓存设置注释掉(约在76行)
注释掉:
SSLSessionCache ????????"dbm:/usr/local/apache2/logs/ssl_scache"
SSLSessionCache ???????"shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout ?300
5.重启服务,输入密码
/usr/local/apache2/bin/apachectl restart
apache
原文地址:https://www.cnblogs.com/LyShark/p/8983839.html