跨平台Linux虚拟服务器配置心得
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/” )
6.MySQL的安装安装MySQL后,要修改一下默认的数据库目录,还需要设置mysql的root密码,否则没有密码会出现很纠结的问题,虽然大部分时间很舒坦.
pacman -S mysql
vim /etc/my.cnf
修改[mysqld]段里的datadir项
datadir = /home/home/mysql
登录数据库,然后修改root的密码
mysql -uroot
UPDATE user SET password=PASSWORD(“密码”) WHERE User=‘root’;
7.Nginx的安装安装Nginx并配置Nginx为缓存服务器,并且修改Lighttpd端口
pacman -S nginx
vim /etc/nginx/conf/nginx.conf
修改server段下listen的端口,location下的root为网页根目录,index后加上index.php
遇到点问题了,解决中…
把lighttpd的端口改到8080
## bind to port (default: 80)
server.port = 8080 8.Samba的安装安装samba后,设置好同步的目录就能工作了
pacman -S samba
vim /etc/samba/smb.conf
设置机器名跟工作组后,加入新的段就可以了
[web]
path = /home/data/
guest ok = yes
writable = yes
9.RsyncD的安装
同samba一样设置好同步的目录就可以了
pacman -S rsync
vim /etc/rsyncd.conf
跟samba神似阿
[ftp]
path = /home/ftp
comment = ftp area
10.设置服务为daemon模式编辑rc.conf这个灵魂文件,把上面这些服务都加到daemon段里,这样重启后就大功告成了.
11.后记偶尔用到那win7的话,也可以直接有平台做事,真是很方便阿.相关阅读:
MySQL数据的导出和导入工具:mysqldump
面向对象的javascript(笔记)
Web前端开发规范文档(css/javascript)
js基础:学习网页制作技巧:给表格加滚动条
使用ADO.NET2.0提升数据交互性能(3)
Javascript打印网页部分内容的脚本
oracle中有关网络配置的介绍
mysql 教程 存储过程
PHP中strtok()函数的优点详细解析
JSP由浅入深(9)—— JSP Sessions
SQL 中sp_executesql存储过程的使用帮助
一份ASP内存的释放的实验报告
Asp.net中用核选框显示数据的方法及ButtonColumn的使用方法
实例讲解Oracle数据库设置默认表空间问题