仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1315|回复: 18
打印 上一主题 下一主题

[学习教程] PHP编程:ldap+qmail+postaci 装置, 用户办理

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:21:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,皮皮你有没?用户办理   ldap+qmail+postaci  装置, 用户办理

参考文献:
1. 建一个大容量的webmail体系(作者:谢顺华)
    今朝独一能找到的中文qmail+ldap材料
    http://www.linuxforum.net/doc/webmail.html
2. Postaci Webmail
    基于php的webmail体系, 撑持pop3, imap, 利用数据库做缓存.
    相对imp和sqwebmail来讲, 设置装备摆设相当轻易, 并且界面很好.
    (http://www.trlinux.com/)
3. Simple ldap user admin tool
    For Qmail的php版用户办理, 可以设置用户材料, 别号, maillist, 公司组织...
    http://sourceforge.net/projects/alldap/
4. Softerra LDAP Browser
    win32的ldap检查修正东西
    http://www.ldapbrowser.com
5. Life With qmail-ldap
    http://www.lifewithqmail.org/ldap/
6. Life With qmail
    http://www.lifewithqmail.org/


申明:
    思索到qmail利用体系用户在办理上不小气便. 而利用mysql作为用户又会和mysql用户抵触, 并且mysql的局限性很大, 没有ldap的open和自在扩大特征. 利用ldap后, 使用php的ldap函数就能够完成用户办理, 用户可便利的自行编程处理用户办理.
    由于不是虚拟主机, 所以选用了设置装备摆设复杂, 好用的Postaci和Simple ldap user admin tool. 合适单一整体/公司利用.



装置:

1. openldap请参考文献1的步调1.在/etc/openldap目次下是openldap的设置, 除要按参考1中增添qmail的qmailUser类型外, 还要注重修正slapd.conf文件, 关头内容以下:

#你的公司名, 最好用站点名
suffix          "dc=test, dc=com"
#办理员称号, 相似于体系办理员. 很长, 然而很主要.
rootdn          "cn=Manager, dc=test, dc=com"
#办理员暗码(这里用的是明文暗码)
rootpw          secret
到场根基数据:
ldapadd -D "cn=Manager,dc=test, dc=com" -W

dn: dc=test, dc=com
objectclass: dcObject
objectclass: organization
o: test Company
dc: test


dn: cn=Manager, dc=test, dc=com
objectclass: organizationalRole
cn: Manager


2. qmail需求加for ldap的补钉, 而且设置装备摆设pop3, imap, sendmail.请参考文献1中的步调2. 个中注重以下事项:

ldap请求qmail利用Maildir格局, 所以, 要修正/var/qmail/rc以下:   

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`" splogger qmail

在/var/qmail/control/defaultdelivery中内容以下:

./Maildir/

/var/qmail/control/ldapuid和ldapgid是ldap用户材料中的qmailUid/qmailGid的缺省值, 设置后ldap中可不用设置. 注重此处uid和gid必是寄存mail目次的uid/gid, 通常为/mail, 属性是750, 不成对其它人可写, 不然失足. 思索到要在php中履行办理用户的操作, 所以这个uid/gid和apache的不异, 可以在apache/conf/httpd.conf中修正. 注重虚拟主机时能够会有平安成绩.

用tail -n 30 /var/log/maillog可以检查发送mail的进程纪录, 毛病会被纪录在内, qmail失足时会主动回信给发件人, 不加-n 30只会看到主动回信的准确信息!

RedHat7中利用xinetd, 分歧于老版的inetd, 设置装备摆设文件放在/etc/xinetd.d/下, 修正以下:

pop3文件:

#default: off
# description: The POP3 service allows remote users to access their mail \
#              using an POP3 client such as Netscape Communicator, mutt, \
#              or fetchmail.
service pop3
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /var/qmail/bin/qmail-popup
        server_args             = test.com /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir
        only_from               = 0.0.0.0
        log_type                = FILE /var/log/maillog
        disable                 = no

        log_type                = FILE /var/log/xinetd.log  
        log_on_success          = HOST
        log_on_failure          = HOST RECORD
}

smtp文件:
# default: off
# description: The POP3 service allows remote users to access their mail \
#              using an POP3 client such as Netscape Communicator, mutt, \
#              or fetchmail.
service smtp
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = qmaild
        server                  = /var/qmail/bin/tcp-env
        server_args             = -R /var/qmail/bin/qmail-smtpd
        log_type                = FILE /var/log/maillog
        env                     = NODNSCHECK=""
        log_on_success          = HOST
        log_on_failure          = HOST RECORD
        only_from               = 0.0.0.0
        disable                 = no
}
假如有其它pop3, smtp的办事应当设定其disable项为yes, 以避免抵触.

/var/qmail/control/下的掌握文件可以参考文献1的步调5,普通需求以下文件:
ldapbasedn,ldaplogin,ldappassword,ldapuid,ldapgid,ldapserver

3. 装置php版ldap用户办理东西.(参考文献3)
次要设置装备摆设都在common.inc文件外面, 假如你的php体系没有对.inc文件处置, 会表露出体系设置装备摆设, 建议修正成
common.inc.php, 然后分离修正index.php和format.php的第二行. common.inc.php次要修正以下: 也能够参考postaci的装置文件:

//刚入手下手的时分能够成绩良多, 建议设置成1, 以便察看毛病在哪里.
$debug = 0;
//这里有些中央能够合适虚拟主机情形, 这里没用到, 待研讨

$root_dn = "dc=test, dc=com";
$exchanges_dn = "".$root_dn;   
$people_dn = "".$root_dn;
$lists_dn = "".$root_dn;

//这里要注重和步调1中设置分歧
$ldap_host = "localhost";
$bind_dn = "cn=Manager, dc=test, dc=com";
$pw = "secret";
$mainTitle = "LDAP user admin";

//这里要和步调2中设置分歧
$qmailuid = 501;        
$qmailgid = 501;
$messageStoreDir = "/mail";

$mailQuota = "10000000000S,100000C";
$generalUser = "steeven";

/* not sure on the relevance of this... */
$mailHost = "test.com";

//你的公司部分, 可增减, 本人汉化吧 :)
$org_units = array( "Routed", "Switched", "Colocation", "Networks", "Metro", "Recruitment", "Commercial", "Finance", "IT", "Marketing" );

$acc_status = array( "active", "nopop", "disabled" );
$default_email = "test.com";
$logoImg = "../poweredby.png";
$ver = "0.03";

这个老外写的办理东西很好用, 可以设置转发mail, 无穷mail别号; 按地区划分公司组织, 上面又分部分, 每一个部分又可以指定邮件, 发给部分的邮件可以指定哪些人来承受. 也能够自界说一些maillist, 办理列入人员. 充实表现了ldap的天真性. 难怪notes, windows都向ldap挨近 :)

假如qmail没有设置成主动创立用户目次, 可以在add.php第188行增添以下代码:
                if (!is_dir($messageStoreDir."/".$uid[0])){
                        mkdir($messageStoreDir."/".$uid[0],0770);
                }
                if (!is_dir($messageStoreDir."/".$uid[0]."/".$uid)){
                        mkdir($messageStoreDir."/".$uid[0]."/".$uid,0770);
                }

在add.php中增添用户时的LoginId仿佛也有点成绩, 可直接采取firstName:
            function create_username() {
                var first_str = document.user_details.elements[2].value;
                document.user_details.elements[11].value = first_str.toLowerCase();
            }

使用参考文献4中的LdapBrowser可以看到对LDAP的相干修正, 或手动修正.

4. 装置Postaci, webmail(参考文献2).
这是一个基于php的webmail, 具有对照完美的功效, 并且撑持imap, pop3. 需求mysql撑持. 用户可以自行汉化, 文件在lang目次下.
解压后修正includes目次下global.inc文件(有平安挂念, 参考步调3), 外面有设置装备摆设申明.
Following doc/INSTALL to install

装置完成后添加恰当用户, 然后就能够经由过程becky, outlook, foxmail....等收发邮件. 用阅读器翻开postaci的装置目次就能够经由过程web收发mail了.
  最近陆续的有人问我学习php的心得,现在整理为下面,希望可以对大家有些帮助。
admin 该用户已被删除
沙发
发表于 2015-2-4 12:12:21 | 只看该作者
实践是检验自己会不会的真理。
精灵巫婆 该用户已被删除
板凳
发表于 2015-2-5 20:23:06 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
因胸联盟 该用户已被删除
地板
 楼主| 发表于 2015-2-6 09:45:35 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
柔情似水 该用户已被删除
5#
发表于 2015-2-7 00:16:55 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
爱飞 该用户已被删除
6#
发表于 2015-2-11 01:01:46 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
变相怪杰 该用户已被删除
7#
发表于 2015-2-16 23:17:36 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
海妖 该用户已被删除
8#
发表于 2015-3-5 11:46:01 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
活着的死人 该用户已被删除
9#
发表于 2015-3-12 05:06:51 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
莫相离 该用户已被删除
10#
发表于 2015-3-19 10:21:33 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
不帅 该用户已被删除
11#
发表于 2015-3-23 17:10:53 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
小妖女 该用户已被删除
12#
发表于 2015-3-24 18:34:56 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
简单生活 该用户已被删除
13#
发表于 2015-3-28 07:27:03 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
谁可相欹 该用户已被删除
14#
发表于 2015-4-4 18:58:01 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
小女巫 该用户已被删除
15#
发表于 2015-4-22 03:55:24 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
兰色精灵 该用户已被删除
16#
发表于 2015-4-22 19:39:51 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
17#
发表于 2015-4-25 23:31:10 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
再现理想 该用户已被删除
18#
发表于 2015-7-4 01:39:35 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
冷月葬花魂 该用户已被删除
19#
发表于 2015-7-4 02:21:27 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 03:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表