歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux Webmail IMP 的安裝和配置

作者:readme    概述   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 user\'\'s 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: [email protected]   // 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("Database error (HordeDB): %s   \\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)在和中加入這些行:     Alias /horde/ "/home/httpd/horde/"     Options None   AllowOverride None   Order allow,deny   Allow from all       Alias /imp/ "/home/httpd/horde/imp/"     Options None   AllowOverride None   Order allow,deny   Allow from all       第二步     重新啟動讓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/。  




 

 



Copyright © Linux教程網 All Rights Reserved