麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > FreeBSD > 正文

FreeBSD kernel 編譯大法(三)編kernel失敗的處理

2024-07-26 00:29:12
字體:
供稿:網(wǎng)友
第一課、安裝OpenBSD 2.8 

如果您的電腦不支持光盤啟動,請首先在DOS下進行以下的步驟,制作啟動軟盤,然后從軟盤
啟動電腦。(其中e:是光盤所在盤符) 

e:/2.8/tools/fdimage e:/2.8/i386/floppy28.fs a: 

如果您的電腦支持光盤啟動,直接從光盤啟動后,按照提示一步一步完成安裝,以下是安裝
過程的簡略描述: 

第一節(jié)、建立分區(qū) 

啟動電腦直到出現(xiàn)以下的提示: 
(I)nstall, (U)pgrade or (S)hell? 
其中(I)代表安裝一個全新的系統(tǒng),(U)代表升級原有的OpenBSD舊版本,(S)代表退出到命令行狀態(tài)。 
我們要安裝一個全新的系統(tǒng),所以輸入I并回車。 
在一屏歡迎辭之后,系統(tǒng)詢問使用什么終端類型: 
Specify terminal type [pcvt25]: 
不用理會它,直接回車,繼續(xù)以后的步驟。系統(tǒng)將檢測到可用的硬盤,并詢問對那個硬盤進行處理: 
Available disks are: 
wd0 
Which disk is the root disk? [wd0] 
上面的提示表明,電腦只有一個IDE硬盤,如果是SCSI硬盤,將顯示成sd0。因為系統(tǒng)只有一個硬盤,
所以安裝程序已經(jīng)幫我們選擇了硬盤,如果系統(tǒng)有多個硬盤,那就必須輸入硬盤的名稱,如wd1?,F(xiàn)
在直接回車進入下一步。 
系統(tǒng)詢問是否把整個硬盤給OpenBSD使用: 
Do you want to use the *entire* disk for OpenBSD? [no] 
默認(rèn)是no,不過手冊是要做服務(wù)器,所以輸入yes并回車吧!不過首先要確認(rèn)這個硬盤上面沒有重要
的數(shù)據(jù)?。?nbsp;
現(xiàn)在系統(tǒng)會進入fdisk(一個分區(qū)程序,輸入?并回車可以獲得使用幫助)。首先用d命令刪除原有的
分區(qū)(注意,c分區(qū)被OpenBSD系統(tǒng)保留使用,不能夠刪除或變更),然后用a命令新建分區(qū),您將得
到和下面類似的信息: 
offset: [xxxxxx]  
size: [xxxxxxxxxx]  
Rounding to nearest cylinder: xxxxxxxx 
FS type: [4.2BSD]  
mount point: [none]  
其中,offset是指每一個分區(qū)的偏移地址。不用理會,直接回車即可,系統(tǒng)會自動處理。size是分區(qū)
的大小,括號里面是剩余的可用磁盤空間大小??梢灾苯佑?0m這樣的輸入來表示分區(qū)的大小為80Mb。
Rounding to nearest cylinder由系統(tǒng)返回,是轉(zhuǎn)換成柱頭數(shù),不必理會。FS type是文件系統(tǒng)類型,
只有4.2BSD和swap兩個可選項。默認(rèn)情況下,b分區(qū)會使用swap選項。swap分區(qū)建議大小為內(nèi)存大小
的2倍。mount point相當(dāng)于DOS系統(tǒng)的目錄,系統(tǒng)必須有且只有一個根目錄“/”,swap分區(qū)無需
mount point。 
可以簡單的把swap分區(qū)以外的全部磁盤空間定義為“/”,但是不建議這么做,因為一旦磁盤出現(xiàn)問題,
就難于根據(jù)分區(qū)進行修復(fù)了。如果您有一個15Gb的硬盤,并且有128Mb的內(nèi)存,那么建議劃分如下: 
a 80m 4.2BSD / ;根目錄 
b 300m swap ;交換分區(qū) 
d 80m 4.2BSD /tmp ;臨時文件目錄 
e 800m 4.2BSD /usr ;應(yīng)用程序目錄 
f 2000m 4.2BSD /var ;應(yīng)用數(shù)據(jù)目錄 
g 剩余空間 4.2BSD /home ;用戶目錄 
如果安裝MySQL數(shù)據(jù)庫服務(wù),且要求方便管理的話,那么可以把/var/mysql單獨出來一個分區(qū)(會在后
面提及)。 
劃分好分區(qū)之后用w命令保存分區(qū)信息,q命令退出fdisk程序。 
The following partitions will be used for the root filesystem and swap: 
        wd0a    / 
        wd0b    swap 
