歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> FreeBSD5.2.1RWebServer架設實例過程

FreeBSD5.2.1RWebServer架設實例過程

日期:2017/3/6 15:51:23   编辑:關於Unix
一、基本要求 要玩好freebsd這種unix類操作系統,我覺得首先需要有下面兩個基本能力,否則的確會非常艱難。 1. 良好的英文能力。freebsd雖然也有圖形界面(GUI),但如果是做 服務器 ,更多是靠命令行(如同msdos)操作,在我這裡web server的例子裡,幾乎是
  一、基本要求
  要玩好freebsd這種unix類操作系統,我覺得首先需要有下面兩個基本能力,否則的確會非常艱難。
  1. 良好的英文能力。freebsd雖然也有圖形界面(GUI),但如果是做服務器,更多是靠命令行(如同msdos)操作,在我這裡web server的例子裡,幾乎是純命令行作業。所以英文能力是很重要的。
  2. unix基礎。基本的unix指令要知道,比如 ls、pwd、cp、man、rm、mkdir、rmdir 等。尤其要知道 man 命令的作用。還要知道當屏幕顯示過多內容的時候,需要用到scroll lock和more指令。下面簡單舉例說明幾個指令的用法。
  ls (列目錄,類似於msdos的dir)
  ls | more (列目錄,使用管道和more命令分屏顯示過多的內容)
  cp abc abc_bak (文件的拷貝,類似於msdos的copy)
  cp -R abc abc_bak(目錄的拷貝)
  rm -R abc/* (子目錄abc下的所有文件及子目錄刪除,類似於msdos的del,但允許加-R選項針對子目錄操作)
  man ls (查ls命令的詳細說明)
  mv abc ../abc_bak (移動並改名abc為父目錄下的abc_bak,abc可以為文件也可以為子目錄)
  3. 有一本freebsd handbook,紙版的當然好,電子版的也不錯: http://www.freebsd.org.cn/snap/doc/zh_CN.GB2312/books/handbook/
  
  二、安裝系統前的一些聲明
  首先聲明,我是用的最新的FREEBSD5.2.1RELEASE iso格式光盤安裝的,現在刻錄機遍地都是,各位從網上下載了iso自己刻一個光盤來裝FREEBSD,應該不是什麼難事情。
  其次,FREEBSD的完整安裝升級需要一個良好的網絡環境,即便你有光盤,最終很多工作還需要到互聯網上進行,所以你必須有一個較快的互聯網連接。
  
  三、安裝過程及安裝中的注意事項
  1. 操作系統的安裝
  雖然前面說了很多有關FREEBSD的艱難,但其實如果你有較好的英文能力,你會發現裝FREEBSD的內核系統還是很簡單的,總共花不了30分鐘。而且FREEBSD5.2.1足夠先進了,我的服務器很多新硬件沒有遇到任何問題全部正確識別了。
  FREEBSD5.2.1的光盤共4張,其中一張命名為BOOT,其對應下載時的ISO名為DISK1(注意不是BOOTONLY那張),BOOT光盤放進光驅,bios設置光驅啟動,重啟機器後,機器會從光驅啟動並進入FREEBSD5.2.1的內核並自動啟動光盤裡的sysinstall程序。該程序是文本圖形界面,也很友好。
  首先,選擇Standard安裝,這也是推薦的安裝模式。還有一種mini安裝,安裝出來的系統是最小的,運行效率最高,但是可能你會面臨更多的調整。
  A. 硬盤分區及unix分區配額分配
  我作為初學者,選擇了standard模式安裝,隨後進入了FREEBSD的fdisk程序界面,和msdos的fdisk很像,但屏幕下方的提示更多更友好。如果你有兩塊或更多的硬盤,那麼fdisk會先問你需要在那個硬盤上做分區。由於我是做服務器,不存在雙系統等問題,所以用上下箭頭選擇已有的分區並按d鍵全部刪除這些已有的分區使其成為空盤,再按a自動分配為一個大分區,最後按q退出fdisk,就這麼簡單地分好了一個硬盤的區。
  然後sysinstall會提示你的服務器是否需要使用BootMgr,如果你不需要多重引導,那麼可以選Standard,我在這個地方選擇的是BootMgr——允許多重引導。
  隨後使用Disklabel創建unix分區並分配分區空間。該畫面和fdisk有些類似,你可以用上下方向鍵選擇需要的分區,然後屏幕下方的提示按鍵並按照自己的要求劃分分區。我在這裡采用了默認的方法:選a自動劃分,選q退出。特別提示:mysql安裝默認會安裝到/var分區,如果你不想改變mysql的默認安裝,那麼你在這裡應該把自動劃分出來的/var分區調整一下,調整的更大些。/var分區默認只有256M,稍微大的數據庫就不夠用了。我在下面的mysql安裝中沒有使用默認的安裝分區/var,而是改到了/usr分區,所以我在這裡不需要改動任何分區的大小。
  B. 安裝過程的提示選擇
  分區及配額完成後,隨後就會出現軟件包選擇畫面,你可以選擇Developer或者是其他什麼模式。作為web服務器,我覺得選Developer好些,不過我當時不太明白,什麼也沒選,直接選了EXIT。其實沒選也不要緊,後面還有機會。
  隨後的畫面是提示你從什麼介質安裝,我們這裡當然是自己燒好的ISO光盤了——選CD/DVD,機器都沒起來,別的介質其實也選不成。
  選了介質之後,畫面提示:
  User Confirmation Requested
  Last Chance! Are you SURE you want to continue the installation?
  當你確定後,之前的分區設置即將生效,硬盤中的原有東西將會被刪除,並且開始安裝初始的內核系統。
  初始內核的安裝是很快的(10分鐘),而且具有多數流行硬件,我用的FB5.2.1很順利認出了所有硬件。
  隨後開始安裝後的設置,首先會提問你是否采取PPP/SLIP的模式連通網絡,如果不是可以選NO,我是ADSL的DHCP模式上網,所以選NO。如果你是撥號模式,根據提示操作吧。
  隨後是要求你輸入你上網的網卡的TCPIP設置。如果是DHCP,把網線接好,機器會自動獲取設置。如果是靜態IP,你可以根據自己的機器情況設置IP、掩碼、網關、DNS等。
  隨後機器會提問以下問題:
  是否設置機器為網關GATEWAY——NO(我們是web server,不是網關)
  是否設置機器為inetd超級服務器——NO(我們有ssh和pureftpd,不需要inetd)
  是否設置為NFS SERVER/CLIENT——NO(我們不是這個用途)
  是否設置為anonymous FTP——NO(我們不需要這種用途)
  是否需要設置sshd——YES(我們將通過這種較為安全模式遠程控制服務器)
  選擇時區——按照提示選擇即可,會提示你北京時間縮寫是"CST"
  是否需要LINUX兼容性——YES(或許我會為服務器安裝一些LINUX軟件,例如CS SERVER )
  是否需要設置system console——默認的挺好,剛開始的學的就不必改了。
  是否需要配置鼠標——NO(我看不出來作為一個托管在電信的webserver有什麼必要配置鼠標)
  是否需要添加用戶——添加一個吧,根據提示添加即可,用戶組寫成wheel,以便你可以用這個用戶遠程登錄服務器後su到root進行管理。添加完這個用戶之後,會問你要root的密碼,輸入即可。如果不添加用戶,會直接讓你設置root的密碼。
  其實,這些安裝後設置,只要英文良好,按照提示做,不會有什麼問題的。
  C. 安裝後的PACKAGE和CONTRIBUTION選擇
  安裝後,可以進入sysinstall的configure進行最終的PACKAGE和CONTRIBUTION選擇。
  PACKAGE是已經編譯好的二進制包,可以直接運行。默認標准安裝完之後,作為WEBSERVER,我看了一下也就需要net下的cvsup(在線升級用)和archivers下的unzip(某些zip包可能會用到)這兩個包。選中後執行安裝,就會把它們裝到系統裡。
  隨後進入CONTIBUTION裡安裝代碼。強烈建議各位一定要把src代碼全部選中。src下有很多分類,甚至包括game。我自己在學習FREEBSD的時候,編譯總是缺這個那個,後來學乖了,把SRC全裝了之後,就好了很多,編譯時很少提示錯誤了,而且將來cvsup也有好處。另一個就是ports,不用說,也是要全裝的。我在這裡,就是選擇了src和ports。選中後執行安裝,就會把它們安裝到系統裡了。
  
  至此,一個初始的FREEBSD5.2.1就裝完了。雖然看著多,實際上也就30分鐘時間。如果你是第一次裝FREEBSD,這個時候還是不要著急進行後面的操作,可以先看看手冊,熟悉熟悉FREEBSD。
  
  2. 系統安裝完後的第一步,是進行CVSUP,立刻同步你的src源代碼和ports代碼。關於cvsup的詳細內容,請看FREEBSD手冊的cvsup部分,此處我只介紹在本例中的過程。由於cvsup需要互聯網環境,所以需要接好你的網線了。進入下列目錄:
  #cd /usr/src/share/examples/cvsup
  裡面是幾個cvsup的supfile例子。我們可以直接修改這些例子為我們所用。首先編輯standard-supfile,這個文件是升級內核源代碼的例子文件。我個人喜歡用ee編輯文件(因為有使用提示,且使用習慣接近windows下的),輸入下面的指令:
  #ee standard-supfile
  能看見裡面東西很多,但都不用改,它默認指定是升級所有的系統源代碼——這是有好處的。我們只需要修改一個地方,下翻頁找到下面這行:
  *default host=CHANGE_THIS.FreeBSD.org
  改成指定的freebsd官方cvsup服務器即可:
  *default host=cvsup.FreeBSD.org
  或更快的國內freebsd cvsup服務器:
  *default host=cvsup.cn.FreeBSD.org
  *default host=cvsup.FreeBSDChina.org
  退出並保存,運行下面的指令開始cvsup在線升級代碼:
  #cvsup standard-supfile
  這也是我們第一次用FREEBSD上互聯網。如果網絡暢通,可以看到連接提示,並且開始自動升級源代碼了。如果不暢通,或者cvsup服務器忙,可以換個cvsup服務器試試。如果是網絡設置問題,可以到sysinstall--configure--networking裡修改網卡設置。也可以用ee編輯/etc/rc.conf這個文件,檢查哪裡的設置出了問題。
  系統源代碼升級,我的ADSL大概用30分鐘左右即可完成。
  然後我們升級ports代碼。ports裡很多東西是不需要的,我們可以稍微仔細編輯一下。打開ports-supfile這個文件:
  #ee ports-supfile
  首先仍然是指定cvsup服務器,照上面說過的方法改了那行服務器設置。然後是選擇需要升級的ports樹。作為webserver,升級全部的ports是完全沒有必要的,因此可以把
  ports-all
  那行前面加#注釋掉。繼續往後面找,有很多ports分支,我們把需要的打開,不需要的保留行首的#,就是取消了。例如下面這些行首加#的,對webserver來說,都是沒用處的;去掉了行首#的,還是留著吧,以免編譯遇到問題:
  ports-base
  #ports-arabic
  ports-archivers
  #ports-astro
  #ports-audio
  #ports-benchmarks
  #ports-biology
  #ports-cad
  #ports-chinese
  ports-comms
  ports-converters
  ports-databases
  ports-deskutils
  ports-devel
  ports-dns
  ports-editors
  ports-emulators
  #ports-finance
  #ports-french
  ports-ftp
  #ports-games
  #ports-german
  #ports-graphics
  #ports-hebrew
  #ports-hungarian
  #ports-irc
  #ports-japanese
  ports-java
  #ports-korean
  ports-lang
  ports-mail
  ports-math
  #ports-mbone
  ports-misc
  #ports-multimedia
  ports-net
  #ports-news
  #ports-palm
  #ports-picobsd
  #ports-polish
  #ports-portuguese
  ports-print
  #ports-russian
  #ports-science
  ports-security
  ports-shells
  ports-sysutils
  ports-textproc
  #ports-ukrainian
  #ports-vietnamese
  ports-www
  #ports-x11
  #ports-x11-clocks
  #ports-x11-fm
  #ports-x11-fonts
  #ports-x11-servers
  #ports-x11-toolkits
  #ports-x11-wm
  照上面編譯完,就可以保存退出了,然後運行cvsup開始升級ports:
  #cvsup ports-supfile
  這個升級過程大約也要30分鐘左右。至此,所有的代碼升級完畢。
  
  3. MAKE WORLD和定制內核。
  關於MAKE WORLD的詳細內容,也應該詳細翻閱手冊相關部分,下面繼續介紹本例中的情況。上面的升級完成後,首先需要重新編譯系統(MAKE WORLD)。由於我們的系統是剛裝的,干淨的,所以沒有那麼多難題。進入:
  #cd /usr/src
  #make buildworld
  會開始一個30分鐘左右的編譯過程,如果編譯沒有什麼問題,繼續:
  #make installworld
  即可更新系統為最新版,隨後就可以重啟機器了。
  這裡需要聲明一下,由於5.2.1是current分支,make world並不一定總能成功。如果能成功,恭喜你了。如果沒成功,過段時間再cvsup系統源代碼,可能就可以成功了。我自己裝了2個server,第一個就沒成功,時隔一個月第二個就成功了。沒成功也不用太擔心,畢竟5.2.1是RELEASE,相對還是較為穩定的。
  
  下來,我們需要定制內核。定制內核的必要性我想就不必我說了,各位也應該好好看看手冊相關部分。也請各位仔細看這個帖子:
  http://www.freebsdchina.org/forum/viewtopic.php?t=1706
  說的很詳細了。
  具體操作,進入下面的目錄:
  #cd /usr/src/sys/i386/conf
  能看到一個名為GENERIC的文件。把這個文件拷貝一個副本,例如名為SAMPLEKERN,這個副本將是你將來內核的配置文件。
  #cp GENERIC SAMPLEKERN
  #ee SAMPLEKERN
  用ee編輯SAMPLEKERN這個文件,按照上面提到的那個帖子編輯,根據你自己的硬件情況、軟件需求編輯,保存後開始編譯內核。由於我們CVSUP過了,所以用手冊上提到的“新”方法編譯。
  #cd /usr/src
  make buildkernel KERNCONF=SAMPLEKERN
  這個編譯過程大概要20分鐘,編譯完先不要著急install,先備份一下舊內核,以免有意外。
  #cd /boot
  #cp -R kernel kernel.old
  隨後安裝內核:
  #make installkernel KERNCONF=SAMPLEKERN
  安裝好之後,可以重啟了。
  由於我自己是在家裡進行服務器安裝的,所以,我給內核文件裡加上了下面幾行,以便形成共享上網能力:
  #ipfirewall for NAT
  options IPFIREWALL
  options IPDIVERT
  options IPFIREWALL_DEFAULT_TO_ACCEPT
  options IPFIREWALL_VERBOSE
  options IPFIREWALL_VERBOSE_LIMIT=100
  然後/etc/rc.conf裡也要加幾行:
  # for natd
  gateway_enable="YES"
  firewall_enable="YES"
  firewall_type="OPEN"
  natd_enable="YES"
  natd_interface="em0"
  natd_flags=""
  上述2處修改後,編譯並安裝內核,可以實現共享上網。FREEBSD做網關,windows做工作站,隨後的工作可以從工作站用ssh登錄後進行,而且不影響工作站上網查資料——畢竟FREEBSD從安裝到真正投入使用還有很多調整。一般的服務器專用主板都整合了2個網卡。常見intel100M卡設備代碼是fxp,intel1000M卡是em,卡代碼在你安裝系統的時候可以在sysinstall--configure--networking裡看到。本例中兩個卡都是1000M卡,第一個網卡是em0,接外網。
  
  4. 服務器軟件安裝
  新的精簡內核編譯完成之後,就是安裝應用軟件了。建議按照我下面的順序來裝。安裝軟件前,建議先
  #ee /etc/make.conf
  在文件裡添加下面這行:
  MASTER_SITE_OVERRIDE=ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}
  指定ports軟件首先從國內下載。否則所有軟件從國外下載,有時候速度實在是不行。
  A. MYSQL 4.0的安裝
  我選擇了MYSQL4.0,不算老,也不算新。第二次裝的時候,ports已經到了4.0.20版了。下面根據本例中的情況,進行具體說明。前面說了,mysql默認數據庫放在/var分區裡,如果你的數據庫很大,那麼你需要在前面分區的時候把/var分區分到足夠大。ldconfig老大建議要4G。如果你和我一樣想把數據庫放到/usr分區,那麼:
  #mkdir /usr/db
  先在/usr建立一個數據庫目錄,然後
  #cd /usr/ports/databases/mysql40-server
  #ee Makefile
  打開Makefile,找到
  DB_DIR?= /var/db/mysql
  改為
  DB_DIR?= /usr/db/mysql
  隨後,按照這個帖子,根據delphij老大教誨,在Makefile裡CONFIGURE_TARGET那行前面的空行加上兩行優化選項:
  BUILD_OPTIMIZED=yes
  BUILD_STATIC= yes
  保存退出編輯。然後
  #make
  #make install
  開始下載並開始安裝數據庫。編譯安裝完之後,重啟機器可以啟動mysqld守護進程,可以
  #mysql
  如果能夠見到
  mysql>
  提示符,說明安裝好了。不過,剛裝完的mysql默認的數據庫連接是100個,遠遠不能應付大網站的要求。按照這個辦法加大吧:
  http://www.fanqiang.com/a2/b1/20010705/140800801.html
  具體到本例中的mysql4.0 for freebsd5.2.1,應該這樣修改連接數:
  #ee /usr/local/bin/mysqld_safe
  向下尋找到第312行(4.0.20版是314行),其行很長,以“$NOHUP_NICENESS”開頭,以“>> $err_log 2>&1”結尾。該行被嵌套在一個if語句裡。在312這行末尾的“ >> $err_log 2>&1”前面加上“ -O max_connections=1000 ”,(注意前後各留一個空格)。
  然後向下找到314行,也是很長的一行,以“eval "$NOHUP_NICENESS”開頭,以“>> $err_log 2>&1”結尾。同樣在“ >> $err_log 2>&1”前面加上“ -O max_connections=1000 ”。
  保存退出。然後重啟,此時的mysql40就是1000個並發連接的數據庫了。可以用下面的方法檢查一下:
  #cd /usr/local/bin
  #mysqladmin -uroot -p variables
  將會打出一個長列表,按scroll lock後向上卷動屏幕,能看到裡面有一項顯示
  | max_connections | 1000 |
  那麼表示最大並發連接數已經修改到1000了。
  至此,mysql數據庫就裝完了。
  
  B. APACHE2的安裝
  同樣的,由ports裝apache,也不會有什麼困難:
  #cd /usr/ports/www/apache2
  #make
  #make install
  完畢。就這麼簡單。編譯中間可能會提問相關軟件gettext的安裝選項,全選上吧。編譯時可能會提示安裝新版textproc/expat2錯誤,原因是機器裡已經有舊版的expat2。只需刪除舊版重新安裝新版expat2即可:
  #cd /usr/ports/textproc/expat2
  #make deinstall
  #make install
  #cd /usr/ports/www/apache2
  #make
  #make install
  繼續make即可。
  
  C. APACHE2的mod安裝
  APACHE2自帶SSL,所以無需安裝SSL。MOD_GZIP找不到有關APACHE2的文章,是不是也不用裝,很奇怪。所以剩下的就是FASTCGI和php了。
  按要求,先裝fastcgi for apache2,先看帖子:
  http://bbs.chinaunix.net/forum/viewtopic.php?t=221295
  輸入指令:
  #cd /usr/ports/www/mod_fastcgi
  #make WITH_APACHE2=yes install
  OK,完成了。
  下來是php。
  #cd /usr/ports/www/mod_php4
  #make
  然後下載編譯,中間會提示你選擇編譯配置選項。mysql已經默認選上了,下來把GD和openssl也選上吧。其他的選項我也不知道有什麼用,就沒選了。隨後
  #make install
  php4.3.6安裝完成。
  
  D. web的安裝後設置
  首先,設置apache的php訪問能力。
  #cd /usr/local/etc/apache2
  #ee httpd.conf
  在AddType application/x-gzip .gz .tgz後面加上下面3行:
  #php support
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps
  
  隨後設置網站默認啟動頁允許為index.php。同樣在httpd.conf裡編輯,不必退出。找到
  DirectoryIndex index.html index.html.var
  添加index.php進去,為:
  DirectoryIndex index.php index.html index.html.var
  
  再設置apache默認字符集為簡體中文。找到:
  AddDefaultCharset ISO-8859-1
  改為
  AddDefaultCharset GB2312
  
  另外,一個訪問量較大的網站,apache默認的150連接肯定是不行的。請根據這個帖子修改:http://www.cnfug.org/journal/3/02.html
  具體操作如下。尋找:
  
  找到這段之後,按照上述帖子的推薦值修改為:
  
  StartServers 10
  MinSpareServers 10
  MaxSpareServers 15
  ServerLimit 2000
  MaxClients 1500
  MaxRequestsPerChild 10000
  

  
  至此,httpd.conf的設置完成。可以保存退出了。當然,如果你要搞虛擬主機,請根據手冊和httpd.conf尾部的例子,再設置虛擬主機相關部分即可。有關我的虛擬主機設置,各位一會可以看我後面FTP安裝後的解釋。
  
  工作還沒有完,給php設置ini。如果沒什麼特殊要求,可以直接使用默認推薦的php.ini。
  #cd /usr/local/etc
  #cp php.ini-recommeded php.ini
  
  此時,重啟機器,http方式訪問這台服務器,例如http://192.168.0.1,就能看到apache2的頁面了。
  
  此時,可以用ee在服務器默認的web目錄裡寫一個簡單的php測試頁面,例如
  #ee /usr/local/www/data/index.php
  文件裡面只有這麼一行代碼:
  
  此時再訪問http://192.168.0.1,就可以看到本機的php頁面信息了。
  
  看到了phpinfo之後,就可以先安裝zend optimizer了。zend optimizer只能手工安裝,ports裡找不到。從http://www.zend.com/store/products/zend-optimizer.php下載ZendOptimizer-2.5.2-FreeBSD5.1-i386.tar.gz後,通過ssh上傳到服務器任一目錄裡。也可以用優盤、刻錄盤轉到服務器裡。然後解壓、安裝:
  #tar -zxvf ZendOptimizer-2.5.2-FreeBSD5.1-i386.tar.gz
  #cd ZendOptimizer-2.5.2-FreeBSD5.1-i386
  #./install.sh
  隨後zend optimizer安裝畫面出現,根據提示一步一步走即可。臨近完成,會提示
  x Your php.ini is relocated to the: /usr/local/Zend/etc directory x
  x and a symbolic link from the former place: x
  x /usr/local/etc/php.ini is created. x
  x x
  x Your original php.ini was backed-up to: x
  x /usr/local/etc/php.ini-zend_optimizer.bak x
  此時再訪問http://192.168.0.1/index.php,可以看到phpinfo裡有關zend optimizer的信息了。至此,web部分全部安裝設置完畢。
  
  E. pure-ftpd的安裝
  pure-ftpd的安裝,我完全學自這個帖子:
  http://www.freebsdchina.org/forum/viewtopic.php?t=10279
  前面有關mysql的就先不用看了。直接從pure-ftpd部分開始。本例中應該這麼繼續。
  #cd /usr/ports/ftp/pure-ftpd
  #ee Makefile
  根據上面的帖子給你的makefile裡加上必要的CONFIGURE_ARGS,然後保存退出ee。本例中沒有指定安裝目錄,使用ports默認的安裝目錄。
  #make WITH_MYSQL=1 WITH_LANG=simplified-chinese install clean
  隨後安裝會很順利完成。繼續下面的配置,執行下列操作,為pure-ftpd增加配置文件:
  #cd /usr/local/etc
  #cp pure-ftpd.conf.sample pure-ftpd.conf
  #cp pureftpd-mysql.conf.sample pureftpd-mysql.conf
  打開新生成的pure-ftpd.conf,把mysql數據庫的那行的那個注釋去掉——准備使用mysql作為驗證。
  MySQLConfigFile /etc/pureftpd-mysql.conf
  再指定禁止匿名登錄:
  NoAnonymous yes
  再指定允許上傳人修改文件名:
  NoRename no
  允許登錄用戶使用chmod指令
  NoChmod no
  使用者可刪除文件
  KeepAllFiles no
  自動建立帳戶的home dir
  CreateHomeDir yes
  
  conf設置完畢。隨後導入數據庫初始值。把下面這段拷貝粘貼為一個文本文件(原帖子有幾處錯誤),例如ftp.mysql,然後執行下列命令導入mysql數據庫裡:
  #mysql -u root -p123456 < ftp.mysql
  
  代碼:
  INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv,
  Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
  Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv,
  Index_priv, Alter_priv) VALUES
  ('localhost','ftp',PASSWORD('123456'),'Y','Y','Y','Y','N','N','N','N',
  'N','N','N','N','N','N');
  
  FLUSH PRIVILEGES;
  
  CREATE DATABASE ftpusers;
  
  USE ftpusers;
  
  CREATE TABLE admin (
  Username varchar(35) NOT NULL default ',
  Password char(32) binary NOT NULL default ',
  PRIMARY KEY (Username)
  ) TYPE=MyISAM;
  
  INSERT INTO admin VALUES ('Administrator',MD5('123456'));
  
  CREATE TABLE users (
  User char(16) NOT NULL default ',
  Password char(32) binary NOT NULL default ',
  Uid int(11) NOT NULL default '2000',
  Gid int(11) NOT NULL default '2000',
  Dir char(128) NOT NULL default ',
  QuotaFiles int(10) NOT NULL default '500',
  QuotaSize int(10) NOT NULL default '30',
  ULBandwidth int(10) NOT NULL default '80',
  DLBandwidth int(10) NOT NULL default '80',
  status enum('0','1') NOT NULL default '1',
  ipaclearcase/" target="_blank" >ccess varchar(15) NOT NULL default '*',
  comment tinytext NOT NULL,
  PRIMARY KEY (User),
  UNIQUE KEY User (User)
  ) TYPE=MyISAM;
  
  INSERT INTO `users` VALUES ('test1',MD5('123456'),2001,2000,'/home/test1',500,30
  80,5,1,'*','*');
  
  數據庫導入之後,還不能使用,還需要設置pureftpd-mysql.conf
  #ee pureftpd-mysql.conf
  根據文件裡的默認提示,修改即可,很簡單的。也可以參照上面說的帖子修改。
  
  至此有關系統裡的修改全部完畢。你現在重啟系統,可以試試用test1/123456來登錄一下ftp了。
  
  隨後,我們根據上述帖子,安裝php-manager,實現web模式的ftp管理。下載ftp.zip(漢化的ftp.zip:
  http://forum3.games.sina.com.cn/upload/39/400/20040615/1025/205182/205182.zip
  請盡快下載,晚了說不定就被sina刪了),傳到服務器上,然後
  #mv ftp.zip /usr/local/www/data
  #cd /usr/local/www/data
  #unzip ftp.zip
  #ee ftp/config.php
  修改config.php裡面的連接參數,其他的基本上都不用改。保存。然後就可以用http://192.168.0.1/ftp/來訪問這個web管理頁面了。登錄管理頁面,輸入密碼(本例是123456),就可以看到預設的用戶test1,及其狀態。
  
  四、系統安裝後的一些事項
  在本例中,這個web服務器是用來支撐4~5個網站或論壇用的。所以上面的安裝過程,實際上都是為了這個目的。
  那麼後續還有一些使用上的注意事項,這裡簡要說明一下。
  1. 首先,如果你想很方便地管理數據庫,那麼你應該裝一個phpmyadmin,可以通過ports裝,很簡單,而且也是默認裝在/usr/local/www/data裡。
  2. 其次,如果你想比較方便地監視服務器狀態,也可以裝一個phpsysinfo,ports裝也可以,同樣默認裝在/usr/local/www/data裡。這樣的話,服務器將來托管的時候,可以把/usr/local/www/data這個目錄做成一個只有你知道的虛擬主機即可。從這個虛擬主機裡可以看到整個服務器的狀態、管理服務器的mysql、新增ftp用戶及主機。(ports裝的phpsysinfo2.1對intel板載千兆網卡的工作狀態報告有些問題,從phpsysinfo的網站下載一個2.2版可以修正這個問題,而且2.2版支持簡體中文。)
  3. 關於新增虛擬主機。
  按照本例中的pureftpd的裝法,每當你在ftp管理頁面生成一個帳號後,例如web1,隨後用ftp軟件登錄server,server就會自動生成一個名為web1的用戶,並同時在/home裡生成一個web1的目錄,具體為:
  /home/web1
  (實際上也就是 /usr/home/web1 )
  如果你要限制web1的配額,那麼你在管理頁面裡就可以設置了。
  那麼隨後web1的apache2的web虛擬主機目錄,在httpd.conf裡當然也就指定為
  /home/web1
  依此類推。簡單吧?
  
  五、遠程控制你自己的web server
  除了上面提到的phpmyadmin和ftp之類的web頁面的簡單控制之外,你當然少不了最終極的遠程控制能力:ssh2。我是菜鳥,就不班門弄斧吹噓這東西的好處了。總之,這東西是非常安全的、可以遠程連接到你的server的手段。
  我前面都沒有提到ssh,而實際上,自打上面的第三步第1小步完成了操作系統的初始安裝之後,我們就可以使用ssh來遠程控制server了,不僅效果和server的本機console一樣,而且可能會更方便——因為我們可以用一個win2k的電腦,很方便地看著這裡的帖子,邊看邊裝,還能使用windows的CTRL-C/V,多好啊。
  首先聲明,所有有關ssh的安裝和連接的基本知識,都可以在下面這個帖子裡找到:
  http://www.freebsdchina.org/forum/viewtopic.php?t=10210
  
  下面我來根據我的實踐,簡單說說本例中的ssh應用方法。
  1. 首先在你的win2k上下載sshclient客戶端,它是免費提供的,而且似乎更好用。
  http://www.ssh.com/support/downloads/secureshellwks/non-commercial.html
  2. 由於我們安裝操作系統的時候已經選擇了ssh,所以,操作系統部分就不需要多設置了,默認就會啟動sshd守護進程的。
  3. 之前安裝系統的時候,曾經提示是否添加用戶,我已經提示大家要至少添加一個用戶,例如你自己的英文名字,而且這個用戶必須是wheel組,只有wheel組的用戶,才能遠程su切換為root。如果你當時沒有添加,那麼在server本機狀態現在添加一個wheel組的用戶吧,這個用戶將是你將來遠程登錄server的用戶。
  4. 在win2k上安裝好sshclient後,可以直接連接你的server,此時是用wheel組用戶名及其密碼登錄的。登錄後就可以su,然後輸入root密碼,就可以切換為root了。
  5. 上面這個登錄方式已經足夠安全了,別人無法竊聽,但是將來托管後還是有可能會有漏洞。由於我們和server之間現在還是本地lan方式的連接,不存在安全問題,所以我們此時先用密碼方式連到server,可以先用sshclient生成一個key,轉為key方式連接,這樣就基本沒有安全漏洞了。做法如下:
  打開sshclient,菜單選edit--settings,出現設置對話框。裡面有global settings--user authentications--keys選項,進入後,可以看到Generate New按鈕,按下後根據提示,可是生成一個key,把這個key文件,按下面的按鈕Upload,即可把這個key文件上傳到server上你登錄的home目錄裡,具體位置是/home/yourname/.ssh2。這個.ssh2目錄,是上傳時自動生成的。但Freebsd默認目錄名是.ssh,而不是.ssh2。所以,根據上面提到帖子,我們用剛才提到的wheel組用戶登錄server,進行如下操作:
  $su
  password:
  #ls
  能看見裡面已經有了一個.ssh2目錄。繼續下面:
  #mv .ssh2 .ssh
  改名為.ssh
  #cd .ssh
  #ssh-keygen -X -f yourkey.pub >> authorized_keys
  進入ssh目錄,把剛剛上傳的這個key文件導入機器的驗證文件裡。
  此時,你已經可以退出sshclient,以key的方式重新登錄你的server了,不需要輸入密碼,可以直接登錄,而且你不用擔心洩密。軟件附贈一個sftp,同樣是加密的,很安全。

Copyright © Linux教程網 All Rights Reserved