Linux 版 (精华区)

发信人: wugang (网络之狼·不学则光), 信区: Linux
标  题: Linux Webmail IMP的安装和配置 
发信站: 哈工大紫丁香 (2000年12月30日00:30:11 星期六), 站内信件

发布者:netbull 阅读次数:108  


LinuxAid工程师brimmer 

概述 

Webmail IMP允许用基于Web的方式访问IMAP/POP3服务器,而且提供了地址簿、
LDAP目录查询、支持发送和接收附件,还有很多在常用的桌面电子邮件客户程序中
可以找的功能。如果你已经安装了支持SSL的Apache服务器,就可以通过SSL安全地
发送和读取邮件。在这篇文章中,我们把Webmail IMP配置成使用PostgreSQL并使
用IMAP连接。Webmail还可以支持很多其它的数据库,如果你愿意的话,可以使用
MySQL、Oracle、Sybase以及其它SQL数据库服务器。当然,你也可以选择用POP3而
不用IMAP。 

注意事项 
下面所有的命令都是Unix兼容的命令。 

源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。 

安装在RedHat Linux 6.1和6.2下测试通过。 

要用“root”用户进行安装。 

Horde的版本是1.2.0。 

Webmail IMP的版本是2.2.0。 

PHPLib的版本是7.2b。 

软件包的来源 
Webmail IMP的主页:http://www.horde.org/imp/ 

下载:horde-1.2.0-pre11.tar.gz 

下载:imp-2.2.0-pre11.tar.gz 

PHPLib的主页:http://phplib.netuse.de/index.php3 

下载:phplib-7.2b.tar.gz 

安装前的准备工作 
l 先要安装Apache服务器 

l 安装PHP4 

l 如果想为Webmail IMP加上SQL的支持,还要安装PostgreSQL或其它数据库服务器
 

l 安装IMAP/POP服务器 

l PHPLIB 7.2或更高版本 

安装Webmail IMP所需的PHPLib 
为了在Linux服务器上运行Webmail IMP,必须安装PHPLib(PHP开发者用来开发
Web应用程序的工具包)。按照下面的步骤安装PHPLib: 

软件包 

PHPLib的主页:http://phplib.netuse.de/index.php3 

下载:phplib-7.2b.tar.gz 

[root@deep /]# cp phplib-7.2b.tar.gz /home/httpd/ 
[root@deep /]# cd /home/httpd/ 
[root@deep httpd]# tar xzpf phplib-7.2b.tar.gz 

第一步 

转到Web服务器的DocumentRoot目录,用下面的命令创建“/home/httpd/php”目录
: 

[root@deep /]# cd /home/httpd/ 
[root@deep httpd]# mkdir php 

第二步 

先把PHPLib解压,然后把PHPLib中的文件拷贝到“php”目录下: 

[root@deep /]# cd /home/httpd/phplib-7.2b/php/ 
[root@deep php]# cp * /home/httpd/php/ 
[root@deep php]# cd /home/httpd/ 
[root@deep httpd]# rm -f phplib-7.2b.tar.gz 
[root@deep httpd]# rm -rf phplib-7.2b/ 

注意:当把所有的文件都拷贝到“php”目录下之后,把tar压缩包和“
phplib-verison”目录删掉。 

编译 
按照下面的步骤,在服务器上安装Webmail IMP。 

第一步 

把“horde-1.2.0-pre11.tar.gz”拷贝到Web服务器的DocumentRoot(
/home/httpd)目录下,运行下面的命令: 

[root@deep /]# cp horde-version.tar.gz /home/httpd/ 
[root@deep /]# cd /home/httpd/ 
[root@deep httpd]# tar xzpf horde-version.tar.gz 
[root@deep httpd]# mv horde-version horde 
[root@deep httpd]# rm -f horde-version.tar.gz 

注意:我们在把“horde-version”改名为“horde”之后,把horde的压缩文件删
掉。 

第二步 

用下面的命令把“imp-2.2.0-pre11.tar.gz”拷贝到新的“horde”目录(
/homte/httpd/horde),解压并把“imp-version”改名为“imp”: 

[root@deep /]# cp imp-version.tar.gz /home/httpd/horde/ 
[root@deep /]# cd /home/httpd/horde/ 
[root@deep horde]# tar xzpf imp-version.tar.gz 
[root@deep horde]# mv imp-version imp 
[root@deep horde]# rm -f imp-version.tar.gz 

注意:“imp”目录在“horde”目录下,否则Webmail就不能工作。把“
imp-version”目录改名为“imp”之后,可以把IMP的压缩文件删掉。 

第三步 

把“horde”目录及其子目录和目录下的所有文件的所有者改为“root”。 

[root@deep /]# chown -R 0.0 /home/httpd/horde/ 