Mount point for wd0d (size=98967k) [/tmp, RET, none, or done]?  
系統(tǒng)會再次確認(rèn)目錄分配,可以給粗心大意的人一個修正的機會,如果確定沒有錯誤的話,輸入done并
回車即可。 
系統(tǒng)會提示是否對其他硬盤進行處理,如果沒有其他硬盤或者不需要處理,輸入done并回車?yán)^續(xù)下一個
步驟,如果配置其他硬盤,按照上面的步驟進行即可。注意千萬不要對已經(jīng)配置過的硬盤進行再配置。 
系統(tǒng)詢問是否進行格式化: 
The next step will overwrite any existing data on: 
        wd0a wd0d wd0e wd0f wd0g  
Are you really sure that you're ready to PRoceed? [n] 
當(dāng)然輸入y并回車了,做了這么多,難道不繼續(xù)嗎? 

第二節(jié)、配置網(wǎng)絡(luò) 
經(jīng)過硬盤格式化之后,系統(tǒng)將詢問是否配置網(wǎng)絡(luò): 
Configure the network [y] 
既然是做服務(wù)器,當(dāng)然要網(wǎng)絡(luò)支持的,回車開始配置網(wǎng)絡(luò)。 
Enter system hostname (short form): []  
Enter DNS domain name: []  
輸入hostname(主機名)和domain name(域名),如果有合法的國際域名的話,就使用國際域名。先假
設(shè)hostname為moo,domain name為01tech.nat(避免和國際域名沖突)。 
系統(tǒng)提示配置網(wǎng)卡,手冊例子使用的是DE-530TX 10/100Mbps自適應(yīng)網(wǎng)卡,在OpenBSD下面的設(shè)備名為vr0,
如果是NE2000兼容網(wǎng)卡,可能顯示為ne0,系統(tǒng)會自動檢測并列出來: 
You may configure the following network interfaces (the interfaces 
marked with [X] have been succesfully configured): 
        [ ] vr0 
Configure which interface? (or, enter 'done') [vr0]  
在本例中,系統(tǒng)只有一個網(wǎng)卡,且已經(jīng)選定,直接回車開始配置,如果沒有選定,請輸入設(shè)備名并回車
進行配置。 
ip address (or 'dhcp') ? []  
Symbolic (host) name? [moo]  
Netmask ? [255.255.255.0]  
在IP address中輸入dhcp并回車將會使用動態(tài)分配的IP地址,作為服務(wù)器應(yīng)該有固定的IP地址,所以這
里應(yīng)該輸入192.168.32.1并回車(關(guān)于IP地址和掩碼的知識請參考其他文章)。Symbolic (host) name其
實就是hostname啦!系統(tǒng)會自動使用剛才輸入的hostname,直接回車就可以了。Netmask(掩碼)默認(rèn)
是255.255.255.0,就用這個吧,回車?yán)^續(xù)。 
Your use of the network interface may require non-default 
media directives.  The default media is: 
        media: Ethernet autoselect (100baseTX full-duplex) 
This is a list of supported media: 
        media autoselect 
        media 100baseTX mediaopt full-duplex 
        media 100baseTX 
        media 10baseT mediaopt full-duplex 
        media 10baseT 
If the default is not satisfactory, and you wish to use another 
media, copy that line from above (e.g. "media 100baseTX") 
Media directives? [] 
別看這么多信息,其實就做一個事,選擇網(wǎng)卡的接入網(wǎng)絡(luò)方式,最簡單的方式就是選擇media autoselect
并回車。 
系統(tǒng)會詢問是否配置其他的網(wǎng)卡,如果系統(tǒng)只有一個網(wǎng)卡的話,會自動選定done,只需要回車即可進入下
一個步驟。其他網(wǎng)卡的配置象上面一樣配置就可以了。 
Enter IP address of default route: [none]  
Enter IP address of primary nameserver: [none]  
Would you like to use the nameserver now? [y]  
路由route不需要輸入,除非要鏈接到不同域的機器。因為要在這臺服務(wù)器上提供域名解釋服務(wù),所以
nameserver就指向自己吧,也就是輸入192.168.32.1就可以了。至于是否現(xiàn)在啟動nameserver就沒所謂了。
回車?yán)^續(xù)。 
第三節(jié)、設(shè)置管理員口令 
Please enter the initial passWord that the root account will have. 
系統(tǒng)要求輸入管理員口令,并確認(rèn)一次,千萬要記住啊,不然電腦重新啟動之后進入不了系統(tǒng)進行管理。
這里假設(shè)口令為123456,在實際的應(yīng)用中千萬不要使用這樣的口令,而應(yīng)該采用字母、字符和數(shù)字混合
的口令。 

