Category Archives: 软件技术

Revolution Slider V5.0.4.1 解决wordpress 升级后无法编辑问题

wordpress升级到4.2.2和最新的4.2.4后Revolution Slider插件就报错,可以添加新的但是无法进行编辑制作。Revolution Slider官方提供了升级,之前一直没有找到下载地址,今天终于找到了。
分享给大家,如果大家二次发布,麻烦大家注明下出处,谢谢!
V5.0.2链接: http://pan.baidu.com/s/1eQGsG4y 密码: fk25
wordpress 升级到4.3后,之前的版本又没办法使用了,下面是目前最新的插件
V5.0.4.1链接: http://pan.baidu.com/s/1sjtCwFF 密码: ryxm

解决Discuz 和 WordPress 通过UCenter实现同步登入缺不能同步登出

出现问题我第一反应是wordpress插件太久没更新可能有问题吧,因为Discuz和UCenter是一起,太过相信了,最后找到原因是dz uc_client/client.php 的登陆退出有问题。

修改内容如下

[php]

/* function uc_user_synlogin($uid) {
$uid = intval($uid);
if(@include UC_ROOT.’./data/cache/apps.php’) {
if(count($_CACHE[‘apps’]) > 1) {
$return = uc_api_post(‘user’, ‘synlogin’, array(‘uid’=>$uid));
} else {
$return = ”;
}
}
return $return;
} */

function uc_user_synlogin($uid) {
return uc_api_post(‘user’, ‘synlogin’, array(‘uid’=>$uid));
}

/* function uc_user_synlogout() {
if(@include UC_ROOT.’./data/cache/apps.php’) {
if(count($_CACHE[‘apps’]) > 1) {
$return = uc_api_post(‘user’, ‘synlogout’, array());
} else {
$return = ”;
}
}
return $return;
} */
function uc_user_synlogout() {
return uc_api_post(‘user’, ‘synlogout’, array(‘uid’=>$uid));
}

[/php]
升级到Discuz! X3.2 Release 20141225 后
[php]
function uc_user_synlogin($uid) {
$uid = intval($uid);
if(@include UC_ROOT.’./data/cache/apps.php’) {

$return = uc_api_post(‘user’, ‘synlogin’, array(‘uid’=>$uid));

}
return $return;
}

function uc_user_synlogout() {
if(@include UC_ROOT.’./data/cache/apps.php’) {

$return = uc_api_post(‘user’, ‘synlogout’, array());

}
return $return;
}
[/php]

php生成不重复随机数

[php]
function crypto_rand_secure($min, $max) {
$range = $max – $min;
if ($range < 0) return $min; // not so random…
$log = log($range, 2);
$bytes = (int) ($log / 8) + 1; // length in bytes
$bits = (int) $log + 1; // length in bits
$filter = (int) (1 << $bits) – 1; // set all lower bits to 1
do {
$rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes)));
$rnd = $rnd & $filter; // discard irrelevant bits
} while ($rnd >= $range);
return $min + $rnd;
}

function getToken($length){
$token = "";
$codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//$codeAlphabet.= "abcdefghijklmnopqrstuvwxyz";
$codeAlphabet.= "0123456789";
for($i=0;$i<$length;$i++){
$token .= $codeAlphabet[crypto_rand_secure(0,strlen($codeAlphabet))];
}
return $token;
}
[/php]

wordpress 相同分类下上一篇下一篇文章

如果只是上下篇文章描述可以直接用下面这个,比较简洁。
[php]
$prev = get_previous_post_link( ‘%link’, ‘%title’,true,”,’category’ );
$next = get_next_post_link( ‘%link’, ‘%title’,true,”,’category’ );[/php]
但是要是用到图片描述或者其他详细的可以使用
[php]
$prev_post = get_adjacent_post( true, ”, true );
$next_post = get_adjacent_post( true, ”, false );
[/php]
wordpress官网有介绍https://codex.wordpress.org/Function_Reference/get_adjacent_post
具体自己打印下就可以看到了。

CentOS6.5 安装Mail Server Postfix & dovecot 架构

前言

在Linux 的Mail Server 中,大多都是使用Sendmail or Postfix 为主的MTA Server,但随着Sendmail 功能越来越多,也造成了程式肥大且资安漏洞的问题,大多的设定较不易了解。而Postfix 是目前最简单设定,且资安防护比Sendmail 好很多,在CentOS6.x 已从预设的Sendmail 改为Postfix。

架构与观念

postfi1

Mail Server的整个流程及概念是由几个专有名词而组成的

MUA (Mail User Agent):担任Client 端Active 的角色,例如Microsoft Outlook / Thunderbird 等主动发出收信及寄信的软体。