第四步 

用下面的命令把“/home/httpd/horde/phplib/*.ihtml”文件拷贝到新的“php”
(/home/httpd/php)目录下: 

[root@deep /]# cp /home/httpd/horde/phplib/*.ihtml /home/httpd/php/ 

配置并创建Webmail IMP的SQL数据库 
我们必须配置数据库使得Webmail IMP可以和SQL数据库结合使用。可以用“
/home/httpd/horde/imp/config/scripts”目录下已经写好的脚本。以
PostgreSQL为例,根据下面的步骤: 

第一步 

首先,编辑“/home/httpd/horde/imp/config/scripts”目录下的“
pgsql_create.sql”,把默认的httpd的用户名改为“www”。 

编辑“pgsql_create.sql”文件(vi 
/home/httpd/horde/imp/config/scripts/pgsql_create.sql),把下面这一行:
 

GRANT SELECT, INSERT, UPDATE ON imp_pref, imp_addr TO nobody; 

改为: 

GRANT SELECT, INSERT, UPDATE ON imp_pref, imp_addr TO www; 

第二步 

我们必须给予运行Apache的用户“www”在我们的PostgreSQL数据库中创建Webmail
 IMP数据库的权限。 

用PostgreSQL的“createuser”命令在数据库中设定httpd的用户名为“www”: 


[root@deep /]# su postgres 
[postgres@deep /]$ createuser 

Enter name of user to add ---> www 
Enter users postgres ID or RETURN to use unix user ID: 80 -> [Press 
Enter] 
Is user "www" allowed to create databases (y/n) y 
Is user "www" a superuser? (y/n) n 
createuser: www was successfully added 

第三步 

一旦httpd用户“www”被加到PostgreSQL数据库中,用“postgres”用户登录,运
行脚本文件“pgsql_create.sql”,自动在PostgreSQL中加入Webmail IMP数据库
。 

用下面的命令在PostgreSQL中创建Webmail IMP数据库: 

[root@deep /]# cd /home/httpd/horde/imp/config/scripts/ 
[root@deep scripts]# su postgres 
[postgres@deep scripts]$ psql template1 < pgsql_create.sql 

// IMP database creation script for postgreSQL 
// Author: barce@lines.edu 
// Date: Aug-29-1998 
// Notes: replace "nobody" with yours httpd username 
// Run using: psql template1 < pgsql_create.sql 
CREATE DATABASE horde; 
CREATEDB 
\connect horde 
connecting to new database: horde 
CREATE TABLE imp_pref ( 
username text, 
sig text, 
fullname text, 
replyto text, 
lang varchar(30) 
); 
CREATE 
CREATE TABLE imp_addr ( 
username text, 
address text, 
nickname text, 
fullname text 
); 
CREATE 
GRANT SELECT, INSERT, UPDATE ON imp_pref, imp_addr TO www; 
CHANGE 
EOF 

第四步 

重新启动PostgreSQL服务器,让所做的改变生效。 

用下面的命令重新启动PostgreSQL: 

[root@deep /]# /etc/rc.d/init.d/postgresql restart 
Stopping postgresql service: [ OK ] 
Checking postgresql installation: looks good! 
Starting postgresql service: postmaster [13474] 

第五步 

把“/home/httpd/horde/phplib/horde_phplib.inc”拷贝为“
/home/httpd/php/local.inc”: 

[root@deep /]# cp /home/httpd/horde/phplib/horde_phplib.inc 
/home/httpd/php/local.inc 
cp: overwrite `/home/httpd/php/local.inc? y 

编辑phplib的配置文件“local.inc”,可以设置phplib的运行情况。 

编辑“local.inc”文件(vi /home/httpd/php/local.inc),去掉注释并修改下
面这些行来设置默认的数据库: 

/* To use an SQL database, uncomment and edit the following: */ 
class HordeDB extends DB_Sql { 
var $Host = localhost; 
var $Database = horde; 
var $User = www; 
var $Password = some-password; 
var $Port = 5432; 
function halt($msg) { 
printf("<b>Database error (HordeDB):</b> %s<br>\n", $msg); 


class HordeCT extends CT_Sql { 
var $database_class = HordeDB; // Which database class to use... 
var $database_table = active_sessions; // and find our data in this 
table. 


注意:不要忘了去掉Webmail IMP所使用的存储器类型的注释,而且只能选择一种
存储器类型。我们选择SQL为存储器。还要设置SQL数据库的参数“var $User =”
、“var $Password =”和“var $Port =”。“var $User =”对应httpd的用户名
(在我们的例子中为“www”),“var $Password =”对应在PostgreSQL中“www”
用户的口令,“var $Port =”是连接到SQL数据库的IP端口。 

第六步 

最后编辑“/home/httpd/php/prepend.php3”文件,设置默认的数据库类型。 

编辑“prepend.php3”文件(vi /home/httpd/php/prepend.php3),改变下面这
些行把数据库类型设置成PostgreSQL: 

require($_PHPLIB["libdir"] . "db_mysql.inc"); 

改为: 

require($_PHPLIB["libdir"] . "db_pgsql.inc"); 

配置PHP4的配置文件“php.ini” 
还要设置PHP4的配置文件“/etc/httpd/php.ini”。这些设置是为了设定PHP4自动
装入哪些模块(例如:IMAP、PostgreSQL或其它)。因为我们用PostgreSQL作为我
们的数据库而且要用到IMAP,我们必须在“php.ini”中设定。 

第一步 

编辑“php.ini”文件(vi /etc/httpd/php.ini),在“Dynamic Extensions”这
一节进行设置。我们选择支持IMAP和PostgreSQL: 

extension=imap.so ; Added for IMAP support 
extension=pgsql.so ; Added for PostgreSql support 
extension=mysql.so ; Added for MySql support 
extension=ldap.so ; Added for LDAP support 

第二步 

我们还要告诉“php”当所包含的文件没有绝对路径时到哪里去找这些文件,自动
把phplib的“prepend.php3”文件的内容加到每个文件的前面,并且把magic 
quotes关闭掉。 

编辑“php.ini”文件(vi /etc/httpd/php.ini)并且在下面这些行中加上参数:
 

magic_quotes_gpc = Off 
auto_prepend_file = "/home/httpd/php/prepend.php3" 
include_path = "/home/httpd/horde:/home/httpd/php" 

配置Apache使其识别Webmail IMP 
一旦Webmail IMP安装到系统中之后,必须在“httpd.conf”文件中加入下面这些
行。 

第一步 

编辑“httpd.conf”文件(vi /etc/httpd/conf/httpd.conf)在<IfModule 
mod_alias.c>和</IfModule>中加入这些行: 

Alias /horde/ "/home/httpd/horde/" 
<Directory "/home/httpd/horde"> 
Options None 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 

Alias /imp/ "/home/httpd/horde/imp/" 
<Directory "/home/httpd/horde/imp"> 
Options None 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 

第二步 

重新启动让Apache Web服务器让这些改变生效。 

用下面的命令重新启动: 

[root@deep /]# /etc/rc.d/init.d/httpd restart 
Shutting down http: [ OK ] 
Starting httpd: [ OK ] 

用浏览器配置Webmail IMP 
用很多方法可以配置Webmail IMP,我们选择用名为“setup.php3”的新的安装引
擎。可以用浏览器配置IMP。 

第一步 

因为安全方面的原因,所以最好把它禁止掉,但是可以用下面的命令使其生效。 


用下面的命令使“setup.php3”生效: 

[root@deep /]# cd /home/httpd/horde/ 
[root@deep horde]# sh ./install.sh 
Your blank configuration files have been created, please go to 
the configuration utitlity at : 
your install path url/setup.php3 

第二步 

一旦新的Webmail IMP安装引擎生效之后,可以用浏览器通过这个URL:http:
//my-web-server/horde/setup.php3访问。现在,你就可以用图形安装界面安装和
配置IMP了。 

注意:“my-web-server”是你的Apache服务器的地址,“setup.php3”在“
/horde”目录下。 

第三步 

当使用完Webmail IMP的安装引擎之后,因为安全原因必须把它禁止掉。 

用下面的命令禁止“setup.php3”: 

[root@deep /]# cd /home/httpd/horde/ 
[root@deep horde]# sh ./secure.sh 

I have made your configuration files, and libraries mode 0555 
which is read / execute for everyone. 
And the setup.php3 is mode 0000 which is no access period. 

第四步 

现在应该验证一下Webmail IMP能否正常运行了。可以让浏览器访问这个地址:
http://my-web-server/horde/。“my-web-server”是你的Apache服务器的地址。
“/horde”是Webmail IMP程序所在的目录。 



版权说明 
这篇文章翻译和改编自Gerhard Mourani的《Securing and Optimizing Linux: 
RedHat Edition》,原文及其版权协议请参考:http://www.openna.com/。 

中文版的版权属于译者brimmer和http://www.linuxaid.com.cn/。 
 

--

   诚既勇兮又以武,                Λ
     终刚强兮不可凌,        〔¤¤◎〓〓〓〓〓〓〓〓〓〓〓〓〓≥
       带吴剑兮挟吴弓,            V
         首身离兮为鬼雄。                                                               Go!  天竺  @>>--,--'--- http://beauty.hit.edu.cn 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.224.69]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:208.886毫秒