茅屋为秋风 发表于 2018-11-18 11:14:07

[LAMP]Apache虚拟主机

  在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。Apache虚拟主机配置有3中方法:基于IP配置、基于域名配置和基于端口配置。下面将演示基于域名的虚拟主机。
  1、编辑httpd.conf
# vi /usr/local/apache2.4/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf    ##启用httpd-vhosts.conf  2、编辑httpd-vhosts.conf
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
                      ##默认虚拟主机
    DocumentRoot "/data/www/abc.com"    ##网站根目录
    ServerName abc.com                  ##主域名
    ServerAliasabc.net   ##域名别名
    ErrorLog "logs/abc.com-error_log"            ##错误日志
    CustomLog "logs/abc.com-access_log" common   ##访问日志


    DocumentRoot "/data/www/123.com"
    ServerName 123.com
    ErrorLog "logs/123.com-error_log"
    CustomLog "logs/123.com-access_log" common
  3、创建网站目录与文件

# mkdir /data/www
# mkdir /data/www/abc.com
# mkdir /data/www/123.com
# cat /data/www/abc.com/index.php

# cat /data/www/123.com/index.php

# chmod 755 /data/www/123.com/index.php
# chmod 755 /data/www/abc.com/index.php  4、重新加载配置

# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful  5、测试虚拟主机效果
# curl -x192.168.137.100:80 123.com


403 Forbidden

Forbidden
You don't have permission to access /
on this server.

  测试发现没有权限,由于前面给index.php文件授权过,因此定位问题在httpd.conf。
# vi /usr/local/apache2.4/conf/httpd.conf

    AllowOverride none
#   Require all denied          ##将该行注释掉

# /usr/local/apache2.4/bin/apachectl graceful ##重新加载配置
# curl -x192.168.137.100:80 123.com
123.com
# curl -x192.168.137.100:80 abc.com      
abc.com
# curl -x192.168.137.100:80   ##匹配别名主机
abc.com
# curl -x192.168.137.100:80 abcd.com   ##采用默认虚拟主机
abc.com  




页: [1]
查看完整版本: [LAMP]Apache虚拟主机