天天看點

webmin+virtualmin 提供虛拟主機

轉自: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賬號

新增虛拟機為以下域名為假設

域名
描述
管理員密碼
服務器配置模闆
  •   Default Settings
  • Account plan
  •   Default 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上傳使用者名與密碼.(如下圖)

    webmin+virtualmin 提供虛拟主機

    2 添加網站

      Linux下的網站服務是由Apache軟體來提供的,是以我們需要在webmin中點選"伺服器"-"Apache 伺服器"(如下圖)

    點選後系統會列出現有的所有虛拟主機,此時我們需要點選"添加虛拟主機"(如下圖)

    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機

    增加新的綁定域名

      添加虛拟主機預設隻能指定一個域名,若您一個網站有多個域名需要綁定時,需添加好網站後按以下步驟操作.

     首先重新進入"Apache 伺服器"管理,選中剛才添加的虛拟主機,點選剛才添加的虛拟主機前邊的地球圖示(如下圖)

    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機

     在"替代的虛拟伺服器名"中将剩下的域名填寫進去并點儲存即可,每行一個.(如下圖)

    webmin+virtualmin 提供虛拟主機

    不管是添加虛拟主機還是新增綁定域名,儲存後并不會立即生效,必須點選右上方的"儲存修改"後方可生效(如下圖)

    webmin+virtualmin 提供虛拟主機

    3、新加MySql資料庫

      一般PHP網站都會使用一到兩個MySQL資料庫,一個完整的可使用的資料庫實際上由三部分組成:①資料庫本身,②登入MySQL系統的使用者,③使用者與資料庫之間的關系。

    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機
    webmin+virtualmin 提供虛拟主機

    在"建立資料庫權限"表單中

       "資料庫"選擇(Selected)剛才建立的資料庫名

       "使用者名"指定為剛才建立的MySQL使用者

       "主機"目前大多數隻是localhost

    webmin+virtualmin 提供虛拟主機

    上傳後,将您的域名解析到IP,一個完整的Linux下的網站空間即手工建立成功。

    還是用virtualmin後快很多。