扩展:
apache所有的主机都指向第一个
http://www.aminglinux.com/bbs/thread-491-1-1.html
11.14 ,11.15Apache和PHP结合(上下)
1. windows系统上,打开:Telnet 客户端
2. 在windows上,检查Linux服务器ip的80端口是否打开:
C:\Users\主内安详>telnet 192.168.211.128 80
3. Linux服务器上打开80端口:
[root@hao-01 ~]# 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 + ]
5. Windows游览器,打开Linux服务器ip(如下图):
6. 修改apache2.4(httpd)配置文件:
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
更改内容1:
Require all granted
更改内容2:
DirectoryIndex index.html index.php
添加内容3:
AddType application/x-httpd-php .php
7. 检查配置文件语法是否正确无误?
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
8. 重新加载配置文件(不会重启服务)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
9. 添加一个实验脚本:
[root@hao-01 ~]# vi /usr/local/apache2.4/htdocs/1.php
添加内容:
<?php
phpinfo();
?>
10. 在Windows游览器,输入Linux ip/1.php :
11. 如果在windows游览器,解析不出Linux ip/1.php:
A. 先检查php模块是否加载 :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -M
(在最下面可以看到)
B. 再检查libphp5.so文件是否存在?
[root@hao-01 ~]# ls /usr/local/apache2.4/modules/libphp5.so
C. 再检查(httpd.conf)配置文件中,下图三行是否有添加?
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
查看此行是否添加:modules/libphp5.so
查看此行是否添加:index.php
查看此行是否添加:AddType application/x-httpd-php .php
12. 之前安装了php5版本和7版本,解析出的是5版本;
此时,把5版本对应行注释掉,打开7版本对应行:
[root@hao-01 php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf
13. 检查配置文件语法是否正确无误?
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
14. 重新加载配置文件(不会重启服务)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
15. 在Windows游览器,输入Linux ip/1.php :
11.16 ,11.17Apache默认虚拟主机(上下)
1. 打开windows系统找到hosts文件:
路径:C:\Windows\System32\drivers\etc
2. 用记事本打开windows系统下的hosts文件 自定义设定域名指向ip:
Linux服务器ip 自定义网址(自定义的网址,在windows下访问会跳到前面Linux服务器ip)
192.168.211.128 www.abc www.123.com
(记得保存hosts记事本)
3. 在windows系统下,查看刚刚hosts里设定的网址,是否跳转到Linux 服务器ip:
C:\Users\主内安详>ping www.abc.com
C:\Users\主内安详>ping www.123.com
4. 编辑httpd.conf :
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
搜索:httpd-vhosts关键词,把这行前的#号去掉!(解除注释)
5. 编辑虚拟主机配置文件:
[root@hao-01 ~]# 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>
DocumentRoot:定义网站根目录
ServerName:指定主域名
ServerAlias:指定别名域名(可以有多个别名域名,同时指向一个ip)
ErrorLog:设定错误日志
CustomLog:设定访问日志
6. 创建配置文件所需目录:
[root@hao-01 ~]# mkdir /data/wwwroot/
[root@hao-01 ~]# mkdir /data/wwwroot/abc.com/
[root@hao-01 ~]# mkdir /data/wwwroot/111.com/
7. abc创建对应文件:
[root@hao-01 ~]# vim /data/wwwroot/abc.com/index.php
添加内容:
<?php
echo "abc.com";
8. 111创建对应文件:
[root@hao-01 ~]# vim /data/wwwroot/111.com/index.php
添加内容:
<?php
echo "111.com";
9. 检查配置文件语法是否正确无误?
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
10. 重新加载配置文件(不会重启服务)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
11. curl -x的作用:
[root@hao-01 ~]# curl -x192.168.211.128:80 abc.com
abc.com 是第一个(默认)虚拟主机的主域名
www.baidu.com 是没有设定过的域名,
还有www.taobao.com这种没有设定过的域名,都会解析到默认虚拟主机主域名!!!
[root@hao-01 ~]# curl -x192.168.211.128:80 111.com
111.com 是第二个虚拟主机的主域名
www.example.com 是第二个虚拟主机的别名域名
因此:只有设定过的域名,才能会解析到对应的主域名,
没设定过得域名,都会解析到默认虚拟主机域名!!!