详解Ubuntu/CentOS下Apache多站点配置

2019-01-17 00:02:30王旭

第二步:在主配置中引入我们的虚拟主机配置

sudo vim /etc/httpd/conf/httpd.conf # 在主配置文件末尾添加以下内容 # Load vhost-config files in the "/etc/httpd/vhost-conf.d" directory if any # created by zhongjin on 2016-12-21 冬至 Include vhost-conf.d/*.conf

第三步:在对应目录放入项目代码

直接参考 Ubnutu 环境下的第三步配置。

第四步:修改 /etc/hosts 文件

直接参考 Ubnutu 环境下的第四步配置。

第五步:重启 apache 服务器并测试

重启 apache 服务器使得配置生效:

sudo systemctl restart httpd.service

在浏览器(如果是桌面版的话)中访问 www.jb51.net 或 www.wordpress.com,看看是否输出了 index.php 文件中的内容。

如果你不是桌面版(服务器),那么可以使用命令行测试:

curl www.jb51.net

看看返回的字符串是不是正确输出!

注意:

在 Centos 下,由于默认的虚拟主机配置(localhost)是直接在 /etc/httpd/conf/httpd.conf 文件中配置的,所以我们在后面添加我们的配置的时候,会覆盖前面的相同的配置,所以当你 curl localhost 的时候,可能访问的是 jb51项目下的代码,也可能是 wordpress 下的代码。

我的解决方案是:按照上面的步骤重新建一个 localhost 域名,使它指向 /var/www/html 目录即可。

二、同域名下,通过访问不同的端口获得不同的站点

其实在这里实现的步骤跟上面的没多大差别,我就说说需要做的额外操作。

这里以 jb51为例,通过访问 www.jb51.net:80(默认就是80),返回的是“hello,welcome to jb51“,而访问 www.jb51.net:8080,返回的是 ”hello,welcome to jb51background management“。

Ubuntu 环境下:

让我们的 apache2 监听 8080 端口:

修改 /etc/apache2/ports.conf 文件,在 Listen 80 后面添加两行:

NameVirtualHost *:8080 Listen 8080

在 /etc/apache2/sites-available/ 下增加  www-jb51-net-8080.conf,并在 /etc/apache2/sites-enabled/ 下建立符号链接。方法参考前面。

 www-jb51-net-8080.conf 的主要配置内容如下:

<VirtualHost *:8080> #Created by zhongjin on 2016-12-21 冬至 Serveradmin 1054840542@qq.com ServerName www.jb51.net DocumentRoot /home/www/jb51_admin <Directory "/home/www/jb51_admin"> Options FollowSymLinks AllowOverride All #Require all denied Require all granted </Directory> </VirtualHost>

大家一定要看清楚需要修改的地方,VirtualHost 改为 8080,DocumentRoot 和 Directory 均改为 /home/www/jb51_admin,但是 ServerName 不用改,还是用 www.jb51.net

创建目录 /home/www/jb51_admin,添加文件 index.php,输出 “hello,welcome to jb51background management”。