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裡操作,直接使用終端程序登錄到主機進行操作
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 &nbs
p; = ( “.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的話,也可以直接有平台做事,真是很方便阿.