轉自:http://blog.sina.com.cn/s/blog_6fb822fa0100o5v5.html
假設的虛拟主機:
1。提供ftp空間用于放資料
2。提供二級域名用于客戶的頂級域名的指向
3。提供apache中的php等支援
4。提供如mysql資料庫
環境:目前我有固定IP,域名。
[[email protected] etc]# pwd
/var/named/chroot/etc
less named.conf有如下部分
zone "vm.xxx.com.tw" {
type master;
file "/var/named/vm.xxx.com.tw.hosts";
};
cat vm.xxx.com.tw.hosts
$ttl 38400
vm.xxx.com.tw. IN SOA mail.xxx.com.tw. peter.xxx.com.tw. (
1291911449
10800
3600
604800
38400 )
NS mail.xxx.com.tw.
因為我想提供我的域名二級域名給虛拟主機的使用者使用在vm.xxx.com.tw下。
如果使用者有自己的IP他可以将www的記錄指向如下
其中2010.vm.xxx.com.tw為擁有的一個二級域名,2010就是客戶的代号
也是虛拟機建立後自動産生的
如
zone "2010.vm.xxx.com.tw" {
type master;
file "/var/named/2010.vm.xxx.com.tw.hosts";
allow-transfer {
127.0.0.1;
localnets;
};
};
cat 2010.vm.xxx.com.tw.hosts
$ttl 38400
@ IN SOA mail.xxx.com.tw. root.mail.xxx.com.tw. (
1291920759
10800
3600
604800
38400 )
@ IN NS mail.xxx.com.tw.
2010.vm.xxx.com.tw. IN A 61.221.104.171
www.2010.vm.xxx.com.tw. IN A 61.221.10.171
ftp.2010.vm.xxx.com.tw. IN A 61.221.10.171
m.2010.vm.xxx.com.tw. IN A 61.221.10.171
localhost.2010.vm.xxx.com.tw. IN A 127.0.0.1
webmail.2010.vm.xxx.com.tw. IN A 61.221.10.171
admin.2010.vm.xxx.com.tw. IN A 61.221.10.171
mail.2010.vm.xxx.com.tw. IN A 61.221.10.171
2010.vm.xxx.com.tw. IN MX 5 mail.2010.vm.xxx.com.tw.
2010.vm.xxx.com.tw. IN TXT "v=spf1 a mx a:2010.vm.xxx.com.tw ip4 :192.168.1.53 ip4:61.221.10.171 ?all"
這些解析,請虛拟機的使用者将自己的域名解析指到如上左邊的即可。
[[email protected] 2010]# pwd
/home/2010
[[email protected] 2010]# ls
awstats etc homes mail public_html webdisk
cgi-bin fcgi-bin logs Maildir tmp
[[email protected] 2010]# cat public_html/phpinfo.php
<?PHP
phpinfo();
>
<VirtualHost *:80>
SuexecUserGroup "#528" "#502"
ServerName 2010.vm.xxx.com.tw
ServerAlias www.2010.vm.xxx.com.tw
ServerAlias webmail.2010.vm.xxx.com.tw
ServerAlias admin.2010.vm.xxx.com.tw
DocumentRoot /home/2010/public_html
ErrorLog /var/log/virtualmin/2010.vm.xxx.com.tw_error_log
CustomLog /var/log/virtualmin/2010.vm.xxx.com.tw_access_log combined
ScriptAlias /cgi-bin/ /home/2010/cgi-bin/
ScriptAlias /awstats/ /home/2010/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/2010/public_html>
Options -Indexes +IncludesNOEXEC +FollowSymLinks +ExecCGI
allow from all
AllowOverride All
AddHandler fcgid-script .php
AddHandler fcgid-script .php5
FCGIWrapper /home/2010/fcgi-bin/php5.fcgi .php
FCGIWrapper /home/2010/fcgi-bin/php5.fcgi .php5
</Directory>
<Directory /home/2010/cgi-bin>
allow from all
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.2010.vm.xxx.com.tw
RewriteRule ^(.*) https://2010.vm.xxx.com.tw:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.2010.vm.excell.com.tw
RewriteRule ^(.*) https://2010.vm.xxx.com.tw:10000/ [R]
RemoveHandler .php
RemoveHandler .php5
IPCCommTimeout 31
<Files awstats.pl>
AuthName "2010.vm.xxx.com.tw statistics"
AuthType Basic
AuthUserFile /home/2010/.awstats-htpasswd
require valid-user
</Files>
</VirtualHost>
http://2010.vm.xxx.com.tw/phpinfo.php
網頁即可。
http://2010.vm.excell.com.tw/cgi-bin/awstats.pl
可以看到詳細的通路記錄
https://2010.vm.xxx.com.tw:10000/
用2010使用者登入可以進行本虛拟機下的mysql等
用其它使用者登入也可進行收發郵件。
當然也可以利用伺服器上安裝的openwebmail或其他的webmail來讓其他使用者進行收發。
網上别人申請都是及時生效,而且一個使用者可能會有多個虛拟主機。
那麼是如何實作的呢,不可能每一個使用者都用手工實作吧
我們可以這樣
1。安裝webmin
2。安裝Virtualmin
- 管理員用戶 - 該虛擬服務器的管理員用戶和用戶組都將被刪除。
- 用戶主目錄 - 該虛擬服務器的用戶主目錄,包含所有網站和其他檔案,都將被刪除。
- BIND DNS域 - 域中的所有DNS記錄和BIND選項都將被刪除。
- 域郵件 - 郵件服務器不再接收來自這個域的郵件。
- Apache網站 - 虛擬主機中的所有Apache指令都將被刪除。
- MySQL數據庫 - 所有MySQL數據庫,表格,MySQL賬號都將被刪除。
- Webmin賬號 - 該虛擬服務器的Webmin用戶都將被刪除。
- AWstats reporting - Scheduled AWstats reporting will be disabled, and its configuration deleted
- SQLite Databases - All SQLite databases owned by this virtual server will be deleted.
- Mail aliases - 4 mail aliases will be deleted.
當我要删除虛拟機時候的提示,說明我提供了如上的功能。
可是當我删除時webmin反應異常,我将webmin程序關掉再service webmin start就好了
如果要對外應用我們可以簡化
Features and Plugins
Apache網站
MySQL數據庫
ProFTPd服務器
Webmin賬號
新增虛拟機為以下域名為假設
域名 | |
描述 | |
管理員密碼 | |
服務器配置模闆 | |
Account plan | |
管理員用戶名 | 自動 自定義用戶名 |
也就是非常容易隻要
正在創建管理員用戶組sex ..
.. 已完成
正在創建管理員用戶sex ..
.. 已完成
Creating aliases for administration user ..
.. 已完成
Adding administration user to groups ..
.. 已完成
正在創建主目錄 ..
.. 已完成
Creating mailbox for administration user ..
.. 已完成
正在添加新的虛擬網站 ..
.. 已完成
正在將Apache用戶apache添加到服務器組 ..
.. 已完成
Performing other Apache configuration ..
.. 已完成
正在創建MySQL賬號..
.. 已完成
正在創建MySQL數據庫sex ..
.. 已完成
正在創建Webmin用戶..
.. 已完成
正在應用web服務器配置 ..
.. 已完成
正在重新載入Webmin ..
.. 已完成
正在儲存服務器詳細資訊..
.. 已完成
域名 | sex.cn |
管理員用戶名 | sex |
管理員用戶組 | sex |
創建于 | 19/十二月/2010 11:35由 root 創建 |
用戶主目錄 | /home/sex |
我用
http://2010.vm.xxx.com.tw:10000 我用sex使用者登入,
盡然可以對
Configure Website 其中有cpu,記憶體,線程數量設定
Use hostname supplied by browser
還有Document root的目錄自行指定,以及index檔案的指定,
看來Configure Website權限要拿掉
PHP 5 Configuration /home/sex/etc/php5/php.ini
也要拿掉
還可以自行增加FTP Users使用者
以及Scheduled Cron Jobs
這些權限太大,我們需要再簡化
進行修改等權限過大
是以預設我将webmin拿掉
而且ssh的權限也要拿掉
可以通過webmin對使用者的權限進行處理
必須要告訴使用者其ftp後網頁隻能傳到public_html
而且其他目錄不要删除,以免出錯。
1.
點選"建立新使用者"
在"建立新使用者"表單中,輸入"使用者名",密碼那兒選擇"明文密碼"并輸入密碼即可,所有其它選項全部預設,并點建立即可.該使用者名與密碼即是FTP上傳使用者名與密碼.(如下圖)
2 添加網站
Linux下的網站服務是由Apache軟體來提供的,是以我們需要在webmin中點選"伺服器"-"Apache 伺服器"(如下圖)
點選後系統會列出現有的所有虛拟主機,此時我們需要點選"添加虛拟主機"(如下圖)
增加新的綁定域名
添加虛拟主機預設隻能指定一個域名,若您一個網站有多個域名需要綁定時,需添加好網站後按以下步驟操作.
首先重新進入"Apache 伺服器"管理,選中剛才添加的虛拟主機,點選剛才添加的虛拟主機前邊的地球圖示(如下圖)
在"替代的虛拟伺服器名"中将剩下的域名填寫進去并點儲存即可,每行一個.(如下圖)
不管是添加虛拟主機還是新增綁定域名,儲存後并不會立即生效,必須點選右上方的"儲存修改"後方可生效(如下圖)
3、新加MySql資料庫
一般PHP網站都會使用一到兩個MySQL資料庫,一個完整的可使用的資料庫實際上由三部分組成:①資料庫本身,②登入MySQL系統的使用者,③使用者與資料庫之間的關系。
在"建立資料庫權限"表單中
"資料庫"選擇(Selected)剛才建立的資料庫名
"使用者名"指定為剛才建立的MySQL使用者
"主機"目前大多數隻是localhost
上傳後,将您的域名解析到IP,一個完整的Linux下的網站空間即手工建立成功。
還是用virtualmin後快很多。