0.为什么会出现这样一个组合?
之前在学校的时候曾经为了搪塞老师而写过一篇实习报告,主题是Linux实用服务提供,也就是用一台Linux机器提供http,ftp等服务,当时为了赶工.所以选了个这样乱七八糟的题目[主要是专业对不上号,但是万幸老师收下实习报告了].
VBox+vboxnetflt+Arch+Lighttpd+Nginx+MySQL+PHP+SShD+Samba+Rsyncd
这个组合其实当初我也没怎么想过,不过现在配置出来之后就发现相当舒适.主要是很适合我,也许也适合别人.之前都是用本机做服务来调试网页和其他服务,但是感觉不舒服的是自己如果没有用上某些服务的话白白开着还是有些不舒坦.后来就萌发了用VBox的想法,最初的话是用的NAT模式,通过10.0.2.2跟10.0.2.15这两个地址以及端口映射来实现主机虚拟机的访问,这样的不足就是映射端口的话就会浪费端口,后来换成了网桥模式一切都和谐了[不知道拨号的童鞋怎么想].而且虚拟机可以做暂停休眠操作,这样就节约了系统资源,特别是我这种老爷机.直接用命令就可以控制虚拟机状态,很是方便.
VirtualBox虚拟机提供虚拟硬件支持,vboxnetflt提供网桥服务,ArchLinux是我用得最久的Linux平台,Lighttpd也是很多人推荐用的,那么Nginx就是为了高并发而存在,MySQL来提供多数的数据库服务,SShD提供了安全的终端服务和sftp,Samba是为了提高对win的亲和力存在,Rsyncd是用来文件同步的主要服务.没有ftp?恩.是的,Samba和Rsyncd分别为各个平台提供了极好的文件同步.ftp当然就是鸡肋了.
1.VirtualBox的安装
ArchLinux下官方源里的是ose版本,推荐用AUR里的bin版本.安装之后使用命令modprobe启用vboxdrv和vboxnetflt这两个模块.虚拟机的内核模块和虚拟机网桥模块.最好是把这两个模块添加到rc.conf里.
配置的时候,需要把网卡设置为桥接模式,并选择要桥接的网卡.
还要设置的就是开启VRDP支持,设置认证模式为NULL.
这样基本上就完成了本文要用到的配置.
2.ArchLinux的安装
这个直接用光盘镜像安装到虚拟机上就可以,然后配置好源[也可以用默认源],就可以安装之后的软件了.
通过类似这样的命令来启动虚拟机
VBoxHeadless -startvm “ArchStation”
通过类似这样的命令来控制虚拟机,分别是暂停,继续,重启,关机,休眠
VBoxManage controlvm “ArchStation” pause
VBoxManage controlvm “ArchStation” resume
VBoxManage controlvm “ArchStation” reset
VBoxManage controlvm “ArchStation” poweroff
VBoxManage controlvm “ArchStation” savestate
3.SShD的安装
openssh的配置默认就能工作,但还是要修改一下sftp的路径,这样方便偶尔遇到的问题.
安装openssh并编辑配置:
pacman -S openssh
vim /etc/ssh/sshd_config
找到这一行,改掉路径
Subsystem sftp /home/data/sftp
之后,我们的操作就可以不用在rdesktop里操作,直接使用终端程序登录到主机进行操作
ssh root@192.168.1.103
4.PHP的安装
这一步直接安装好,然后遇到需要加载某些模块的时候就编辑配置文件来解开所要加载模块的注释
pacman -S php
vim /etc/php/php.ini
找到extension设置部分,然后解开mysql这些必备的模块
5.LighttpD的安装
安装lighttpd的时候需要配置php的解析程序,也就是fastcgi.然后修改lighttpd的配置,使之通过fastcgi来解析php程序.
pacman -S php php-cgi fcgi
vim /etc/lighttpd/lighttpd.conf
配置网页根目录
server.document-root = “/home/http/”
解开server.modules设置部分”mod_fastcgi”的注释,找到#### fastcgi module部分,解开这一段的注释
fastcgi.server = ( “.php” =>( “localhost” =>(“socket” => “/tmp/php-fastcgi.socket”,“bin-path” => “/usr/bin/php-cgi”)))fastcgi.server = ( “.php” =>
( “localhost” =>
(
“socket” => “/tmp/php-fastcgi.socket”,
“bin-path” => “/usr/bin/php-cgi”
)
)
)
TIPS:设置目录映射可以通过类似下面的方式来设置
alias.url = ( “/repo/” => “/media/sda6/repo/” , “/axr/” => “/home/axr/” )