MTA (Mail Transfer Agent):协助MUA ( Client ) 将信件寄出和接收信件讯息,例如Sendmail、Postfix 等Mail Server。

MDA (Mail Delivery Agent):在MUA 收到信件后,由MDA 决定信件该去哪里,简单来说就是一个过滤的功能,常见的有procmail、Mailscanner + Spamassassion、maildrop、dovecot 这些都可以提供MDA 的实现。

Mailbox / Maildir:就是电子邮件放置的位置。

Mailbox 是早期所使用的储存格式,将所有电子邮件由一个档案组成,但在效能、扩充等等能力皆受到考验,已渐渐由Maildir 替代。

Maildir 储存方式为每一封邮件为一个档案,多数功能都比Mailbox 优,但对于超大型的Maildir 搜寻效能将受到考验,且有早期的Web Mail 不支援Maildir ( Openwebmail 2.01 before )

环境 & 目的

需要可收发的Mail Server,并且需要Webmail 可使用
OS & Service : CentOS 6.5 64bit、SMTP、POP3、IMAP、HTTP

Package :
postfix-2.6.6-6.el6_5.x86_64
cyrus-sasl-md5-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-plain-2.1.23-13.el6_3.1.x86_64
cyrus-sasl-lib-2.1.23-13.el6_3.1.x86_64
dovecot-2.0.9-7.el6.x86_64
openwebmail-data-2.53-3.i386
openwebmail-2.53-3.i386

设定 Postfix & sasl 验证

SETP.1 安装套件

[php]yum -y install postfix cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl[/php]

SETP.2 设定 postfix , main.cf

[php]vim /etc/postfix/main.cf
myhostname = 81tu.com // HostName
mydomain = 81tu.com // Mail domain , example: eric@81tu.com
inet_interfaces = all // 允许 all 都可以通过 mail server 转发邮件。
inet_protocols = ipv4 // 只接受使用 ipv4 協定
mynetworks = 10.XXX.XXX.0/24, 221.XX.XX.0/24, 127.0.0.0/8 //10开头的代表的是内网ip,221是公网的ip
mydestination = 81tu.com,mail.81tu.com $myhostname, localhost.$mydomain, localhost, mydomain // 能夠收信的主機名稱,如果 MX 標誌務必加入此行。

# 以下为sasl auth setting
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination[/php]

SETP.3 启动服务

[php]chkconfig saslauthd on
service saslauthd restart
chkconfig postfix on
service postfix restart[/php]

SETP.4 开启防火墙对应的端口

[php]# SMTP
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
# POP
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 110 -j ACCEPT
# POP3S
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 995 -j ACCEPT
# IMAP
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 143 -j ACCEPT
# IMAPS
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 993 -j ACCEPT[/php]

SETP.5 用 telnet 工具检测

[php]yum -y install telnet
iptables -F //不执行这个会出现解析不到主机
telnet mail.81tu.com 25
ehlo localhost [/php]

postfix2
出现AUTH PLAIN LOGIN (AUTH=PLAIN LOGIN ) 即设定完成

验证目标为本机使用者,并且提供imap 服务给webmail、pop3 给MUA

设定 dovecot

SETP.6安装套件

[php]yum -y install dovecot[/php]

SETP.7 编辑设定档 , dovecot.conf

[php]vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp // 这里设定的服务启动后会Listen port,范例imap(143)、POP3(110)[/php]

SETP.8 编辑设定档 , 10-auth.conf

[php]vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no // 取消明码传输, 若无取消在MUA端预设禁止明码会出现error。 [/php]

SETP.9 编辑设定档 , 10-mail.conf

[php]vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u // 用maildir储存格式并放到使用者的家目录~ [/php]

SETP.10 启动服务

[php]chkconfig dovecot on
service dovecot restart[/php]

SETP.11 建立帐号, 范例使用本机帐号验证,最好的方式还是使用LDAP

[php]adduser user1
passwd user1
usermod -s /sbin/nologin user1 // 资安因素不让帐号允许登入
chmod -R 0777 /var/mail [/php]

SETP.12 检查
postifx3

关于openwebmail的配置,我配置之后无法打开允许,是不是因为没有安装perl安装后也无法允许所以暂时没有搞懂,有懂的欢迎留言,先行谢过

文章内容主要来源台湾网站,有点小问题,不够完善,而且国内访问不了,特此转来。
原地址:http://shazi.twbbs.org/centos6-5-%E5%AE%89%E8%A3%9Dmail-server-%E4%B8%80-postfix-%E6%9E%B6%E6%A7%8B/