spt119 发表于 2011-8-31 08:55:44

开发环境中虚拟主机的配置

无论是在Windows还是Linux环境下开发,开发者都需要通过浏览器不断调试代码的执行结果是否符合开发预期及开发需求。在浏览器地址栏中输入 localhost/crm (本例以开发CRM系统为例,该项目通过localhost/crm在服务器上进行索引)是所有开发者都很熟悉和了解的方式,但 localhost/crm 方式会导致软件在上传、文件设置以及路径探查等方面与程序最终放置到服务器上的表现不同,有时还会有错误发生,而且多发生在基于 Windows 开发,并放置在 Linux 服务器上部署并应用的情况下。为避免这种情况发生及由此衍生的巨大工作量,无论在 Windows 下还是在 Linux 下,都使用 APACHE 构建开发环境,并且在开发伊始就指定标准的域名,如本文中使用的 http://my.crm.com/ ,而非 localhost/crm 格式下开发程序。设定 http://my.crm.com/ 格式域名的需以下步骤1. Windows 下虚拟主机配置方式(以下为Windows目录格式,且 WEB 服务器软件为 APACHE): 配置 httpd.conf 文件。位置:Apache\conf\ 目录下(1) 去除LoadModule vhost_alias_module modules/mod_vhost_alias.so 前的“#”号。(2) 去除Include conf/extra/httpd-vhosts.conf 前的“#”号。以上操作完成后,保存 httpd.conf 文件。 配置 httpd-vhosts.conf 文件。位置:Apache\conf\extra\ 目录下。在 httpd-vhosts.conf 文件底部,加入如下代码:
<VirtualHost *:80>    ServerAdmin spt119@163.com    DocumentRoot "D:/wwwroot/crm"    ServerName my.crm.com</VirtualHost>
(1) ServerAdmin 表示管理员的邮箱地址。这个地址需要与 APACHE 安装时设定的邮箱地址一致。(2) DocumentRoot 表示应用程序所在位置。注意在 APACHE 的设置目录中,目录位置仍然使用基于 Linux 的“/”,而不是 Windows 的“\”。(3) ServerName 表示虚拟主机的域名。本例中设定为 my.crm.com 。以上操作完成后,保存 httpd-vhosts 文件。 配置 hosts 文件。位置:C:\windows\system32\drivers\etc\ 目录下(Windows 2000/XP/2003/Vista/7目录结构相同)。在文件底部输入:
127.0.0.1      my.crm.com
也可以输入本机IP地址,如:保存 hosts 文件。注意:即便输入了本机地址,局域网内其他计算机也无法通过在 hosts 文件中设定的IP地址访问该域名。这是因为该域名是“伪域名”,并没有在公网DNS服务器上“登记备案”。如果需要局域网内其他计算机通过指定的IP地址访问该软件,则需要在 HTTP 请求计算机的 hosts 文件中也指定该域名与IP地址(如本例的 192.168.1.11 – my.crm.com)。192.168.1.11   my.crm.com
全部操作完成后,重启 APACHE 服务器。打开文本编辑器,输入如下代码并保存为 phpinfo.php 在D:\wwwroot 目录下。



?phpphpinfo();//end – phpinfo.php
在浏览器地址栏中输入 http://my.crm.com/phpinfo.php ,如果上述操作全部正确,页面会显示如下内容:
http://b52.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d9804fa61e6c50969b4bbef31a8df1adb2507fd9db17885532f0cbae19659da28260c6719e587d4e587f64b9188b1de534ad237db4251548caa6f4207f14d234356c486cb3&a=51&b=52
图2_1 PHP欢迎页面2. Linux(Ubuntu)下的配置方式(以下为 Linux 下目录格式,WEB服务器软件为APACHE,操作需要用 root用户身份登录 )。 /etc/hosts 文件修改在终端输入 sudo gedit /etc/hosts 命令打开hosts文件。在127.0.0.1后绑定要添加到域名,如my.crm.com。
http://b50.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d99a89efad1a1f79c541ae80820c7b5df3d3baf42d519007ce0fc03d63338904247f23329f9c36fb8b21ad872fcf67407586ccca6944cf655ae54be1d2f05423553b9bf49a&a=49&b=50
图2_2 /etc/hosts 文件的修改 在/etc/apache2/sites-available 下增加配置文件在 root 权限下,新建文件,取名 my.crm.com.conf,如下图。
http://b57.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d97859980a969d3965881f22dbdd094b0df74b16d03661f6d01f3de37a64566917d828230f4bf401c1441a5423802d7a1fdf0e5a8d929fb3026aeee2094329a074e935aaf5&a=57&b=57图2_3 my.crm.com.conf文件到位置在 my.crm.com.conf 文件中,代码如下:
<VirtualHost *:80>ServerName my.crm.comDocumentRoot /var/www/crm<Directory /var/www/crm/>    Options All    AllowOverride All    Order allow,deny    allow from all</Directory></VirtualHost>
(1)VirtualHost *:80,表示虚拟主机域名绑定在127.0.0.1上,且APACHE绑定到端口为 80 端口。(2)ServerName,表示虚拟主机到主机头。在本例中设定到主机头为“伪”域名 my.crm.com 。(3)DocumentRoot,表示虚拟目录到实际位置,在本例中设定的虚拟主机位置为 /var/www/crm。其他如 <Directory>的设定,请读者参考 APACHE到帮助文件,在此不再赘述。 终端操作(1)通过终端激活 my.crm.com.conf 配置,如下图。
http://b49.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d98e673688d6f8081c40ea65a2c1bd0721b838401111c800296e563f45767a54c4693ca40396e6579e18d59e2ed736bb6a3787d7625ae75938ab4b39a2b3f981d66167b0ac&a=50&b=49




图2_4 通过终端激活my.crm.com.conf成功激活后,在/etc/apache2/sites-enabled目录下会将会出现已经激活的 my.crm.com.conf,如下图。
http://b57.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d9508a7f72df6526c6fa2a2ad7930046f307c56a214041902703b4d59e3e7f4624837165633db72e7ea4d3837af1964c578c5abe199bcb0bed0fd61c66b4c2e5ff48a58645&a=57&b=57



图2_5 已激活my.crm.com.conf(2) 通过终端重启 APACHE 服务器,如下图。
http://b58.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d956eb5cd34c9ed9801398c0875bf105f9477cb16b4b786830537f8d2f9e3d47a6b75efaa0a673b9b289b358e9195bddacb7d39408f8e841112547ebb1f85892ee9c1137ab&a=49&b=58
图2_6 重启APACHE服务器(3) 通过“伪”域名my.crm.com验证操作是否正确打开文本编辑器,输入如下代码并保存为 phpinfo.php 在/var/www/crm/ 目录下。
小提示:在ubuntu中,APACHE的配置信息不再是 httpd.conf ,取而代之到是分散到 etc/apache2 以及 /usr/share/apache2 等目录中。在此不探讨这种设计到合理性与否,仅提请注意。
在浏览器中输入 my.crm.com/phpinfo.php,将出现如下窗口。


http://b49.photo.store.qq.com/http_imgload.cgi?/rurl4_b=7aa7de0a201367382fd9cb5be8a167d91cd2ebdb39d5f2befd15a9ae010d957421783e0b0d30b7577ad91c48abac603cfaa3b3becfa426a098ff77b7f14b2f5b37120a1024416f6d365bf22b326c44804887dfe0&a=57&b=49

图2_7 虚拟主机配置成功界面至此,在Linux(ubuntu)下配置虚拟主机成功。

Hex 发表于 2011-8-31 15:24:10

楼主。。图挂了。。。。

yeseason 发表于 2011-11-19 13:18:06

图挂了

spt119 发表于 2012-4-14 12:35:29

晕倒。在以前的QQ空间里,也把这个文章加进去了,地址如下:
http://user.qzone.qq.com/173884265/main#!app=2&pos=1289525953
页: [1]
查看完整版本: 开发环境中虚拟主机的配置