第一课、安装OpenBSD;2.8;
如果您的电脑不支持光盘启动 , 请首先在DOS下进行以下的步骤 , 制作启动软盘 , 然后从软盘
启动电脑 。(其中e:是光盘所在盘符);
e:2.8toolsfdimage;e:2.8i386floppy28.fs;a:;
如果您的电脑支持光盘启动 , 直接从光盘启动后 , 按照提示一步一步完成安装 , 以下是安装
过程的简略描述:;
第一节、建立分区;
启动电脑直到出现以下的提示:;
(I)nstall,;(U)pgrade;or;(S)hell?;
其中(I)代表安装一个全新的系统 , (U)代表升级原有的OpenBSD旧版本 , (S)代表退出到命令行状态 。;
我们要安装一个全新的系统 , 所以输入I并回车 。;
在一屏欢迎辞之后 , 系统询问使用什么终端类型:;
Specify;terminal;type;[pcvt25]:;
不用理会它 , 直接回车 , 继续以后的步骤 。系统将检测到可用的硬盘 , 并询问对那个硬盘进行处理:;
Available;disks;are:;
wd0;
Which;disk;is;the;root;disk?;[wd0];
上面的提示表明 , 电脑只有一个IDE硬盘 , 如果是SCSI硬盘 , 将显示成sd0 。因为系统只有一个硬盘 ,
所以安装程序已经帮我们选择了硬盘 , 如果系统有多个硬盘 , 那就必须输入硬盘的名称 , 如wd1 。现
在直接回车进入下一步 。;
系统询问是否把整个硬盘给OpenBSD使用:;
Do;you;want;to;use;the;*entire*;disk;for;OpenBSD?;[no];
默认是no , 不过手册是要做服务器 , 所以输入yes并回车吧!不过首先要确认这个硬盘上面没有重要
的数据啊!;
现在系统会进入fdisk(一个分区程序 , 输入?并回车可以获得使用帮助) 。首先用d命令删除原有的
分区(注意 , c分区被OpenBSD系统保留使用 , 不能够删除或变更) , 然后用a命令新建分区 , 您将得
到和下面类似的信息:;
offset:;[xxxxxx]
size:;[xxxxxxxxxx]
Rounding;to;nearest;cylinder:;xxxxxxxx;
FS;type:;[4.2BSD]
mount;point:;[none]
其中 , offset是指每一个分区的偏移地址 。不用理会 , 直接回车即可 , 系统会自动处理 。size是分区
的大小 , 括号里面是剩余的可用磁盘空间大小 。可以直接用80m这样的输入来表示分区的大小为80Mb 。
Rounding;to;nearest;cylinder由系统返回 , 是转换成柱头数 , 不必理会 。FS;type是文件系统类型 ,
只有4.2BSD和swap两个可选项 。默认情况下 , b分区会使用swap选项 。swap分区建议大小为内存大小
的2倍 。mount;point相当于DOS系统的目录 , 系统必须有且只有一个根目录“/” , swap分区无需
mount;point 。;
可以简单的把swap分区以外的全部磁盘空间定义为“/” , 但是不建议这么做 , 因为一旦磁盘出现问题 ,
就难于根据分区进行修复了 。如果您有一个15Gb的硬盘 , 并且有128Mb的内存 , 那么建议划分如下:;
a;80m;4.2BSD;/;;根目录;
b;300m;swap;;交换分区;
d;80m;4.2BSD;/tmp;;临时文件目录;
e;800m;4.2BSD;/usr;;应用程序目录;
f;2000m;4.2BSD;/var;;应用数据目录;
g;剩余空间;4.2BSD;/home;;用户目录;
如果安装MySQL数据库服务 , 且要求方便管理的话 , 那么可以把/var/mysql单独出来一个分区(会在后
面提及) 。;
划分好分区之后用w命令保存分区信息 , 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]?
系统会再次确认目录分配 , 可以给粗心大意的人一个修正的机会 , 如果确定没有错误的话 , 输入done并
回车即可 。;
系统会提示是否对其他硬盘进行处理 , 如果没有其他硬盘或者不需要处理 , 输入done并回车继续下一个
步骤 , 如果配置其他硬盘 , 按照上面的步骤进行即可 。注意千万不要对已经配置过的硬盘进行再配置 。;
系统询问是否进行格式化:;
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];
当然输入y并回车了 , 做了这么多 , 难道不继续吗?;
第二节、配置网络;
经过硬盘格式化之后 , 系统将询问是否配置网络:;
Configure;the;network;[y];
既然是做服务器 , 当然要网络支持的 , 回车开始配置网络 。;
Enter;system;hostname;(short;form):;[]
Enter;DNS;domain;name:;[]
输入hostname(主机名)和domain;name(域名) , 如果有合法的国际域名的话 , 就使用国际域名 。先假
设hostname为moo , domain;name为01tech.nat(避免和国际域名冲突) 。;
系统提示配置网卡 , 手册例子使用的是DE-530TX;10/100Mbps自适应网卡 , 在OpenBSD下面的设备名为vr0 ,
如果是NE2000兼容网卡 , 可能显示为ne0,系统会自动检测并列出来:;
You;may;configure;the;following;network;interfaces;(the;interfaces;
marked;with;[X];have;been;succesfully;configured):;
[;];vr0;
Configure;which;interface?;(or,;enter;"done");[vr0]
在本例中 , 系统只有一个网卡 , 且已经选定 , 直接回车开始配置 , 如果没有选定 , 请输入设备名并回车
进行配置 。;
IP;address;(or;"dhcp");?;[]
Symbolic;(host);name?;[moo]
Netmask;?;[255.255.255.0]
在IP;address中输入dhcp并回车将会使用动态分配的IP地址 , 作为服务器应该有固定的IP地址 , 所以这
里应该输入192.168.32.1并回车(关于IP地址和掩码的知识请参考其他文章) 。Symbolic;(host);name其
实就是hostname啦!系统会自动使用刚才输入的hostname , 直接回车就可以了 。Netmask(掩码)默认
是255.255.255.0 , 就用这个吧 , 回车继续 。;
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?;[];
别看这么多信息 , 其实就做一个事 , 选择网卡的接入网络方式 , 最简单的方式就是选择media;autoselect
并回车 。;
系统会询问是否配置其他的网卡 , 如果系统只有一个网卡的话 , 会自动选定done , 只需要回车即可进入下
一个步骤 。其他网卡的配置象上面一样配置就可以了 。;
Enter;IP;address;of;default;route:;[none]
Enter;IP;address;of;primary;nameserver:;[none]
Would;you;like;to;use;the;nameserver;now?;[y]
路由route不需要输入 , 除非要链接到不同域的机器 。因为要在这台服务器上提供域名解释服务 , 所以
nameserver就指向自己吧 , 也就是输入192.168.32.1就可以了 。至于是否现在启动nameserver就没所谓了 。
回车继续 。;
第三节、设置管理员口令;
Please;enter;the;initial;password;that;the;root;account;will;have.;
系统要求输入管理员口令 , 并确认一次 , 千万要记住啊 , 不然电脑重新启动之后进入不了系统进行管理 。
这里假设口令为123456 , 在实际的应用中千万不要使用这样的口令 , 而应该采用字母、字符和数字混合
的口令 。;
第四节、安装应用程序;
然后安装程序询问是否会运行X;Window:;
Do;you;expect;to;run;the;X;Window;System?;[y];
当然不会 , 输入n并回车继续下一步 。选择安装媒体介质 。;
Install;from;(f)tp,;(h)ttp,;(t)ape,;(C)D-ROM,;(N)FS;or;local;(d)isk?;
有多种方式安装系统 , 我们只选择(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];
系统将检测可用的CD-ROM , 并给予选定 , 这里是只有一个CD-ROM的状态 , 如果多于一个CD-ROM的状况 ,
请选择正确的放有安装光盘的CD-ROM , 否则安装程序会Halt在那里 , 无法继续 。;
Enter;the;directory;relative;to;the;mount;point;that;
contains;the;file.;[/2.8/i386]
确认安装文件所在目录 , 如果您使用01TECH上面提供的光盘 , 回车确认即可 。;
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?;[];
因为安装服务器 , 我们只需要上面已经打“X”的的程序包 , 另外 , 因为有部分程序必须由源程序编译
获得 , 所以必须选择comp28.tgz 。也就是说要有base28.tgz、etc28.tgz、comp28.tgz、man28.tgz以
及bsd 。;
确认这五个项前面都打“X”后 , 输入done并回车 , 询问:;
Ready;to;extract;selected;file;sets?;[y];
当然要解包 , 这个问题实在有点弱智啊!;
Extract;more;sets?;[n];
嗯?上帝说 , 再给你一个忏悔的机会?别管他 , 回车继续吧!;
第五节、设定时区;
然后就是选择时区:;
What;timezone;are;you;in?;[`?";for;list];[GMT]
可以用?查看一下有什么可以选择的时区 , 不过确定没有北京时间 , 选香港的吧 , 输入Hongkong并回车 。;
系统一番自动处理之后 , 终于出现了命令行模式的提示符“#” 。恭喜 , OpenBSD;2.8到此安装完毕 。
输入reboot回车 , 重新启动电脑吧!记住改为硬盘启动啊!现在可以歇一歇了 。;
重新启动电脑之后 , 用root作为用户名 , 123456作为密码就可以登录您的OpenBSD;2.8系统了 。;
第二课、设置域名解释服务;
首先解释一下域名服务(DNS-Domain;Name;Server)的作用 。其实 , 链接到网络的电脑 , 只需要知
道IP地址就可以实现访问 。但是谁会去记住129.128.5.191这个IP地址是代表OpenBSD的服务器呢?当然
是www.openbsd.org容易记忆得多了 。域名服务所实现的作用 , 就是把www.openbsd.org这样的名字转换
成电脑可以识别的129.128.5.191这样的IP地址 。;
所以域名解释服务应当包含两种转换过程:从名字到IP地址(正向解释);从IP地址到名字(反向
解释) 。理解了这些基本感念 , 配置域名解释服务得时候就会比较容易了 。;
第一节、设置named.boot文件;
OpenBSD;2.8系统在安装完成后就已经有域名解释服务程序named;4.9.7-REL , 只是需要人工设定启
动 。named的配置文件在/var/named目录里面 , 文件名是named.boot 。一个简单的 , 可以使用的(当然是
和手册的例子联系起来啦!)的named.boot的文件内容如下:;
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的方式(执行程序的时候切换到程序需要的用户 , 并以改用户的根目录作为
根目录的方式)执行named , 所以这里是/namedb 。;
第二行指定了缓存文件 , 对于曾经访问过的域名 , 将会记录在缓存文件里面 , 以后查询的时候就会
快很多 。缓存文件的文件名是root.cache 。;
第三行指定了对于本机的域名反解文件 。0.0.127.IN-ADDR.ARPA的写法其实就是说要反过来求
127.0.0.x(x的范围是1~255)的对应名称 。相关的解释文件是localhost.rev;
第四行和第三行同理 , 就是要求192.168.32.x的对应名称 。相关的解释文件是01tech.rev;
第五行是正解 , 指定凡是域名为01tech.nat的名称都交给01tech文件进行解释 。;
第二节、配置域名解释文件;
然后 , 我们看看/var/namedb目录里面的文件的内容 , 在系统没有配置域名解释服务的时候 , 默认
只有两个文件:localhost.rev和root.cache , 其中的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;localhost.;
解释一下这个文件的构成吧!其实这个文件由三个RR(Resource;record)构成 , 或者我们用表格的
方式来分析 , 会比较容易理解吧:;
[;name;];[;ttl;];[;class;];type;data;
@;省略;IN;SOA;……;
省略;省略;IN;NS;……;
1;省略;IN;PTR;……;
Name必须为主机名或者域名 , 当使用@时代表缩写 , 就是和named.boot文件中指定的一样 , 在这里就代
表127.0.0.x了 。;
ttl是指此条数据的有效保存期限 , 通常都忽略掉 , 采用默认的ttl值 。;
class指定网络类型 , IN代表Internet , 基本上都不会使用别的类型 。;
type常见的有SOA、NS、A、PTR、MX、CNAME等 。;
SOA(Start;Of;Authority)后面跟负责这个域的主机 , 管理员邮箱 , 序列号 , 副解释域更新间隔 , 副解
释域更新失败重试间隔 , 主解释域失败时副解释域提供数据的有效期限 , 其他域名解释服务器保留本域
名解释服务器的时间 。需要注意的是 , 在主机和管理员邮箱后一定不能缺少“.”否则系统会自动加上
完整的域名 , 例如只写moo的话 , 系统会添加为moo.01tech.nat 。所以也可以简单的把SOA语句写
作SOA;moo;root.moo;(……) 。;
NS(Name;Server)后面跟指定的提供域名解释服务的主机名;
PTR(Pointer)后面是对应于前面IP地址的名称 。;
A(Address)后面是对应于前面的名称的IP地址 。需要注意正解的A和反解的PTR的记录必须相符 , 否则会
造成DNS查询不正常 , 系统变慢 。;
CNAME用于建立别名 , 这样访问别名的时候 , 就会转为访问正式的名称 。;
MX记录的是一串目的地址列表 , 用于告诉邮件服务器传送信件的优先顺序 。;
对于A、CNAME、MX的使用方法将会在后面的正解文件中看到 , 以后将不再作出解释 。;
01tech.rev的文件内容和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的内容如下:;
@;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;
第三节、测试DNS;
好了 , 说了一大堆的东西 , 需要好好消化 , 不过我们还是看看我们的DNS是否正常吧 , 通过以下
的命令启动named:;
named;–t;/var/named;
然后用nslookup来检查DNS是否正常 。以下是nslookup运行的结果 , 任何时候如果域名不能解释 ,
通过按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 , 但是查询却没有这样的结果 , 那么您需要重新再来 ,
好好吃透上面的说明了 。;
第四节、在启动系统的时候自动启动DNS;
要使系统在启动时自动启动DNS服务非常简单 , 修改/etc/rc.conf文件里面的相关项就可以了;
named_flags=NO;改为;named_flags=””;
第三课、配置数据库服务;
如果您不需要数据库服务可以略过本课 , 但是后面的课程中相当部分和本课有关 , 所以即使不打算
配置数据库服务 , 也应该看看本课的内容 。;
MySQL数据库是目前最受欢迎的免费数据库 , 由于具有优异的效率和简洁的控制方式 , 所以被众多
的服务商采用 。尽管它还有一些不足 , 例如不支持事务和子选择 , 但这些缺陷可以通过编程解决 。;
在本手册开始写作的时候 , MySQL的最新稳定版本是3.23.32 , 还没有OpenBSD的port(OpenBSD中的
每一个应用都是一个port) , 所以我们在手册光盘中包含了它的源代码包 , 并写作了本课以教导您如何
在OpenBSD下面编译并安装MySQL 。;
第一节、展开MySQL源代码包;
首先需要让系统可以读取光盘(因为源代码包在光盘里面啊!) , 方法非常简单 , 只需执行以下
的命令即可:;
mount;/dev/cd0c;/mnt;
然后转入/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的源
代码 。为了继续后面的工作 , 我们需要进入该目录 。;
cd;mysql-3.23.32;
第二节、为MySQL服务程序建立所需的组和用户;
要正确编译和安装MySQL数据库服务程序 , 需要建立mysql组和属于mysql组的mysql用户 。在以后
运行MySQL数据库服务程序的时候同样需要它们 , 建立的方法如下:;
groupadd;mysql;
useradd;–g;mysql;mysql;
第三节、运行配置程序;
因为要编译源代码必须先获得和系统相关的信息 , 包括编译器版本 , 系统支持的线程方式
(OpenBSD是一个支持多线程的系统)等 。因此需要运行配置程序以获取这些信息 。;
./configure;--prefix=/usr/local
--localstatedir=/var/mysql
--with-low-memory
--without-bench
--without-debug;
我们解释一下配置程序里面各行的含义 。./configure就是要执行的配置程序了;--prefix=/usr/local
表示 , 编译后的MySQL数据库服务程序将会安装到/usr/local/bin目录当中 , 而库文件会安装到
/usr/local/lib/mysql目录中 , 头文件将安装到/usr/local/include目录中;--localstatedir=/var/mysql
表示数据库所用到的数据将会安装到/var/mysql目录中(我们在安装OpenBSD的时候提到如果需要 ,
可以为/var/mysql建立一个独立的分区就是这个原因 , 这样可以方便管理);--with-low-memory这一
句至关重要 , 没有了它 , 基本上就不要指望在您的机器上面通过编译 , 除非您拥有超过1Gb的内存 , 这句
会指导编译程序使用交换分区作为虚拟内存;--without-bench和—without-debug告诉编译器和安装脚本
不需要测试程序和调试信息 。;
好了 , 解释得够清楚吗?;
第四节、编译和安装MySQL;
这个步骤非常简单 , 只需要执行下面的命令即可 , 其他得事情由电脑来完成 。因为编译的过程非常久 ,
可以喝杯水歇一歇 。;
make;
make;install;
make;init-db;
第五节、测试MySQL;
对不起 , 本节的标题有点含糊 。这里的测试是指测试MySQL的编译和安装是否正常 。为了测试MySQL
是否被正确编译和安装 , 需要执行以下的命令:;
/usr/local/bin/safe_mysqld;>;/dev/null;&
/usr/local/bin/mysqladmin;–u;root;password;‘123456’;
如果第二条命令无声无息地结束了 , 那么就证明MySQL可以正常使用了 。对了 , 第二条命令其实是更
改系统管理员的口令啊!那么您知道以后使用MySQL程序的时候需要的口令了吗?;
第六节、让MySQL在系统启动的时候自动启动;
我们需要做一些工作来让MySQL在系统启动的时候自动启动 。首先我们修改/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;
第四课、配置邮件服务;
其实OpenBSD;2.8在系统安装完成之后 , 就已经安装且启动了邮件服务sendmail 。我们在这里需要为
OpenBSD找一个比sendmail更加安全、更加容易使用和高效能的邮件服务程序 , 我们选择了qmail(利用
qmail加上vpopmail可以把系统用户和邮件用户分离 , 并且使用虚拟邮件域 。再加上MySQL就可以实现邮件
用户的数据库口令校验 , 这是我选择qmail的原因) 。;
第一节、关闭sendmail;
因为qmail作为sendmail的替代服务程序 , 不能和sendmail一起工作 , 所以必须先关闭sendmail程序 。
执行以下的命令关闭正在执行的sendmail程序 。;
Kill;–9;`cat;/var/run/sendmail.pid`;
同时 , 必须把sendmail相关的链接删除 , 并把senmail更名;
chmod;0;/usr/sbin/sendmail;/usr/sbin/sendmail.old;
最后还必须修改/etc/rc.conf文件 , 更改sendmail_flags以避免系统重新启动时sendmail自动启动 。;
sendmail_flags=”-q;30m”;改为;sendmail_flags=NO;
第二节、安装qmail;
如果一直按照手册的例子进行练习 , 那么现在应该可以访问CD-ROM , 如果系统曾经重新启动 , 那么
请按照第三课、第一节的内容来访问CD-ROM 。;
进入/mnt/packages目录并安装qmail执行代码包:;
cd;/mnt/packages;
pkg_add;qmail-1.03.tgz;
安装的过程中会询问是否添加一些组和用户 , 默认选择Y , 不用改变 , 直接回车继续就可以了 。一定
要记录qmaild的uid和nofiles的gid , 因为在以后的课程中启动smtp和pop的时候需要它们(例如qmaild的
uid是2850 , nofiles的gid是32750) 。Qmail被安装到/var/qmail目录 。;
第三节、配置qmail;
要配置和运行需要DNS正确运行 , 如果还没有配置DNS服务 , 请按照第二课的内容进行配置 。;
首先执行以下的命令建立新的sendmail链接 , 以实现和sendmail的兼容:;
ln;–s;/var/qmail/bin/sendmail;/usr/sbin/sendmail;
然后建立基础的域信息 , 使用下面的命令来完成:;
/var/qmail/setup/config-fast;01tech.nat;
当然 , 也可以通过/var/qmail/setup/config来设置基础域信息 , 不过既然DNS正常 , 为什么不使用更
快捷的方法呢?config的用法请参考/var/qmail/doc里面的文档 。;
复制rc文件 , 并对其进行修改 , 让它和sendmail兼容:;
cp;/var/qmail/boot/home;/var/qmail/rc;
qmail默认使用Mailbox , 而sendmail默认使用Maildir , 很多的程序都根据sendmail规则来编写 , 需
要使用Maildir , 所以需要更改rc文件 , 作出以下的更改:;
Mailbox;改为;Maildir;
第四节、测试qmail;
安装和配置完成之后当然要测试一下qmail的运作是否正常了 , 执行以下的命令启动qmail服务:;
csh;–cf;‘/var/qmail/rc;&’;>;/dev/null;&
然后使用以下的命令查看是否存在qmail-lspawn;./Maildir 。如果已经存在 , 则证明qmail服务已经
正常启动 , 如果没有找到 , 就需要按照第三节的内容重新配置 。;
ps;-x;
第五节、启动系统时自动运行qmail服务;
首先修改/etc/rc.conf文件 , 添加以下的内容:;
qmail_flags=””;
然后修改/etc/rc文件 , 找到sendmail的启动代码 , 在后面添加以下的代码:;
if;[;“X${qmail_flags}”;!=;X”NO”;];;then;
echo;–n;‘;qmail’;;csh;–cf;‘/var/qmail/rc;&’;>;/dev/null;&
fi;
第五课、分离系统用户和邮件用户;
我们使用vpopmail来分离系统用户和邮件用户 , 这样可以提高系统的安全性 。而且vpopmail还可以
使用虚拟域名 , 也就是同一个IP的不同域名的邮箱 。;
第一节、展开源代码包;
进入/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;
;
第二节、使用MySQL支持;
如果您的系统没有提供MySQL支持 , 请跳过这一步 。;
修改vmysql.h文件 , 找到其中的一行内容为:;
#define;MYSQL_PASSWORD;“gipgap”;
把里面的gipgap替换成为可以访问MySQL的系统管理员口令123456:;
#define;MYSQL_PASSWORD;“123456”;
第三节、添加组和用户;
编译和运行vpopmail , 需要vchkpw组和属于vchkpw组的vpopmail用户 。使用以下的命令添加组和用户:;
groupadd;vchkpw;
useradd;–g;vchkpw;vpopmail;
第四节、准备/etc/tcp.smtp文件;
要编译vpopmail需要有tcp.smtp文件 , 默认的存放路径是/etc目录 , 通过下面的命令产生该文件:;
echo;‘127.0.0.:allow,RELAYCLIENT=””’;>;/etc/tcp.smtp;
第五节、运行配置程序;
运行配置程序configure , 获取编译所需的编译器 , 外部环境等信息:;
./configure;--enable-default-domain=01tech.nat
--enable-admin-email=zenz-hu@01tech.nat
--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指定默认的邮件域是
01tech.nat;--enable-admin-email=zenz-hu@01tech.nat说明管理员的邮箱;--enable-mysql=y告诉编
译器要使用MySQL数据库作口令检查服务;--enable-sqlincdir=/usr/local和—enable-sqllibdir=/usr/local
告诉编译器到哪里寻找MySQL的头文件和库文件;--enable-large-site=y用于把域信息保存到MySQL数据库中 ,
但是如果有太多的虚拟域则不适宜采用本项;--enable-passwd=n告诉系统不在/etc/passwd口令文件中
查找邮箱用户的口令;--enable-hardquota=8000000限制每个用户的邮箱大小为8Mb 。;
第六节、编译并安装vpopmail;
只需要简单的命令 , 即可编译并安装vpopmail:;
make;
make;install-strip;
安装后的vpopmail在/home/vpopmail目录下 。;
第七节、添加邮件域和更改postmaster口令;
现在的vpopmail还没有邮件域 , 即使在编译的时候指定了默认的邮件域也一样需要通过执行以下的
程序来添加邮件域:;
/home/vpopmail/bin/vadddomain;01tech.nat;
系统会询问属于这个域的postmaster的口令并要求确认 , 输入123456作为口令吧(记住 , 这里使用的
任何口令都不应该在实际应用中出现 , 否则您的系统会有很大的安全问题)!;
如果在这个步骤出现错误提示 , 那么您很可能需要重新进行本课的练习了 。;
第八节、启动smtp和pop3服务;
要用户可以用smtp方式发送邮件以及使用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;
经过上面的修改 , 系统在每次重新启动之后 , 都会自动启动smtp和pop3服务了 。;
vpopmail的管理手册在/home/vpopmail/doc目录中 。;
- 三星Galaxy S7和Galaxy S7 Edge怎么样?
- 三星S6设置拒接电话发送短信的方法
- 曾孙的儿子叫什么 曾孙下面三代分别叫什么
- 英语手抄报 英语手抄报简单又漂亮三年级
- 三星S6手机使用广角自拍功能的方法
- T720i短信全接触
- 魅族mx5怎么截图?魅族mx5三种截图方式
- 三星堆文明多少年前
- 三星Note5开启自拍面部修正功能的方法
- 三星简易模式开启与关闭的设置方法