第四節(jié)、安裝應(yīng)用程序 
然后安裝程序詢問是否會運行X Window: 
Do you expect to run the X Window System? [y] 
當(dāng)然不會,輸入n并回車?yán)^續(xù)下一步。選擇安裝媒體介質(zhì)。 
Install from (f)tp, (h)ttp, (t)ape, (C)D-ROM, (N)FS or local (d)isk? 
有多種方式安裝系統(tǒng),我們只選擇(C),通過CD-ROM安裝。 
The following CD-ROM devices are installed on your system;  
please make 
sure the CD is in the CD-ROM drive and select the device containing 
the CD with the installation sets: 
cd0 
Which CD-ROM contains the installation media? [cd0] 
系統(tǒng)將檢測可用的CD-ROM,并給予選定,這里是只有一個CD-ROM的狀態(tài),如果多于一個CD-ROM的狀況,
請選擇正確的放有安裝光盤的CD-ROM,否則安裝程序會Halt在那里,無法繼續(xù)。 
Enter the directory relative to the mount point that 
contains the file. [/2.8/i386]  
確認(rèn)安裝文件所在目錄,如果您使用01TECH上面提供的光盤,回車確認(rèn)即可。 
The following sets are available for extraction. 
Enter filename, `list', `all', or `done'. 
You may de-select a set by prepending a '-' to its name. 
        [X] base28.tgz 
        [X] etc28.tgz 
        [ ] misc28.tgz 
        [ ] comp28.tgz 
        [X] man28.tgz 
        [ ] game28.tgz 
        [ ] xbase28.tgz 
        [ ] xshare28.tgz 
        [ ] xfont28.tgz 
        [ ] xserv28.tgz 
        [X] bsd 
File name? [] 
因為安裝服務(wù)器,我們只需要上面已經(jīng)打“X”的的程序包,另外,因為有部分程序必須由源程序編譯
獲得,所以必須選擇comp28.tgz。也就是說要有base28.tgz、etc28.tgz、comp28.tgz、man28.tgz以
及bsd。 
確認(rèn)這五個項前面都打“X”后,輸入done并回車,詢問: 
Ready to extract selected file sets? [y] 
當(dāng)然要解包,這個問題實在有點弱智啊! 
Extract more sets? [n] 
嗯?上帝說,再給你一個懺悔的機會?別管他,回車?yán)^續(xù)吧! 

