11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

扩展:

apache所有的主机都指向第一个   

http://www.aminglinux.com/bbs/thread-491-1-1.html 

11.14 ,11.15Apache和PHP结合(上下)

1. windows系统上,打开Telnet 客户端

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


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

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

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


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

[[email protected] ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

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


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

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

快捷键退出: Ctrl ]

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


5. Windows游览器,打开Linux服务器ip(如下图):

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


6. 修改apache2.4(httpd)配置文件:

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf

更改内容1:

Require all granted

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

更改内容2:

DirectoryIndex index.html index.php

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

添加内容3:

AddType application/x-httpd-php .php

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


7. 检查配置文件语法是否正确无误?

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t


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

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful


9. 添加一个实验脚本:

[[email protected] ~]# vi /usr/local/apache2.4/htdocs/1.php

添加内容:

<?php

phpinfo();

?>


10. 在Windows游览器,输入Linux ip/1.php :

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)



11. 如果在windows游览器,解析不出Linux ip/1.php

A. 先检查php模块是否加载 

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M

(在最下面可以看到)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


B. 再检查libphp5.so文件是否存在

[[email protected] ~]# ls /usr/local/apache2.4/modules/libphp5.so

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


C. 再检查(httpd.conf)配置文件中,下图三行是否有添加

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf

查看此行是否添加:modules/libphp5.so

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

查看此行是否添加:index.php

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

查看此行是否添加:AddType application/x-httpd-php .php

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)



12. 之前安装了php5版本和7版本,解析出的是5版本;

此时,把5版本对应行注释掉,打开7版本对应行:

[[email protected] php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


13. 检查配置文件语法是否正确无误?

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t


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

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful


15. 在Windows游览器,输入Linux ip/1.php :

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

 

11.16 ,11.17Apache默认虚拟主机(上下)


1. 打开windows系统找到hosts文件

路径:C:\Windows\System32\drivers\etc

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

2. 用记事本打开windows系统下的hosts文件 自定义设定域名指向ip

Linux服务器ip 自定义网址(自定义的网址,在windows下访问会跳到前面Linux服务器ip)

192.168.211.128 www.abc www.123.com

(记得保存hosts记事本)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


3. 在windows系统下,查看刚刚hosts里设定的网址,是否跳转到Linux 服务器ip

C:\Users\主内安详>ping www.abc.com

C:\Users\主内安详>ping www.123.com

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


4. 编辑httpd.conf 

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf

搜索:httpd-vhosts关键词,把这行前的#去掉!(解除注释)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)


5. 编辑虚拟主机配置文件

[[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

更改内容:

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/abc.com"

ServerName abc.com

ServerAlias www.abc www.123.com

ErrorLog "logs/abc.com-error_log"

CustomLog "logs/abc.com-access_log" common

</VirtualHost>


<VirtualHost *:80>

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.com

ServerAlias www.example.com

ErrorLog "logs/111.com-error_log"

CustomLog "logs/111.com-access_log" common

</VirtualHost>

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

DocumentRoot:定义网站根目录

ServerName:指定主域名

ServerAlias:指定别名域名(可以有多个别名域名,同时指向一个ip)

ErrorLog:设定错误日志

CustomLog:设定访问日志


6. 创建配置文件所需目录:

[[email protected] ~]# mkdir /data/wwwroot/

[[email protected] ~]# mkdir /data/wwwroot/abc.com/

[[email protected] ~]# mkdir /data/wwwroot/111.com/


7. abc创建对应文件:

[[email protected] ~]# vim /data/wwwroot/abc.com/index.php

添加内容:

<?php

echo "abc.com";

8. 111创建对应文件:

[[email protected] ~]# vim /data/wwwroot/111.com/index.php

添加内容:

<?php

echo "111.com";


9. 检查配置文件语法是否正确无误?

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t


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

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful


11. curl -x的作用:

[[email protected] ~]# curl -x192.168.211.128:80 abc.com

abc.com 第一个(默认)虚拟主机的主域名

www.baidu.com 没有设定过的域名,

还有www.taobao.com这种没有设定过的域名,都会解析到默认虚拟主机主域名!!!


[[email protected] ~]# curl -x192.168.211.128:80 111.com

111.com 第二个虚拟主机的主域名

www.example.com 第二个虚拟主机的别名域名

因此:只有设定过的域名,才能会解析到对应的主域名,

没设定过得域名,都会解析到默认虚拟主机域名!!!

11.14 ,11.15Apache和PHP结合(上下);11.16 ,11.17Apache默认虚拟主机(上下)

 










本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/1951679,如需转载请自行联系原作者