以此为例,用户有2个域名,分别是 aaa.yoursite.com , bbb.yoursite.com希望实现访问以上2个站点时,实际打开的是不同子目录网站程序的需求。
步骤
上传代码
这里不具体介绍如何上传代码,假定用户已经上传2个站点的代码到 /home/www/htdocs/aaa ,/home/www/htdocs/bbb 子目录下,为了测试,分别放了两个不同内容的 index.html,并且2个目录及其子目录权限已经改成 www:www。参考命令:
chown www:www -R /home/www/htdocs
修改配置文件
修改httpd.conf开启虚拟节点配置文件,方法如下:
vi /usr/local/apache/conf/httpd.conf
如上图所示 移动光标到红色行的开头,输入 x删除#号,如下:Include conf/extra/httpd-vhosts.conf然后移动到如下图部分在ProxyPassMatch 前面加上#号(注释掉此行)。
最终修改后相关2行如下:
Include conf/extra/httpd-vhosts.conf
#ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs
然后输入按住shift+: 输入x! 回车,完成文件的修改。修改 httpd-vhosts.conf 配置文件httpd-vhosts.conf
先将以上红色部分每行开头加上# 号(即注释掉红色几行),然后在后面添加如下2个节点。
<VirtualHost *:80>
ServerAdmin webmaster@serveradmin.com
DocumentRoot "/home/www/htdocs/aaa"
ServerName aaa.yoursite.com
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs/aaa/
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@serveradmin.com
DocumentRoot "/home/www/htdocs/bbb"
ServerName bbb.yoursite.com
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs/bbb/
</VirtualHost>
按住 shift+: 输入w!保存退出,如下图:
重启服务
重启apache ,命令如下:
/usr/local/apache/bin/apachectl restart
访问测试,最后进行访问测试