Linux-LAMP 默认页,虚拟主机

[[email protected] src]# vim /usr/local/apache2.4/conf/httpd.conf   //取消ServerName前的"#"

Linux-LAMP 默认页,虚拟主机

Linux-LAMP 默认页,虚拟主机

以上的错误是调用了两个php.so模块,注释掉一个就可以了

Linux-LAMP 默认页,虚拟主机

在windows机器的浏览器上访问

Linux-LAMP 默认页,虚拟主机

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

再次在windows机器的浏览器上访问就ok了

Linux-LAMP 默认页,虚拟主机

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

Linux-LAMP 默认页,虚拟主机


apache的配置文件中的词

ServerName
Require all granted
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
DocumentRoot "/usr/local/apache2.4/htdocs"
ServerName   //可以用任何一个域名访问
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl start
# netstat -lntp
# curl localhost
# vim /usr/local/apache2.4/htdocs/test.php
<?php
    echo 123;
 ?>
 # curl localhost/test.php

注意:

  1. 是否加载了php模块

  2. 有没有php.so文件

  3. httpd.conf文件中有没有应用php.so文件,是不是有这样的一行"AddType application/x-httpd-php .php"

  4. 检测语法有没有错误


windows中的hosts文件  C:\Windows\System32\drivers\etc\hosts

在windows中的hosts文件中写入如下内容:

    192.168.221.10 www.apeng.com    

在浏览器中访问www.apeng.com    

Linux-LAMP 默认页,虚拟主机

疑问:www.apeng.com    并没有在apache配置文件中定义

只要指向apache服务器的ip,都会访问到这个默认页,这就叫做apache的默认虚拟主机

一个配置文件里仅仅只能定义一个ServerName

一台服务器上可以跑多个域名,不想让些域名都指向默认虚拟主机,可以打开虚拟主机配置文件

如何开启多个虚拟主机呢?

Linux-LAMP 默认页,虚拟主机

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

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf 去掉前面的"#"

[[email protected] htdocs]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf(虚拟主机配置文件)

里面的每个"<VirtualHost *:80></VirtualHost>"代表一个主机,一个主机就是一个网站。

Linux-LAMP 默认页,虚拟主机

[[email protected] htdocs]# mkdir -p /data/wwwroot/{abc.com,111.com}

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

[[email protected] htdocs]# cat /data/wwwroot/abc.com/index.php

<?php

echo "abc.com"

?>

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

[[email protected] htdocs]# cat /data/wwwroot/111.com/index.php

<?php

echo "111.com"

?>

测试

[[email protected] htdocs]# curl -x192.168.221.10:80 abc.com

abc.com

[[email protected] htdocs]# curl -x192.168.221.10:80 apeng.abcd.com   //访问的是默认虚拟主机(httpd-vhosts.conf这个文件中定义的第一个<VirtualHost *:80></VirtualHost>)

abc.com

注意:开启了虚拟主机配置文件,则主配置文件httpd.conf中的DocumentRoot中定义的失效,ServerName失效


添加多个虚拟主机,主配置文件中的关键字眼

1 #ServerName www.example.com:80前的"#"去掉(约192行)

2 # iptables -I INPUT -p tcp --dport 80 -j ACCEPT(对外开放80端口)

3 Require all denied 改成 granted (约201行)

4 在388行左右添加"AddType application/x-httpd-php .php" (千万不能写错,语法检测有可能检测不出来) 

5 "DirectoryIndex index.html index.php" (250行左右)

6 #Include conf/extra/httpd-vhosts.conf(约476行,前"#"去掉)

7 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //<VirtualHost *:80></VirtualHost>

8 mkdir -p /DocumentRoot;vim /DocumentRoot/index.php

9 test