扩展 :

apache虚拟主机开启php的短标签   http://www.aminglinux.com/bbs/thread-5370-1-1.html 

1. 编辑第二个虚拟主机,设定Apache用户认证(访问网站需要用户密码认证):

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

插入内容如下(设定指定网站访问认证参数如下,位置如图):

   <Directory /data/wwwroot/111.com>

       AllowOverride AuthConfig

       AuthName "111.com user auth"

       AuthType Basic

       AuthUserFile /data/.htpasswd

       require valid-user

   </Directory>Apache用户认证;域名跳转;Apache访问日志_apache


2. -c自动创建生成密码文件创建可访问用户名,自定义密码:

[root@hao-01 ~]# /usr/local/apache2.4/bin/htpasswd -c -m 密码文件  自定义用户

[root@hao-01 ~]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd hao

3. 第二次再可访问用户名,自定义密码,不要再加-c选项,要不会覆盖掉密码文件:

[root@hao-01 ~]# /usr/local/apache2.4/bin/htpasswd  -m /data/.htpasswd hao1

4. 查看密码文件

[root@hao-01 ~]# cat /data/.htpasswd

Apache用户认证;域名跳转;Apache访问日志_apache_02

5. 检测虚拟机配置文件是否有错误:

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

6. 启动apache2.4/httpd

[root@hao-01 apache2.4]# /usr/local/apache2.4/bin/apachectl  start

7. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

8. curl 访问111.com,查看是否访问成功?报错如下:

[root@hao-01 ~]# curl  -x127.0.0.1:80  111.com  -I

报错 :401(用户认证加密访问受限了)

9. 打开windows系统找到hosts文件,笔记本格式打开编辑:

路径:C:\Windows\System32\drivers\etcApache用户认证;域名跳转;Apache访问日志_apache_03添加上虚拟主机2的设定:111.com

Apache用户认证;域名跳转;Apache访问日志_apache_04

(记得保存hosts记事本)

10. 在windows上,检查Linux服务器ip的80端口是否打开:

C:\Users\主内安详>telnet 192.168.211.128 80Apache用户认证;域名跳转;Apache访问日志_apache_05


11. Linux服务器上打开80端口:

[root@hao-01 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

(关闭80端口:iptables -D INPUT -p tcp --dport 80 -j ACCEPT )

12. 再次在windows上,检查Linux服务器ip的80端口是否打开:

C:\Users\主内安详>telnet 192.168.211.128 80

快捷键退出: Ctrl + ]

13. 在window游览器上,访问 虚拟主机2加密认证的111.com地址:

此时,报401,并让其登陆加密访问的用户密码,就是刚刚设定的!

Apache用户认证;域名跳转;Apache访问日志_apache_06


14. 用curl命令,来访问111.com,-u用来指定用户名密码,此时就是200 ok成功!

[root@hao-01 ~]# curl -x127.0.0.1:80  -uhao:admin 111.com -iApache用户认证;域名跳转;Apache访问日志_apache_07


此方法用于:主网站的下级网站不想被其他人访问时候,

增加的用户认证!具体步骤如下:

15. 编辑虚拟主机配置文件中第二个虚拟主机,针对单个文件进行认证:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加内容(注意增加位置,如图):

   <FilesMatch 123.php>

   </FilesMatch>

Apache用户认证;域名跳转;Apache访问日志_apache_08

16. 检测虚拟机配置文件是否有错误:

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

17. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

18. 创建并编辑123.php在111.com目录下:

[root@hao-01 ~]# vim /data/wwwroot/111.com/123.php

添加内容:

<?php

echo "123.php";

19. 访问111.com不会受限(设定了:访问111.com下123.php才会需要认证)!

[root@hao-01 ~]# curl -x127.0.0.1:80 111.com -iApache用户认证;域名跳转;Apache访问日志_apache_09


20. 用curl命令,直接访问111.com/123.php,访问是受限的

(因为针对这个123.php文件做了认证,需要-u跟用户名密码才可访问)

[root@hao-01 ~]# curl -x127.0.0.1:80 111.com/123.php -i

21. -u 选项跟用户名密码200 ok则成功访问!

[root@hao-01 ~]# curl -x127.0.0.1:80 -uhao:admin 111.com/123.php -i

11.19 域名跳转(上)11.20 域名跳转(下)

1. 编辑虚拟主机配置文件,第二个虚拟主机更改做实验:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

插入内容(插入位置如下图):

   <IfModule mod_rewrite.c>

       RewriteEngine on          RewriteCond %{HTTP_HOST} !^111.com$        RewriteRule ^/(.*)$ http://www.111.com/$1 [R=301,L]

   </IfModule>Apache用户认证;域名跳转;Apache访问日志_apache_10


2.  检测虚拟机配置文件是否有错误:

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

4. 查找apache是否加载了rewrite模块?

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite

5. 编辑httpd.conf文件:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

查找rewrite,找到含有rewrite行,把这行前#号删掉

Apache用户认证;域名跳转;Apache访问日志_apache_11

6. 检测虚拟机配置文件是否有错误:

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

7. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

8. 再次查找apache是否加载了rewrite模块?

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite

Apache用户认证;域名跳转;Apache访问日志_apache_12

9. 用curl 命令访问别名域名,跳转到了设定跳转的域名下!

[root@hao-01 ~]# curl -x127.0.0.1:80 www.example.com

Apache用户认证;域名跳转;Apache访问日志_apache_13


在虚拟机配置文件中,下图位置,设定跳转到指定的网站域名!!!Apache用户认证;域名跳转;Apache访问日志_apache_14


11.21 Apache访问日志

1. 两种日志格式:combined commo

Apache用户认证;域名跳转;Apache访问日志_apache_15

2. 更改虚拟主机配置文件,把日志格式改为combined

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

更改内容(更改访问日志格式):

commo改为:combined

Apache用户认证;域名跳转;Apache访问日志_apache_16


3. 检测虚拟机配置文件是否有错误:

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

4. 重新加载配置文件(不会重启服务)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl  graceful

5. 在Windows上,访问到 111.com/123.php网站,先把这个网站地址,发在其他博客或帖子中,再点击这个超链接,即可在服务器上记录上访问日志!

6. 查看Apachecombined格式访问日志:

[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_log

由图看出,从51cto博客里页面,跳转到了这个111.com下的123.tmp地址

Apache用户认证;域名跳转;Apache访问日志_apache_17