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)
|
|