只能怪我永不消逝的好奇心,我最近又想试试一个叫做Plone的基于Python的CMS了。可是手头没有多余的服务器来装Plone需要的Zope Application Server,如果装在自己的Ubuntu本本上,又觉得可能影响现有软件,而且头一次接触Python世界,心里没底。
于是我在VirtualBox里新建了一个虚拟机,并开始安装Ubuntu Server。第一次运行失败了,错误信息是什么”no kernel for your CPU”,Google了一下,原来需要开启PAE/Nx支持才行的:
然后顺利完成Ubuntu Server的安装,这里不须细说了。
我打算先弄好LAMP在虚拟机上,然后在另一个虚拟机上尝试ZOPE。接下来的问题的做端口转发,因为虚拟机上的GuestOS是通过NAT连接到我的本本的,好比一台电脑通过路由器上网一样。方法比较麻烦:
VBoxManage setextradata “Linux Guest”
“VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol” TCP
VBoxManage setextradata “Linux Guest”
“VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort” 80
VBoxManage setextradata “Linux Guest”
“VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort” 8000
目前似乎只有敲命令了。上面的是样本:”Linux Guest”是你VirtualBox里面虚拟机的名字,”pcnet”是虚拟网卡的名字(缺省),其它只要照猫画虎即可。注意一点就是HostPort必须是大于1024的,这是因为Linux的安全机制规定<1024的端口只能被root用户使用(当然,如果您开机就root的话……)。
这样通过端口映射,已经可以访问到虚拟机上的HTTP服务了。
下一步是为Virtual Machine上面设置Virtual Host,够拗口的吧……
由于访问是在Host OS上面,所以在Host OS里设置几个域名:
sudo vim /etc/hosts
添加
127.0.0.1 vh1.localhost
127.0.0.1 vh2.localhost
然后在Guest OS上面修改Apache2配置,添加VH记录:
<VirtualHost *:80>
ServerName vh1.localhost
DocumentRoot /path/to/your/website
</VirtualHost>
重新启动Guest OS上面的Apache2服务。最后在Host OS上用FireFox访问 http://vh1.localhost:8000,应该能看到你配置的网站了。
2 responses to “把网站服务器塞进VirtualBox”
极客不是这样的.geekp.com ?
@Maypu
http://en.wikipedia.org/wiki/Geek
🙂