第五節(jié)、設(shè)定時區(qū) 
然后就是選擇時區(qū): 
What timezone are you in? [`?' for list] [GMT]  
可以用?查看一下有什么可以選擇的時區(qū),不過確定沒有北京時間,選香港的吧,輸入Hongkong并回車。 
系統(tǒng)一番自動處理之后,終于出現(xiàn)了命令行模式的提示符“#”。恭喜,OpenBSD 2.8到此安裝完畢。
輸入reboot回車,重新啟動電腦吧!記住改為硬盤啟動??!現(xiàn)在可以歇一歇了。 

重新啟動電腦之后,用root作為用戶名,123456作為密碼就可以登錄您的OpenBSD 2.8系統(tǒng)了。 








第二課、設(shè)置域名解釋服務(wù) 
首先解釋一下域名服務(wù)(DNS-Domain Name Server)的作用。其實,鏈接到網(wǎng)絡(luò)的電腦,只需要知
道IP地址就可以實現(xiàn)訪問。但是誰會去記住129.128.5.191這個IP地址是代表OpenBSD的服務(wù)器呢?當(dāng)然
是www.openbsd.org容易記憶得多了。域名服務(wù)所實現(xiàn)的作用,就是把www.openbsd.org這樣的名字轉(zhuǎn)換
成電腦可以識別的129.128.5.191這樣的IP地址。 
所以域名解釋服務(wù)應(yīng)當(dāng)包含兩種轉(zhuǎn)換過程:從名字到IP地址(正向解釋);從IP地址到名字(反向
解釋)。理解了這些基本感念,配置域名解釋服務(wù)得時候就會比較容易了。 

第一節(jié)、設(shè)置named.boot文件 
OpenBSD 2.8系統(tǒng)在安裝完成后就已經(jīng)有域名解釋服務(wù)程序named 4.9.7-REL,只是需要人工設(shè)定啟
動。named的配置文件在/var/named目錄里面,文件名是named.boot。一個簡單的,可以使用的(當(dāng)然是
和手冊的例子聯(lián)系起來啦?。┑膎amed.boot的文件內(nèi)容如下: 
directory /namedb 
cache . root.cache 
primary 0.0.127.IN-ADDR.ARPA localhost.rev 
primary 32.168.192.IN-ADDR.ARPA 01tech.rev 
primary 01tech.nat 01tech 
可以用vi工具來編輯這個文件(vi的使用方法請參考『附錄4』)。解釋一下這個文件各行的含義: 
第一行用于指定域名解釋文件所在目錄,其實真正的域名解釋文件是放在/var/named/namedb目錄里
面,因為我們將采用chroot的方式(執(zhí)行程序的時候切換到程序需要的用戶,并以改用戶的根目錄作為
根目錄的方式)執(zhí)行named,所以這里是/namedb。 
第二行指定了緩存文件,對于曾經(jīng)訪問過的域名,將會記錄在緩存文件里面,以后查詢的時候就會
快很多。緩存文件的文件名是root.cache。 
第三行指定了對于本機的域名反解文件。0.0.127.IN-ADDR.ARPA的寫法其實就是說要反過來求
127.0.0.x(x的范圍是1~255)的對應(yīng)名稱。相關(guān)的解釋文件是localhost.rev 
第四行和第三行同理,就是要求192.168.32.x的對應(yīng)名稱。相關(guān)的解釋文件是01tech.rev 
第五行是正解,指定凡是域名為01tech.nat的名稱都交給01tech文件進行解釋。 

第二節(jié)、配置域名解釋文件 
然后,我們看看/var/namedb目錄里面的文件的內(nèi)容,在系統(tǒng)沒有配置域名解釋服務(wù)的時候,默認(rèn)
只有兩個文件:localhost.rev和root.cache,其中的localhost.rev并非我們需要的內(nèi)容,要自行改寫,
改寫后的內(nèi)容如下: 
@ IN SOA moo.01tech.nat. root.moo.01tech.nat. ( 
14 ;Serial 
3600 ;Refresh 
900 ;Retry 
3600000 ;Expire 
3600) ;Minimum 
IN NS moo.01tech.nat. 
1 IN PTR localhost. 
解釋一下這個文件的構(gòu)成吧!其實這個文件由三個RR(Resource record)構(gòu)成,或者我們用表格的
方式來分析,會比較容易理解吧: 
[ name ] [ ttl ] [ class ] type data 
@ 省略 IN SOA …… 
省略 省略 IN NS …… 
1 省略 IN PTR …… 
Name必須為主機名或者域名,當(dāng)使用@時代表縮寫,就是和named.boot文件中指定的一樣,在這里就代
表127.0.0.x了。 
ttl是指此條數(shù)據(jù)的有效保存期限,通常都忽略掉,采用默認(rèn)的ttl值。 
class指定網(wǎng)絡(luò)類型,IN代表Internet,基本上都不會使用別的類型。 
type常見的有SOA、NS、A、PTR、MX、CNAME等。 
SOA(Start Of Authority)后面跟負(fù)責(zé)這個域的主機,管理員郵箱,序列號,副解釋域更新間隔,副解
釋域更新失敗重試間隔,主解釋域失敗時副解釋域提供數(shù)據(jù)的有效期限,其他域名解釋服務(wù)器保留本域
名解釋服務(wù)器的時間。需要注意的是,在主機和管理員郵箱后一定不能缺少“.”否則系統(tǒng)會自動加上
完整的域名,例如只寫moo的話,系統(tǒng)會添加為moo.01tech.nat。所以也可以簡單的把SOA語句寫
作SOA moo root.moo (……)。 
NS(Name Server)后面跟指定的提供域名解釋服務(wù)的主機名 
PTR(Pointer)后面是對應(yīng)于前面IP地址的名稱。 
A(Address)后面是對應(yīng)于前面的名稱的IP地址。需要注意正解的A和反解的PTR的記錄必須相符,否則會
造成DNS查詢不正常,系統(tǒng)變慢。 
CNAME用于建立別名,這樣訪問別名的時候,就會轉(zhuǎn)為訪問正式的名稱。 
MX記錄的是一串目的地址列表,用于告訴郵件服務(wù)器傳送信件的優(yōu)先順序。 
對于A、CNAME、MX的使用方法將會在后面的正解文件中看到,以后將不再作出解釋。 
01tech.rev的文件內(nèi)容和localhost.rev文件基本相同,如下: 
@ IN SOA moo.01tech.nat. root.moo.01tech.nat. ( 
14 ;Serial 
3600 ;Refresh 
900 ;Retry 
3600000 ;Expire 
3600) ;Minimum 
IN NS moo.01tech.nat. 
1 IN PTR moo.01tech.nat. 
01tech的內(nèi)容如下: 
@ IN SOA moo.01tech.nat. root.moo.01tech.nat. ( 
14 ;Serial 
3600 ;Refresh 
900 ;Retry 
3600000 ;Expire 
3600) ;Minimum 
IN NS moo.01tech.nat. 
IN MX 5 pop.01tech.nat. 
moo IN A 192.168.32.1 
www IN CNAME moo 
pop IN CNAME moo 
smtp IN CNAME moo 
localhost. IN CNAME moo 
01tech.nat. IN CNAME moo 
第三節(jié)、測試DNS 
好了,說了一大堆的東西,需要好好消化,不過我們還是看看我們的DNS是否正常吧,通過以下
的命令啟動named: 
named –t /var/named 
然后用nslookup來檢查DNS是否正常。以下是nslookup運行的結(jié)果,任何時候如果域名不能解釋,
通過按Ctrl+C可以中斷查詢。 
nslookup 
Default Server: moo.01tech.nat 
Address: 192.168.32.1 
>pop 
Server: moo.01tech.nat 
Address: 192.168.32.1 
Name: moo.01tech.nat 
Address: 192.168.32.1 
Aliases: pop.01tech.nat 
>exit 
如果您完全按照手冊的例子來配置您的DNS,但是查詢卻沒有這樣的結(jié)果,那么您需要重新再來,
好好吃透上面的說明了。 

第四節(jié)、在啟動系統(tǒng)的時候自動啟動DNS 
要使系統(tǒng)在啟動時自動啟動DNS服務(wù)非常簡單,修改/etc/rc.conf文件里面的相關(guān)項就可以了 
named_flags=NO 改為 named_flags=”” 






第三課、配置數(shù)據(jù)庫服務(wù) 
如果您不需要數(shù)據(jù)庫服務(wù)可以略過本課,但是后面的課程中相當(dāng)部分和本課有關(guān),所以即使不打算
配置數(shù)據(jù)庫服務(wù),也應(yīng)該看看本課的內(nèi)容。 
MySQL數(shù)據(jù)庫是目前最受歡迎的免費數(shù)據(jù)庫,由于具有優(yōu)異的效率和簡潔的控制方式,所以被眾多
的服務(wù)商采用。盡管它還有一些不足,例如不支持事務(wù)和子選擇,但這些缺陷可以通過編程解決。 
在本手冊開始寫作的時候,MySQL的最新穩(wěn)定版本是3.23.32,還沒有OpenBSD的port(OpenBSD中的
每一個應(yīng)用都是一個port),所以我們在手冊光盤中包含了它的源代碼包,并寫作了本課以教導(dǎo)您如何
在OpenBSD下面編譯并安裝MySQL。 

第一節(jié)、展開MySQL源代碼包 
首先需要讓系統(tǒng)可以讀取光盤(因為源代碼包在光盤里面啊?。椒ǚ浅:唵危恍鑸?zhí)行以下
的命令即可: 
mount /dev/cd0c /mnt 
然后轉(zhuǎn)入/usr/src目錄,把MySQL-3.23.32的源代碼包解壓 
cd /usr/src 
tar zxvf /mnt/packages/mysql-3.23.32.tar.gz 
這樣,在/usr/src目錄下面就會有一個名為mysql-3.23.32的目錄,里面就是MySQL-3.23.32的源
代碼。為了繼續(xù)后面的工作,我們需要進入該目錄。 
cd mysql-3.23.32 

第二節(jié)、為MySQL服務(wù)程序建立所需的組和用戶 
要正確編譯和安裝MySQL數(shù)據(jù)庫服務(wù)程序,需要建立mysql組和屬于mysql組的mysql用戶。在以后
運行MySQL數(shù)據(jù)庫服務(wù)程序的時候同樣需要它們,建立的方法如下: 
groupadd mysql 
useradd –g mysql mysql 

第三節(jié)、運行配置程序 
因為要編譯源代碼必須先獲得和系統(tǒng)相關(guān)的信息,包括編譯器版本,系統(tǒng)支持的線程方式
(OpenBSD是一個支持多線程的系統(tǒng))等。因此需要運行配置程序以獲取這些信息。 
./configure --prefix=/usr/local / 
          --localstatedir=/var/mysql / 
          --with-low-memory / 
          --without-bench / 
          --without-debug 
我們解釋一下配置程序里面各行的含義。./configure就是要執(zhí)行的配置程序了;--prefix=/usr/local
表示,編譯后的MySQL數(shù)據(jù)庫服務(wù)程序?qū)惭b到/usr/local/bin目錄當(dāng)中,而庫文件會安裝到
/usr/local/lib/mysql目錄中,頭文件將安裝到/usr/local/include目錄中;--localstatedir=/var/mysql
表示數(shù)據(jù)庫所用到的數(shù)據(jù)將會安裝到/var/mysql目錄中(我們在安裝OpenBSD的時候提到如果需要,
可以為/var/mysql建立一個獨立的分區(qū)就是這個原因,這樣可以方便管理);--with-low-memory這一
句至關(guān)重要,沒有了它,基本上就不要指望在您的機器上面通過編譯,除非您擁有超過1Gb的內(nèi)存,這句
會指導(dǎo)編譯程序使用交換分區(qū)作為虛擬內(nèi)存;--without-bench和—without-debug告訴編譯器和安裝腳本
不需要測試程序和調(diào)試信息。 
好了,解釋得夠清楚嗎? 

第四節(jié)、編譯和安裝MySQL 
這個步驟非常簡單,只需要執(zhí)行下面的命令即可,其他得事情由電腦來完成。因為編譯的過程非常久,
可以喝杯水歇一歇。 
make 
make install 
make init-db 

第五節(jié)、測試MySQL 
對不起,本節(jié)的標(biāo)題有點含糊。這里的測試是指測試MySQL的編譯和安裝是否正常。為了測試MySQL
是否被正確編譯和安裝,需要執(zhí)行以下的命令: 
/usr/local/bin/safe_mysqld > /dev/null & 
/usr/local/bin/mysqladmin –u root password ‘123456’ 
如果第二條命令無聲無息地結(jié)束了,那么就證明MySQL可以正常使用了。對了,第二條命令其實是更
改系統(tǒng)管理員的口令??!那么您知道以后使用MySQL程序的時候需要的口令了嗎? 

第六節(jié)、讓MySQL在系統(tǒng)啟動的時候自動啟動 
我們需要做一些工作來讓MySQL在系統(tǒng)啟動的時候自動啟動。首先我們修改/etc/rc.conf文件,添加
以下的行: 
mysqld_flags=”” 
然后,需要修改/etc/rc文件,找到啟動named的代碼(第171行),添加以下的代碼: 
if [ “X${mysqld_flags}” != X”NO” ]; then 
echo ‘starting mysqld’ 
/usr/local/bin/safe_mysqld > /dev/null & 
fi 
另外,為了讓其他需要用到MySQL的程序編譯可以順利通過,就需要在/etc/rc.local文件中添加以
下的代碼: 
if [ “X${mysqld_flags}” != X”NO” ]; then 
/sbin/ldconfig –m /usr/local/lib/mysql 
fi 








第四課、配置郵件服務(wù) 
其實OpenBSD 2.8在系統(tǒng)安裝完成之后,就已經(jīng)安裝且啟動了郵件服務(wù)sendmail。我們在這里需要為
OpenBSD找一個比sendmail更加安全、更加容易使用和高效能的郵件服務(wù)程序,我們選擇了qmail(利用
qmail加上vpopmail可以把系統(tǒng)用戶和郵件用戶分離,并且使用虛擬郵件域。再加上MySQL就可以實現(xiàn)郵件
用戶的數(shù)據(jù)庫口令校驗,這是我選擇qmail的原因)。 

第一節(jié)、關(guān)閉sendmail 
因為qmail作為sendmail的替代服務(wù)程序,不能和sendmail一起工作,所以必須先關(guān)閉sendmail程序。
執(zhí)行以下的命令關(guān)閉正在執(zhí)行的sendmail程序。 
Kill –9 `cat /var/run/sendmail.pid` 
同時,必須把sendmail相關(guān)的鏈接刪除,并把senmail更名 
chmod 0 /usr/sbin/sendmail /usr/sbin/sendmail.old 
最后還必須修改/etc/rc.conf文件,更改sendmail_flags以避免系統(tǒng)重新啟動時sendmail自動啟動。 
sendmail_flags=”-q 30m” 改為 sendmail_flags=NO 

第二節(jié)、安裝qmail 
如果一直按照手冊的例子進行練習(xí),那么現(xiàn)在應(yīng)該可以訪問CD-ROM,如果系統(tǒng)曾經(jīng)重新啟動,那么
請按照第三課、第一節(jié)的內(nèi)容來訪問CD-ROM。 
進入/mnt/packages目錄并安裝qmail執(zhí)行代碼包: 
cd /mnt/packages 
pkg_add qmail-1.03.tgz 
安裝的過程中會詢問是否添加一些組和用戶,默認(rèn)選擇Y,不用改變,直接回車?yán)^續(xù)就可以了。一定
要記錄qmaild的uid和nofiles的gid,因為在以后的課程中啟動smtp和pop的時候需要它們(例如qmaild的
uid是2850,nofiles的gid是32750)。Qmail被安裝到/var/qmail目錄。 

第三節(jié)、配置qmail 
要配置和運行需要DNS正確運行,如果還沒有配置DNS服務(wù),請按照第二課的內(nèi)容進行配置。 
首先執(zhí)行以下的命令建立新的sendmail鏈接,以實現(xiàn)和sendmail的兼容: 
ln –s /var/qmail/bin/sendmail /usr/sbin/sendmail 
然后建立基礎(chǔ)的域信息,使用下面的命令來完成: 
/var/qmail/setup/config-fast 01tech.nat 
當(dāng)然,也可以通過/var/qmail/setup/config來設(shè)置基礎(chǔ)域信息,不過既然DNS正常,為什么不使用更
快捷的方法呢?config的用法請參考/var/qmail/doc里面的文檔。 
復(fù)制rc文件,并對其進行修改,讓它和sendmail兼容: 
cp /var/qmail/boot/home /var/qmail/rc 
qmail默認(rèn)使用Mailbox,而sendmail默認(rèn)使用Maildir,很多的程序都根據(jù)sendmail規(guī)則來編寫,需
要使用Maildir,所以需要更改rc文件,作出以下的更改: 
Mailbox 改為 Maildir 

第四節(jié)、測試qmail 
安裝和配置完成之后當(dāng)然要測試一下qmail的運作是否正常了,執(zhí)行以下的命令啟動qmail服務(wù): 
csh –cf ‘/var/qmail/rc &’ > /dev/null & 
然后使用以下的命令查看是否存在qmail-lspawn ./Maildir。如果已經(jīng)存在,則證明qmail服務(wù)已經(jīng)
正常啟動,如果沒有找到,就需要按照第三節(jié)的內(nèi)容重新配置。 
ps -x 

第五節(jié)、啟動系統(tǒng)時自動運行qmail服務(wù) 
首先修改/etc/rc.conf文件,添加以下的內(nèi)容: 
qmail_flags=”” 
然后修改/etc/rc文件,找到sendmail的啟動代碼,在后面添加以下的代碼: 
if [ “X${qmail_flags}” != X”NO” ]; then 
echo –n ‘ qmail’; csh –cf ‘/var/qmail/rc &’ > /dev/null & 
fi 





第五課、分離系統(tǒng)用戶和郵件用戶 
我們使用vpopmail來分離系統(tǒng)用戶和郵件用戶,這樣可以提高系統(tǒng)的安全性。而且vpopmail還可以
使用虛擬域名,也就是同一個IP的不同域名的郵箱。 

第一節(jié)、展開源代碼包 
進入/usr/src目錄,并解壓vpopmail-4.9.8源代碼包,然后進入vpopmail-4.9.8目錄: 
cd /usr/src 
tar zxvf /mnt/packages/vpopmail-4.9.8.tar.gz 
cd vpopmail-4.9.8 
 
第二節(jié)、使用MySQL支持 
如果您的系統(tǒng)沒有提供MySQL支持,請?zhí)^這一步。 
修改vmysql.h文件,找到其中的一行內(nèi)容為: 
#define MYSQL_PASSWORD “gipgap” 
把里面的gipgap替換成為可以訪問MySQL的系統(tǒng)管理員口令123456: 
#define MYSQL_PASSWORD “123456” 

第三節(jié)、添加組和用戶 
編譯和運行vpopmail,需要vchkpw組和屬于vchkpw組的vpopmail用戶。使用以下的命令添加組和用戶: 
groupadd vchkpw 
useradd –g vchkpw vpopmail 

第四節(jié)、準(zhǔn)備/etc/tcp.smtp文件 
要編譯vpopmail需要有tcp.smtp文件,默認(rèn)的存放路徑是/etc目錄,通過下面的命令產(chǎn)生該文件: 
echo ‘127.0.0.:allow,RELAYCLIENT=””’ > /etc/tcp.smtp 

第五節(jié)、運行配置程序 
運行配置程序configure,獲取編譯所需的編譯器,外部環(huán)境等信息: 
./configure --enable-default-domain=01tech.nat / 
          [email protected] / 
          --enable-mysql=y / 
          --enable-sqlincdir=/usr/local / 
          --enable-sqllibdir=/usr/local / 
          --enable-large-site=y / 
          --enable-passwd=n / 
          --enable-hardquota=8000000 
解釋一下各項的含義:--enable-default-domain=01tech.nat指定默認(rèn)的郵件域是
01tech.nat;[email protected]說明管理員的郵箱;--enable-mysql=y告訴編
譯器要使用MySQL數(shù)據(jù)庫作口令檢查服務(wù);--enable-sqlincdir=/usr/local和—enable-sqllibdir=/usr/local
告訴編譯器到哪里尋找MySQL的頭文件和庫文件;--enable-large-site=y用于把域信息保存到MySQL數(shù)據(jù)庫中,
但是如果有太多的虛擬域則不適宜采用本項;--enable-passwd=n告訴系統(tǒng)不在/etc/passwd口令文件中
查找郵箱用戶的口令;--enable-hardquota=8000000限制每個用戶的郵箱大小為8Mb。 
第六節(jié)、編譯并安裝vpopmail 
只需要簡單的命令,即可編譯并安裝vpopmail: 
make 
make install-strip 
安裝后的vpopmail在/home/vpopmail目錄下。 

第七節(jié)、添加郵件域和更改postmaster口令 
現(xiàn)在的vpopmail還沒有郵件域,即使在編譯的時候指定了默認(rèn)的郵件域也一樣需要通過執(zhí)行以下的
程序來添加郵件域: 
/home/vpopmail/bin/vadddomain 01tech.nat 
系統(tǒng)會詢問屬于這個域的postmaster的口令并要求確認(rèn),輸入123456作為口令吧(記住,這里使用的
任何口令都不應(yīng)該在實際應(yīng)用中出現(xiàn),否則您的系統(tǒng)會有很大的安全問題)! 
如果在這個步驟出現(xiàn)錯誤提示,那么您很可能需要重新進行本課的練習(xí)了。 
第八節(jié)、啟動smtp和pop3服務(wù) 
要用戶可以用smtp方式發(fā)送郵件以及使用pop3方式接受郵件,需要修改/etc/rc文件,在qmail啟動代
碼后面添加以下的代碼: 
if [ -x /home/vpopmail/bin/vchkpw ]; then 
echo –n ‘ smtpd’ 
/usr/local/bin/tcpserver –u2850 –g32750 0 smtp / 
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null & 
echo –n ‘ popd’ 
/usr/local/bin/tcpserver 0 pop3 / 
/var/qmail/bin/qmail-popup pop.01tech.nat / 
/home/vpopmail/bin/vchkpw / 
/var/qmail/bin/qmail-pop3d Maildir & 
fi 
經(jīng)過上面的修改,系統(tǒng)在每次重新啟動之后,都會自動啟動smtp和pop3服務(wù)了。 

vpopmail的管理手冊在/home/vpopmail/doc目錄中。 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产九九九 | 亚洲人成在线播放网站 | 欧美在线中文字幕 | 精品成人久久久 | 日韩黄色片免费看 | 九九热精品在线 | 国产伦久视频免费观看视频 | 欧美日韩成人一区二区 | 销魂美女一区二区 | 国产成人自拍av | 欧美xxxx精品另类 | 国产精品99久久久久久宅女 | 国产韩国精品一区二区三区久久 | 久久蜜桃精品一区二区三区综合网 | 宅男噜噜噜66国产免费观看 | 色综合激情 | 国产自在线 | 免费专区 - 91爱爱 | 91短视频网址 | 欧美精品一区二区三区在线播放 | 欧美ab| 亚洲va久久久噜噜噜久久男同 | 国产精品视频一区二区三区四区五区 | 99爱福利视频在线观看 | 国产91精品久久久久久久 | 日本不卡视频在线观看 | 在线无码 | 91成人免费视频 | 免费a级作爱片免费观看欧洲 | 久久91亚洲人成电影网站 | 久久国产精品免费视频 | 成人福利免费在线观看 | 欧美日韩国产一区二区三区在线观看 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 国产a级久久 | 九九热在线视频免费观看 | 一级国产精品一级国产精品片 | 羞羞视频免费观看网站 | 中文字幕涩涩久久乱小说 | 99麻豆久久久国产精品免费 | 大西瓜永久免费av在线 |