WordPress MU 技术在线

WordPress MU 最新下载|wordpress mu 主题|wordpress mu 插件|wordpress mu 安装|wordpress mu 函数|wordpress mu 中文包|WordPress MU 问题解决方案

WordPress MU优化表的脚本


  wordpress mu由于每建立一个新的用户都会自动建立十多张表,因此当注册大量用户的时候会建立非常多的表,引起系统的性能出现问题,我这里写了一段脚本,可以将wordpress mu中的不活动用户(从没有发布文章的用户)进行删除,以节约系统资源。php脚本源代码如下:

<?php

    &mysql_host  = "localhost";
    &mysql_user  = "root";
    &mysql_pass  = "";
    &mysql_db  = "wordpress";

    &mysql_mylink = mysql_connect(&mysql_host, &mysql_user, &mysql_pass)
    or die ("cannot make the connection");
    mysql_select_db(&mysql_db, &mysql_mylink)
    or die ("cannot connect to the database");

    &strsql="select * from wp_blogs where blog_id>2  ";

    &rs_query = mysql_query(&strsql);
    &alls=mysql_num_rows(&rs_query);

    while ((&rs = mysql_fetch_array(&rs_query))) {
          extract(&rs);
    &blogid=&rs["blog_id"];

    &query2 = "select * from wp_".&blogid."_posts ";
    &result = mysql_query(&query2);
    &num= mysql_num_rows(&result);
    //print #
    if (&num<=2) {
  print "drop table if exists wp_".&blogid."_comments;";
     print "drop table if exists wp_".&blogid."_links ;";
     print "drop table if exists wp_".&blogid."_options ;";
     print "drop table if exists wp_".&blogid."_postmeta ;";
     print "drop table if exists wp_".&blogid."_posts ;";
     print "drop table if exists wp_".&blogid."_terms ;";
     print "drop table if exists wp_".&blogid."_term_relationships ;";
     print "drop table if exists wp_".&blogid."_term_taxonomy ;";
  print "delete from wp_blogs where blog_id=".&blogid.";";
    }
    }

    mysql_close ();

?>

  由此看出,wordpress mu使用起来实在不怎么样,多表结构设计的可能有问题,会带来很多麻烦。

域名绑定:apache下wordpress mu让用户自主绑定域名


前提条件
1. 能够编辑apache的httpd.conf文件并增加Virtual Host设置。
2. Wordpress MU安装在独立ip的VPS或者办事器上。
安装过程
1. 安装WordPress MU Domain Mapping插件
你 需要安装插件wordpress mu的插件domain mapping,这个是wordpress mu的核心开发人员之一Donncha O Caoimh写的插件,相信代码质量应该不会有太大的问题
(1) 下载插件,下面是下载地址
http://wordpress.org/extend/plugins/wordpress-mu-d omain-mapping/
要是你在教育网上不了外洋网站,可以从爱写字下载
http://ixiezi.com/files/2008/12/wordpress-mu-domai n-mapping03.zip
下面是zip文件里面的文件列表
domain_mapping.php
readme.txt
sunrise.php
(2) 请仔细阅读readme.txt,当然要是你不想读,那也行,我鄙人面的步骤里面都包孕了readme.txt里面的内容。
(3) 把文件domain_mapping.php 放到你的mu的安装目录的wp-content/mu-plugins目录下面。
(4) 备份wp-content目录下的sunrise.php文件并把安装包中的sunrise.php文件拷贝到wp-content/目录下
(5) 编辑wordpress mu的安装根目录下的wp-config.php文件,取消下面这行的注解
`define( ‘SUNRISE’, ‘on’);`
(6). 使用站点办理员登陆到mu的办理后台,在 Manage->Domain Mapping下面创建域名绑定数据库表并设置办事器的ip地址。
在Server IP Address:后的输入框中输入你的wordpress mu网站的ip地址(必须为独立ip站点)。
2. Apache的设置
要 是你用的是apache,为了保证apache能转发所有未知的域名绑定到wordpress mu,请确保默认的Apache Virtual Host指向你的
wordpress mu站点目录,这可以通过通过通配符 *来实现,下面是ixiezi.com的设置
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.ixiezi.com
ServerAlias ixiezi.com *.ixiezi.com
DocumentRoot /var/www/html
</VirtualHost>
你注意到这个VirtualHost设置中的下面这行
<VirtualHost *:80>
*:80 表示把所有绑定到这个ip地址的域名都转发到这个VirtualHost部分来解析,在上边的设置中,就会被解析到/var/www/html,你要把 /var/www/html替换成你的wordpress mu的安装根目录。
需要注意的是要是你在这个apache的httpd.conf文 件中定义了多个 VirtualHost,那么这个需要放在第一个,这样对所有没有符合匹配原则的域名,就会被自动转发到这个VirtualHost来。
3. mu站点普通用户的设置。
(1). 在域名办理界面创建指向wordpress mu办事器的A记载, 请确保为www以及@都创建了A记载。
(2). 登陆到wordpress mu的用户后台,在Manage->Domain Mapping下面的Add new domain输入框中输入你的域名(不带www)。
4. 示例
ixiezi.com所提供的博 客托管办事当前支持这类用户自助绑定国际域名的办事,您可以到爱写字注册办事并进行国际域名的绑定,该办事是免费的。

WordPress 迁移到 WordPress MU


最近将部分小的博客站从分散的WordPress,迁入到统一的WordPress MU中,内文为我采用的迁移方式。

由于我希望保留原有各个分散WordPress的域名,因此首先要将zhiblog.com的泛域名解析指向新的空间。在zhiblog.com上安装完成 WordPress MU,并使用子域名方式。

在WordPress MU上新建博客,例如hz1.zhiblog.com,并记下它的Blog id。

从原博客,例如hz.zhiblog.com,使用导出功能,导出.xml文件。

到新的博客,例如hz1.zhiblog.com,使用导入功能,导入刚才导出的文件,记得勾选导入附件。

到mysql命令行界面,当然你也可以使用phpmyadmin,执行如下命令:

use wordpressmu;

update wp_2_posts set guid=REPLACE(guid,’http://hz1.zhiblog.com’,’http://hz.zhiblog.com’);

update wp_2_posts set post_content=REPLACE(post_content,’http://hz1.zhiblog.com’,’http://hz.zhiblog.com’);

注释1:wordpressmu为你安装时设置的数据库,命令中数据表名中的2为blog id,请替换为你的blog id。

删除hz.zhiblog.com的域名解析A记录。

登录WordPress MU的管理后台,将hz1.zhiblog.com 博客地址修改为 hz.zhiblog.com 。

等域名解析广播完成后,网站迁移完成。

Nginx 上配置 WordPress Mu 的 Rewrite rules


WordPress Mu 可以看作是一款多用户版的 Wordpress,可以方便架设自己的 BSP,像 blogbus.com,yo2.cn 做的那样。 后台和 WP 差不多,多了一个 Site Admin 用来管理整个 blog, 其他部分和独立的 WP 大同小异。最方便的是 WPMU 和 WP 的部分插件和主题可以通用,基于 WP 丰富的主题和插件,可以很好的应用到 WPMU 上。这样,节约了重新定制主题和寻找插件的时间和资源。

首先需要安装和配置好 Nginx+PHP5+Mysql+FastCGI,然后从官方网站下载 WPMU,安装完毕后打开 nginx.conf,配置 Nginx 以支持 WordPress MU 的 rewrite rules。注意:需要把下面的 zhiblog.com 和路径换成你自己的域名和路径;如果不用 WP SuperCache 插件可以把相关部分注释掉。

 server {    listen 80;    server_name vpsee.com *.zhiblog.com; #requires a type wildcard dns entry    access_log /www/

Wordpress mu自动保存远程图片的插件:Auto_Save_Image


Wordpress mu自动保存远程图片的插件:Auto_Save_Image

我们写日志时,复制了别人网站上的一篇文章,文章中有图片,想把图片下载到自己的空间里,怎么呢?

本插件就是实现这样的功能。

本插件的功能功能:

1、自动保存远程图片并加水印

2、检查文章是否重复

3、去除非本站链接。

原文链接:Wordpress写日志时自动保存远程图片的插件

插件下载地址:http://www.01on.com/auto-save-image.rar

操作:

将插件下载后,用FTP 将Auto_Save_Image文件夹及内容

放在wp-content/plugins,而不是wp-content/mu-plugins里;

在需要的博客上plugins安装,并在setting/Auto_Save_Image下

设置相关的水印设置。

WordPress MU 的 Cookie 登录验证方法


一同学想从 WordPress MU 系统登录,然后直接跳转到第二个站点(子站),以此实现单点登录的效果。因为第二站是子站,所以可以直接看到 WordPress 系统的 Cookie。只要能在子站里识别保存用户登录信息的 Cookie,那就可以支持单点登录。

WordPress MU(2.6、2.7.1) 的登录信息保存在一个 wordpress_logged_in_ 的 Cookie 中。此字段由三段值构成,分别是用户名、有效期和 HMAC(HMAC 是签名)。这里用户名是固定的;但是有效期是 UNIX 时间,其值满足两天时间,是变化的;HMAC 则是由前两者生成的签名,用作校验。

搜索 wordpress_logged_in_ 可以发现 LOGGED_IN_COOKIE,继而可以发现 wp_validate_auth_cookie() 就是验证的函数。此函数会分解 cookie,然后以用户名与有效期生成 verify hmac,再与 cookie hmac 比较。

生成 verify hmac 的过程,其实比较简单。首先是利用 LOGGED_IN_KEY 与 LOGGED_IN_SALT 联合生成一个密串,此密串再与用户名、有效期一起生成第一次的 key hmac,再用 key hmac 与用户名、有效期生成 verify hmac。

示意如下:

&username;
&expiration;
&hmac;

&data = &username . '|' . &expiration;

&salt = apply_filters('salt', LOGGED_IN_KEY . LOGGED_IN_SALT); // 默认其实就是 LOGGED_IN_KEY . LOGGED_IN_SALT
&key = hash_hmac('md5', &data, &salt);
&hash = hash_hmac('md5', &data, &key);

return &hash == &hmac;

WordPressMU无法登录出现跳转循环的故障解决办法


今天在ubuntu8.04桌面环境下安装了LAMPP,并安装了WPMU;期间出现了两个问题。

1,在安装完LAMPP后,XAMPP页面无法打开;总是出现登录提示框,输入网上所说的所谓的默认帐号也好,输入什么东西都不惯用,就是登不进去;后来发现要启动安全配置文件,来设置几个服务的帐号密码;之后就可以登录了;具体的配置文件的位置和启动方法网络上有很多,随便google一下就出来一堆的网站告诉你该怎么做;但是唯独下面一个问题搞了我很长时间;

2,在安装完WPMU的数据库后,开始登录WP的系统,登录后还是显示登录提示框,没有进去,也没有报错;试着提交错误的用户名和错误的密码,均报错;说明用户名和密码我开始并没有输错,但还是进不去,总是提交后返回登录提示页;也许是页面跳转的问题;于是就上网查了apache服务器页面跳转的设置;安装网上的说法发现我的服务器本来就已经打开了rewrite页面跳转;一切设置都是正常的;后来在google的一个角落里看到了一个链接写着,WPMU循环跳转无法登陆;但是作者很懒很懒,只说加入那么一段代码在config文件里,也没说在哪里加,是哪里的什么config文件;后来在我走投无路之下,改了wordpress-mu站点文件下的wp-config.php文件,在这个文件的第一个define…..语句前加了一下这段代码后保存。

define(’ADMIN_COOKIE_PATH’, ‘/’);
define(’COOKIE_DOMAIN’, ”);
define(’COOKIEPATH’, ”);
define(’SITECOOKIEPATH’, ”);

一般可以排除上述登录故障。

Wordpress MU开启注册链接的方法!


怎么在WP MU中打开“注册”这个链接?在WP MU的文档中找到了答案。

要打开“注册”这个链接,需要在管理员后台打开“anyone can register”这个功能。应该是任何人都可以注册用户的功能,而不是任何人都可以注册用户并开启Blog这个功能吧。

然后,编辑header.php

 <body>
 <div id=”rap”>
 <div id=”header”>
        <ul id=”topnav”>
                <li><a href=”http://blogs.sitename.com/”>blogs.sitename.com</a> | </li>
                <li><?php wp_register(‘ ‘ , ‘ ‘); ?> | </li>
                <li><?php wp_loginout(); ?> | </li>

OK,这样应该就可以了。但是具体的还没有时间试验,等到回家之后或许可以试验一下。当然,我觉得这个链接也不一定需要出现在header中,如果你设置了单独的首页入口的话,也是一样的。

WordPress mu邮件不能发送的解决方法


在禁用了sendmail或者最小化安装的linux系统上安装好WordPress mu,

由于sendmail被禁用,诸如用户注册,管理员添加用户等均不能将用户名与密码发送到邮件中,

只能使用外部smtp服务器来转发邮件,以使用gmail为例,解决方法:
          1.先注册个gmail账号
          2.到http://wordpress.org/extend/plugins/wp-mail-smtp/ 下载最新版本的插件,该插件支持WordPress mu使用外部smtp服务器发送邮件
          3.在WordPress mu中上传并启用该插件
          4.设置选项中选择Email选项,填写该选项,实例如下:
From Email: (邮件地址,为第一步申请的账号)
From Name:   (可以随意填写)
Mailer:  选择  Send all WordPress emails via SMTP.
SMTP Host: (使用的smtp服务器,本例为:smtp.gmail.com )
SMTP Port: (smtp服务器端口,本例为:465 )
Encryption:  选择  Use SSL encryption.
Authentication:  选择 Yes: Use SMTP authentication.
Username:  (第一步注册的邮件账号,不包含@和域名)
Password:  (第一步注册的邮件账号密码)
保存以上内容,WordPress mu都会使用gmail的账号来为用户发送邮件

实现WordPress MU 多用户博客与域用户认证--WordPress MU+LDAP Authentication


WordPress是互联网使用最多的免费开源博客系统,其功能强大、扩展插件应用丰富。WPMU(WordPress for Multiuser)是一个专为多用户而增强修改的WordPress扩展版本,其自身一直跟随最新版的WordPress不断更新,国外许多大学都采用 此系统建立了Staff Weblogs系统。经过多方面的搜寻阅读资料,Nottingham宁波校区的系统也得以实现,并使用LDAP插件实现了与既有Active Directory完美集成。这里做一个简要安装笔记:

服务器:两路AMD双核CPU+4G内存,CentOS 5.2 x86_64 内核更新至2.6.18-92.1.18.el5
支持组件:
httpd-2.2.3-11.el5_2.centos.4
mysql-server-5.0.45-7.el5
php-5.1.6-20.el5_2.1
php-ldap-5.1.6-20.el5_2.1
ioncube_loaders_lin_x86-64
ZendOptimizer-3.3.0a-linux-glibc23-x86_64

手动安装php加速组件ioncube_loaders, ZendOptimizer:

[root@gus ~]# tar -xvf ioncube_loaders_lin_x86-64.tar.gz
[root@gus ~]# mkdir -pv /usr/local/lib/ioncube
[root@gus ~]# mv ioncube/ioncube_loader_lin_5.1.so /usr/local/lib/ioncube/
[root@gus ~]# mkdir /usr/local/lib/zend
[root@gus ~]# tar -xvf ZendOptimizer-3.3.0a-linux-glibc23-x86_64.tar.gz
[root@gus ~]# mkdir -pv /usr/local/lib/zend
[root@gus ~]# cd ZendOptimizer…/data/5_1_x_comp
[root@gus ~]# mv -v ZendOptimizer.so /usr/local/lib/zend

 

编辑/etc/php.ini,WPMU流畅运行需要较高的内存,这里将memory_limit值更改为128M。添加ioncube_loader, ZendOptimizer加载项:

;;;;;;;;;;;;;;;;;;;;;
; IonCube Loader    ;
;;;;;;;;;;;;;;;;;;;;;
zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.1.so

;;;;;;;;;;;;;;;;;;;;;
; Zend optimizer    ;
;;;;;;;;;;;;;;;;;;;;;
zend_extension=/usr/local/lib/Zend/ZendOptimizer.so
zend_optimizer.optimization_level=15  

创建MySQL数据库:

create database weblogs;
grant ALL ON weblogs.* TO wpuser@localhost identified by ‘Password’;

安装WP_MU,这个步骤很简单,只需要将官方提供的下载包解压,在浏览器上访问index.php,按照提示即可。WPMU官方还提供一段安装教学视频。

LDAP认证: 启用Active Directory 用户使用既有的账户信息登录WP_MU,并自动创建对应用户名,但是用户不可以在WP_MU中更改密码。Admin在控制面板中对已经成功登录的用户建立个人blog。

将下载的LDAP-AUTH插件解压至blogs/wp-content/mu-plugins,在浏览器中转至WP_MU控制面板,启用plugin功能,这时点击site admin就可以看到LDAP Options,填入相对应的AD服务器信息即可。

User DN for Searches 字段可以使用电子邮件的格式,例如:ldap@nottingham.edu.cn

LDAP Type 一定要选择Windows,否则认证会失败。

如果在安装LDAP AUTH插件后,浏览器?梦适背鱿忠黄瞻祝蠖嗍蚴敲挥邪沧皃hp-ldap

很多大学使用php-CAS插件与CAS server实现集中统一身份验证,由于本人使用php-CAS, CAS server 3.0实验未成功,还待进一步研究。



Powered By wordpress Copyright WordPress MU 技术在线 © 2009-2012 版权所有