APACHE环境下同IP多域名虚拟主机的设置方案全攻略(2)[ubuntu 12, linux]
在上一篇内容中, 我们在本地初步测试了实现LAMP环境下的可能性, 离实际部署还有一段距离要走, 不过这一步是完成LAMP成功配置最重要的一步. 下面介绍配置虚拟主机几种情况, 首先, 所谓的虚拟主机,简单说就是同一台服务器可以同时处理超过一个域名(Domain Name)。假设www.yourdomainname.com和 www.yourdomainname2.com两个域名都指向同一服务器,APACHE服务器根据一定的规则来辨别各个WEB文件(主要是根据它的配置文件辨别), 从而定位到不同的文件夹内, 那么www.yourdomainname.com和www.yourdomainname2.com可以访问到同一服务器上不同的WEB空间, 从而实现它的多个主机的效果.
再说一下关于: Could not reliably determine the server's fully qualified domain name,这个问题, 相信在大多数朋友都会遇到这个问题, 如下图:
出现这个问题不用着急, 一般来说, 本机的IP是127.0.0.1,而这里却是127.0.1.1这样的提示, 那肯定也和本机IP也有一定的关系, 先去HOSTS文件里找一下看, 发现果然在这里有定义: 127.0.1.1 ubuntu, 解决方案就是在/etc/apache2/httpd.conf这个文件里添加这个: ServerName localhost, 保存重启一下, 就会发现这个错误提示没有了.
现在基本上功能都已经具备了, 准备部署到服务器上了, 由于我没有安装FTP服务器, 而这种情况也有相当的普遍性,那就使用Winscp这个软件来上传文件, 配置很简单, 就类似一般的FTP工作, 如果有FTP的话就更好,直接把下载的商城系统(magento)传到服务器上即可. 对于使用Winscp的朋友来说,千万不要将magento.zip解压后再上传, 那样会慢得让人崩溃掉的, 直接传ZIP格式的上去好了, SHELL(也就是终端)是支持ZIP格式的文件的. 传上去后进入SHELL模式, 然后unzip magento命令即可, 当闪烁的行停止后,你就会发现在当前文件夹内出现一个magento文件夹,这个就是安装文件, 然后根据magento的说明文档建立数据库,通过解析好的域名访问通过URL即可成功安装了(具体的安装从略).
至此, 所有的配置圆满完成.
后记: 在操作过程中我还遇到一个极端的情况,就是由于我们的VPS先确定的, 然后把magento顺利安装在虚拟主机里了, 然后在解析的域名, 结果发现, 我们的域名解析成功, 但是在点击它的下一级目录时却自动跳转到http://IP/magento文件夹名的形式, 为了这个问题,纠结了一整天, 从域名系统到VPS,再到虚拟主机, 所有的情况都过了一遍,还是没有找到原因, 后来万般无奈下, 把那个安装文件夹删除, 重新解压一个安装文件, 然后再用域名访问的形式,解决了这个问题. 相信这种情况极少有人遇到过. 只当作个例供参考吧;
Apache服务器还有一个强大的泛域名解析功能, 比如你当你输入yourdomainname.com, 而你想的让自动跳转到www.yourdomainname.com这个域名下,它访问的是同一个文件夹,这个做起来也比较简单:
-------------------------------- 泛域名解析配置方案 -----------------------------------------------------------
<VirtualHost *:80>
ServerAdmin wwufengg@localhost
ServerName test1.com
ServerAlias *.test1.com #用*表示泛域名,如果要接收三级泛域名解析,可以写成这样:*.wwufengg.test1.com
DocumentRoot /var/www/test1 #一定要注意这个顺序问题,否则有可能产生定位到默认的根目录的错误
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/www/test1/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/test1/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
相对于泛域名解析的, 还有一个多个域名解析的应用, 如
--------------------------------- 多个域名解析配置 --------------------------------------------------------------------------
<VirtualHost *:80>
ServerAdmin wwufengg@localhost
ServerName test1.com
ServerAlias www.test1.com ftp.test1.com mail.test1.com #不同域名用空格隔开;
DocumentRoot /var/www/test1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/www/test1/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/test1/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
配置完成后, 千万不要忘记了重启服务器:
/etc/init.d/apache2 restart
然后配置文件就可以生效了.
另外, 不只同一个IP可以配置虚拟主机, 如果你的服务器有两块或者三块网卡,也可能多IP配置多个虚拟主机, 由于没有操作过, 请参考其他的相关文档.
上一篇: http://www.cnblogs.com/wwufengg/archive/2012/06/28/ubuntu-apache2-config.html