GB | BIG5
|
| 首頁 > 應用技術 > 其它 > 正文 |
 |
| IMP 與 Proxy Server 代理伺服主機 |
| http://www.linuxcenter.com.tw/ 作者:仁智 (2001-06-07 10:08:00) |
IMP 安裝說明... 1
一、什麼是 IMP. 1
二、IMAP 和POP3 的區別... 1
三、安裝需求... 2
三、修改Apache的設定... 3
四、測試 PHP 和 MySQL. 4
五、安裝 imp. 5
六、細部設定... 6
七、 使用上可能發生的問題... 8
八、使用 MySql 資料庫... 9
Proxy Server 代理伺服主機... 10
一、前言... 10
二、Proxy 的概念... 10
三、安裝 Squid. 11
四、squid.conf 的基本設定... 11
五、啟動 Squid. 12
六、進階設定... 12
七、統量統計... 14
IMP 安裝說明
一、什麼是 IMP
IMP (Internet Messaging Program)是以IMAP 為通訊方式,架構在WEB BASE 上的E-MAIL 收發程式, 應用目前最流行的PHP 網頁語言撰寫,可搭配資料庫如 MySQL ,就可以建立通訊錄,好友名單之類的設定了。
原始網站:http://www.horde.org/imp/
二、IMAP 和POP3 的區別
方式
優點
缺點
POP
(Post Office Protocol)
1. 離線閱讀,節省撥接費用。
1. 設定繁瑣。
2. 信件下載存於 PC上,保密性幾乎等於零。
IMAP
(Internet Message Access Protocol)
1. 信件存在 SERVER 上,保密性高。
2. 設定簡單,收發信件如同登錄在本機上操作。
1. SERVER端的負擔重。
2. 要限制 USER 的HD 容量。
3. 需在連線狀況才能看到MAIL。
綜合上述情形,IMP 這個程式非常適用於國中小這種多人共用電腦的情形,光是不需任何設定和保密性就值得了。
三、安裝需求
其實安裝 IMP 是小事,事先的要求才是重要的,因為IMP 要用到 PHP 這個東西,所以PHP 的套件是不能少的,另外筆者也假設 SENDMAIL、IMAP、等相關套件都已經安裝, MySQL 也可以一起裝上去,雖然不是IMP這套軟體的必要套件,但是 PHP 加 MySql 可是未來的另一個主流喔。
另外,請檢查 /etc/inetd.conf 中,imap 前面的#號去掉了沒有。
這個檔案包含了
apache-1.3.12-1CLE.i386.rpm
apache-devel-1.3.12-1CLE.i386.rpm
apache-manual-1.3.12-1CLE.i386.rpm
MySQL-3.22.32-1CLE.i386.rpm
MySQL-bench-3.22.32-1CLE.i386.rpm
MySQL-client-3.22.32-1CLE.i386.rpm
MySQL-devel-3.22.32-1CLE.i386.rpm
MySQL-shared-3.22.32-1CLE.i386.rpm
php-3.0.15-1CLE.i386.rpm
php-imap-3.0.15-1CLE.i386.rpm
php-manual-3.0.15-1CLE.i386.rpm
php-mysql-3.0.15-1CLE.i386.rpm
phpMyAdmin-2.0.5-2CLE.noarch.rpm
安裝前最好看一下系統中裝了那些東西,
指令:rpm -qa | grep apache (找出所有安裝套件中包含 apache 字串的套件)
假設有 apache-1.3.6 和 apache-manual-1.3.6 這兩個套件,我的建議是用
rpm -e apache-1.3.6 apache-manual -1.3.6 把舊套件移除,再安裝上新的版本。
rpm -ihv apache-1.3.12-1CLE.i386.rpm apache-devel-1.3.12-1CLE.i386.rpm apache-manual-1.3.12-1CLE.i386.rpm
也可以用 rpm -Uhv 的方式來做級的動作,但是根據筆者經驗,建議把舊套件先移除了再裝新的會比較保險(對 apache、php、mysql三者而言) ,不過在移除之前最好記得把相關的設定檔備份,另外,如果對 apache 的log 檔做流量統計的話,/var/log/httpd 中的 log檔也要備份。如果是新安裝的系統那就省了。上面的十五個 rpm 檔我分成三段,也就是安裝的次序。
三、修改Apache的設定
1.修改 /etc/httpd/conf/httpd.conf
找到底下這幾行,把前面的 # 去掉
#LoadModule php3_module modules/libphp3.so
#AddModule mod_php3.c
#AddType application/x-httpd-php3 .php3
把 index.php3 加入下面這行(首頁檔名的設定)
DirectoryIndex index.html index.htm index.shtml index.cgi
2. 重跑 httpd 和 mysql
/etc/rc.d/init.d/httpd restart
/etc/rc.d/init.d/mysql stop
/etc/rc.d/init.d/mysql start
也順便執行setup 或 ntsysv 把 Mysql 選起來,下次重開機時自動跑起來了。
四、測試 PHP 和 MySQL
1. 如果已經安裝了phpMyAdmin-2.0.5-2CLE.noarch.rpm 這個套件,apache 和 mysql 都重新啟動了,那麼就用瀏覽器連上 http://你安裝的機器名稱/phpMyAdmin/ 如果看到以下的畫面表示你的 PHP 和 MYSQL 都安裝完成了。
2.如果沒有裝上 phpMyAdmin-2.0.5-2CLE.noarch.rpm 也沒關,用最簡單的方法在網頁的目錄中編輯一個 test.php3 的檔案,內容只要一行 phpinfo() ?> 再用瀏覽器連結到這個檔案,應該就會看到PHP 的版本,支援的資料庫軟體和版本,還有 APACHE 的版本、使用的模組資訊..........等等。
五、安裝 imp
搞了半天現在才是重點,一樣,先下載 horde.tar.gz,這個檔案是我學校目前正在使用的版本,可以copy 到 /home/httpd 的目錄下解開, 相關的檔案就在 horde 這個目錄中,然後再加二行設定在/etc/httpd/conf/httpd.conf 中
Alias /horde/ /home/httpd/horde/
Alias /webmail/ /home/httpd/horde/imp/
改完要記得重跑 HTTPD (/etc/rc.d/init.d/httpd restart )
到 /home/httpd/horde 這個目錄執行 ./install.sh (讓 setup.php3 這個檔案可以執行)
再到瀏覽器的網址上輸入 http://fqdn/ or ip/horde/setup.php3 ,正確的話如下圖
接下來你可以按 12 次 NEXT 就完成設定了,如果有其他特殊用途就自行修改了(例如要不要讓 USER改變 取信的 SERVER ,要不要讓 USER 修改寄件人資料,或者使用 mysql,建立好友名單)。最後,setup.php3會提醒再到 /home/httpd/horde 執行 ./secure.sh ,把 setup.php3 的 設成000,讓所有的人不能讀取。
到這裡已經算是大功告成了! 現在可以在瀏覽器上輸入 http:// SERVER 的 url/webmail/ 應該會到下面的畫面。
六、細部設定
1. 以中文為預設語言
修改 /horde/imp/config/defaults.php3 中,
將 $default->language = 'en';
改為: $default->language = 'big5';
2. 多人使用問題
修改 /etc/inetd.conf
pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
imap stream tcp nowait.250 root /usr/sbin/tcpd imapd
記得把 IMAP 的解拿掉,6.0 以後的版本,pop 和 imap 都是mark 起來的,所以安裝完一定要改這裡。那個nowait.250 的設定要自己調一下,太多的話,會整個系統卡在那,太少的話可能只有少數幾人能用。
改記得要重跑inetd ( /etc/rc.d/init.d/inet restart )
3. 簡化 語言 選項的內容
修改 /horde/imp/config/lang.php3 (我只剩這二行)
$lang->lang['big5'] = '繁體中文';
$lang->lang['en'] = 'English';
4. 使用者的相關設定
/horde/imp/config/defaults.php3
/* User changeable items */
$default->user_change_server = true; 允許修改 SERVER
$default->user_change_from = false; 不出現寄件人欄位,
5. 選單方式選擇 MAIL SERVER
修改 defaults.php3 檔案
$default->use_server_list = true;
修改 servers.php3
$IMAPServers[’mail1’] = new IMAPServer(’教職員用’,
’ms1.XXXX.tcc.edu.tw’,
143
);
$IMAPServers[’mail2’] = new IMAPServer(’學生專用’,
’ms2.XXXX.tcc.edu.tw’,
143
);
6. 只用中文
修改 imp/config/defaults.php3
$default->user_change_language= false;
$default->language = ’big5’;
7. 附帶中文檔名的問題
將下面的內容 imp/lib/mimetypes.lib 中下面的內容
2.0.11 版大概在 170 行左右
--------------------------------------------------------
if ($this->action[’view’])
$ret .= "mailbox) . "&index=$this->index&bodypart=$this->partno&actionID=" . VIEW_ATTACH . "\" target=\"_blank\">$this->icon $this->name";
else
$ret .= "$this->icon $this->name";
--------------------------------------------------------
改為
--------------------------------------------------------
if ($this->action[’view’])
$ret .= "mailbox) . "&index=$this->index&bodypart=$this->partno&actionID=" . VIEW_ATTACH . "\" target=\"_blank\">$this->icon " . decode_mime_string($this->name) . "";
else
$ret .= "$this->icon " . decode_mime_string($this->name);
--------------------------------------------------------
七、 使用上可能發生的問題
1. 使用者無法登入
檢查 /etc/inetd.conf ,看看 imap 那行前面的 # 是不拿掉了。
執行 /etc/rc.d/init.d/inet restart
另外,可別用 root 這個帳號測試,那是不行的。
2. 無法刪除信件
如果是出現以下訊息
Warning: Wrong parameter count for imap_delete() in /home/httpd/horde/imp/mailbox.php3 on line 103
Warning: Oops, php3_SetCookie called after header has been sent in ./lib/imp.lib on line 204
如果用是 php 3.0.15 的話,請修改 ./imp/mailbox.php3 的103行 和 125 行(這行是 imap_undelete)
if (!(imap_delete($mbox, imap_msgno($mbox, $indices[$i]))))
=>if (!(imap_delete($mbox, imap_msgno($mbox, $indices[$i]), 0)))
八、使用 MySql 資料庫
這個部份最好是在安裝IMP 前完成,如果IMP 已經完成了,那就得再從setup.php3的部份再做一次,可別以為只要把資料庫名稱,USER 、PASSWORD 寫到 defaults.php3 就可以了! 另外,在 ./horde/imp/config/script 中,也有許多資料庫的 SCRIPT ,也可自己動手輸入以下的命令。
#mysql -uroot -p(您的密碼) ;進入 MYSQL
>CREATE DATABASE imp; ;建立一個叫imp 的資料庫
>USE imp; ;使用 imp 這個資料庫
>CREATE TABLE imp_addr
( user text, address text, nickname text, fullname text ); 建立一個 imp_addr 的表格
>CREATE TABLE imp_pref
( user text, sig text, fullname text, replyto text,lang text); 建立一個 imp_pref 的表格
>GRANT ALL ON imp.* TO impmgr@localhost IDENTIFIED BY 'impword';
建立一個imp 資料庫的使用者,user name 是impmgr ,來源是 localhost ,密碼是 ‘impword’
> flush privileges;
>exit;
Proxy Server 代理伺服主機
一、前言
當人們對於網路的需求來高,網路頻寬的要求也日漸增加,在網路初期,有個文字模式的BBS 或GOPHER 已是非常今人興奮的事情,發展至WINDOW介面時,魔賽克、NETSCAPE等瀏覽器在網路上的應用,讓我們可以取得更豐富的資料,而今,上網看電視、聽廣播都是輕而易舉的事,但是對於網路傳輸流量也來大,所以,善用網路資源的同時,也更該節省網路資源。
二、Proxy 的概念
在安裝之前我們先清一個有關 PROXY 的概念,事實上 PROXY SERVER 有很多種類,如 IP Proxy 、Mail Proxy、Proxy Caching …等,而我們一般所稱的Proxy是指 Proxy Caching。
如果校園網路內有了Proxy伺服器,且所有CLIENT端的電腦都連接到Proxy伺服器上,當網域內有一台機器的瀏覽器透過 Proxy Server瀏覽過某個網站上的網頁後,這個被瀏覽過的網站資料就被一份到Proxy Server的cache (快取)空間裡,當其他使用者也要瀏覽這個已瀏覽過的網站時,就不用再透過對外的線路傳輸網頁資料,而是直接從Proxy Server的cache裡讀取網頁資料,所以Proxy Server可以大大的節省頻寬與加快用戶端讀取資料速度。
其實 Apache 也有Proxy 的功能,早期的CERN 也有相同的功能,但是他們主要功能是WWW SERVER,所以使用的人很少。在Unix like 系統中,Squid是使用率最廣的,因為 Squid Proxy Server是專為caching所設計的,Squid有一套自己的Cache階層體系,簡單的說就是Proxy Server間的關有父(parent)、子(child)、兄弟姊妹(sibling)三種關存在。善用這種階層的架構可以降低server 的負載和資料傳輸的速度。
三、安裝 Squid
如果我們在安裝RedHat + CLE 時,安裝的選項是[Everything],那Squid 就已經安裝在系統中,只是還沒被啟動而以。如果我們可以在 /etc/rc.d/init.d的目錄下看到 squid 這個檔案,而且在 /etc/squid 下有 squid.conf 的設定檔,那麼我們可以確定 squid 已經安裝好了,只是尚未被啟動而以,如果不是上述的情形,我們也可以自行安裝或級,首先你可能要掛上CD-ROM或者到大一點的FTP 站下載新的套件,再用 RPM 安裝,可以選擇 i386的檔案直接安裝,或者是用 src.rpm 的檔案,先自己 rebuild ,再安裝。
# rpm Uhv squid-2.2*
# rpm rebuild target i686 squid-2.3.S
安裝完當然可以馬上啟動,或者利用 setup、ntsysv來設定開機時,讓squid啟動。但是我們對cache的目錄還未規劃,所以我們必須對 squid.conf做一些調整再行啟動。
四、squid.conf 的基本設定
1. 規劃 CACHE 目錄
預設值是 cache_dir /var/spool/squid 100 16 256
也就是在 /var/spool/squid 中增加16x256個目錄,而SQUID 就利用這4096個目錄來存放 100MB 的 CACHE 資料。而在實際的應用上,100MB 的空間實在太少了! 所以我們可以依 SERVER 上的空間來調整 CACHE 的大小,另外 16x256 這個目錄大小我們也可依server 上的實體記憶體和 cache 目錄大小來調整,原則上,除非記憶體大於 256 MB,CACHE 的目錄也需要到 10 GB 以上,否則 16x256 或 64x256 就可以了。
2. 記憶體設定
預設值是 #cache_mem 8 MB
一般來說大概是實際記憶的 1/3 ,如果只是單純做為 PROXY ,則可以調高為1/2 。
3. 開放存取設定 -- 原始設定中只允許localhost本身使用,所以我們可以把 localhost 的 IP 圍改成允許使用的IP圍。
原來 => acl localhost src 127.0.0.1/255.255.255.255
改成 => acl localhost src 163.17.169.0/255.255.255.0
或者
原來 => httpd deny all
改成 => httpd allow all (安全性較低,不建議)
五、啟動 Squid
啟動 /etc/rc.d/init.d/squid start ;(啟動和停止的訊息都在/var/log/squid/cache.log)
停止 /etc/rc.d/init.d/squid stop
因為是以 rpm 安裝,所以在啟動時,程式(shell script)會自動偵測目錄是否存在,所以要改變 cache 目錄,只要在 squid.conf 設定好,重新啟動 squid 就可以!但要事先建立存放的主目錄,而且要注意目錄的擁有者。
六、進階設定
1. parent 和 sibling
若您要設定擷取上一層的Proxy Server資料,如139.175.159.98 (seed net 提供給本縣的proxy server) ,請在:
#cache_peer hostname type 3128 3130之下加入:
cache_peer 139.175.159.98 parent 3128 3130 no-query no-netdb-exchange no-digest
若您要設定同層的Proxy Server為Sibling關,如:163.17.169.50、163.17.169.52,則加入:
cache_peer 163.17.169.50 sibling 3128 3130 proxy-only
cache_peer 163.17.169.52 sibling 3128 3130 proxy-only
[參數說明]
cache_peer:用來指定擷取快取Proxy的主機。
hostname:是指快取Proxy的主機名稱,也可用ip 。
type:用來指定擷取來源快取Proxy主機的型態,有:parent(上一層)、sibling(同一層)兩種。
3128:是http_port。用來取回所需的cache資料。
3130:是icp_port。用來詢問Server有沒有所需要的資料。
no-query:不做詢問動作,直接擷取資料。(用於parent-chile關)
no-netdb-exchange:proxy server之間彼此部交換訊息。
no-digest:proxy server之間不建立Digest Table。(只用於Sibling)
proxy-only:直接讀取對方cache資料,而不存入本機。
2. 增加服務的速度
Squid Proxy內定的DNS查詢程式的數量是5,
# ps aux |grep squid
root 4388 0.0 0.3 3320 840 ? S 16:29 0:00 squid -D
squid 4390 0.0 1.7 6020 4396 ? S 16:29 0:00 (squid) -D
squid 4391 0.0 0.2 1476 700 ? S 16:29 0:00 (dnsserver)
squid 4392 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)
squid 4393 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)
squid 4394 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)
squid 4395 0.0 0.1 1336 496 ? S 16:29 0:00 (dnsserver)
從上列中您可發現第一個主服務是由root身分啟動,其他六個則是由squid身分啟動。而其中五個是dnsserver,我們可以增加 dnsserver的數目來增加服務的速度。
#dns_children 5,改為
dns_children 24 ;最大DNS查詢程式數量為32
3. LOG 檔案的處理
# logfile rotate 0
logfile_rotate 1
此設定必須配合 crontab 執行 /usr/sbin/squid -k rotate,例如我但可以設定在每天的零點二分做一次log 檔的備份,再利用 pwebstats 統計。
4.. 阻擋不良網站
# 不想讓學生玩線上遊戲 或者上到有關 sex 字眼的網站,連在搜尋的
# 方打上 sex 也擋下來喔!!
acl game url_regex www.kuangchuan.com/game sex idolink
# 色情網站
acl sex dstdomain playboy.com
在 squid 中,應用 acl 的參數,我們可以過濾網站內容,設定的方式也很多種,有興趣可以多研究 squid.conf 中的例。
七、統量統計
下載以下兩個檔案
fly-1.6.5.Linux-2.1.125-i686.tar.gz
pwebstats-1.3.7.tar.gz
以下# 號後是應輸入的指令
# tar xzvf fly-1.6.5.Linux-2.1.125-i686.tar.gz
# cd fly-1.6.5
# cp fly /usr/sbin ;放置fly到可執行路徑,原位置也可以,
# mv pwebstats-1.3.7.tar.gz /home/httpd/html
# cd /home/httpd/html
# tar zxvf pwebstats-1.3.7.tar.gz
# cd pwebstats/conf
# pe2 squid-proxy.conf .
1. 修改squid-proxy.conf檔裡幾項項目: (以下各行中,# 為解)
# pwebstats configuration file for http server
#
# Unique nickname for server.
# use only a-z, A-Z and _
# e.g. server:proxy
server:PROXY.XXXX.TCC.EDU.TW ;填入Server 名稱
# Header for index page.
# e.g. Server_header:The TelDem Enterprises Proxy Server
Server_header:台中縣XX國小Proxy Server流量分析
# Location of latest log file
logfile:/var/log/squid/access.log;如果有輪換檔,就指定輪換檔access.log.0路徑
# Location for the output of pwebstats.
# e.g. outdir:/home/servers/http/teldem/proxy-usage
outdir:/home/httpd/html/usage;統計結果的輸出網頁路徑,事先 mkdir
# directory containing GIF templates
# e.g. templates:/home/servers/http/pwebstats/templates
templates:/home/httpd/html/pwebstats/templates
# Stats collection interval
# can be one of daily, weekly, monthly, quarterly
interval:daily ; 統計的期
# Location of 'fly'
# e.g. fly_prog:/home/servers/http/pwebstats/fly/fly
fly_prog:/usr/sbin/fly ;指定fly程式路徑
12. 執行 ./pwebstats -c squid-proxy.conf即可產生流量分析網頁及圖表
13. 為了每天能自動對access.log.0進行分析產生流量分析網頁及圖表,您必須修改crontab,請執行 #crontab -u root -e,在原內容上加入敘述:(設定在做完log輪換檔後執行,每日清晨零點十分整做流量分析)
5 0 * * * /usr/sbin/squid -k rotate ;
10 0 * * * /home/httpd/html/pwebstats/pwebstats -c
/home/httpd /html/pwebstats/conf/squid-proxy.conf;絕對路徑
14. 在瀏覽器的URL位址輸入:http://hostname/usage/,即可顯示流量分析結果,如下圖顯示:
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
===閩=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |