用Wordpressmu搭建自己的博客系统
WordPress 是目前最为流行的 PHP Blog 程序,目标是美学、Web 标准和易用性的统一。它基于 GPL 许可协议,完全免费。做为开源的blog版本,wordpress很快在网络上流行,并且有大量的爱好者,主题和插件的资源也相当丰富。
想用wordpress搭建一个Blog系统,跟我来吧。
目录
——————————————–
一:服务器环境配置
(1) linux下apache+php+mysql
(2) windows2003下 apache+php+mysql
(3) windows2003下 IIS+php+mysql
二:wpmu安装
三:数据表介绍
四:插件和模板安装
五:更换服务器转移数据
六:常见问题
(1) 文章页面打不开
(2) 域名泛解析
(3) 附件不能上传
(4) 安装后管理员密码收不到
——————————————–
一:服务器环境配置
(1)推荐在linux环境下安装运行wpmu,apache+php +mysql的详细配置见:
Php5.2.1+mysql5.0.27+apache2.2.4+tomcat5.5.9+ ZendOptimizer3.2.0
上面文档将服务器上php和jsp的换就都配置好了,可以参考其中的php和mysql的部分安装,另外安装了ZendOptimizer加速php运行。
(2)windows下apache+php+mysql
推荐使用APMServ(下载地址http://apmserv.s135.com)之类的软件,集成了Apache 2.2.3、PHP 5.2.0、MySQL 5.0.27&4.0.26、SQLite、ZendOptimizer、OpenSSL、phpMyAdmin、SQLiteManager
可以随时开启随时停止。
(3)很多人说在windows下用apache跑php程序用IIS跑php程序稳定,但我换了几台服务器都感觉在win下IIS还是比Apache稳定些,至少在IIS使用的内存会比Apache跑起来用的少很多(多的时候能相差几百M)。
WIN2003 IIS6.0+ASP.NET+PHP+MYSQL+ZEND配置
二:Wpmu安装
Wpmu多用户版下载地址
http://mu.wordpress.org/download/
将下载回来的压缩包解压并上传到到网站目录
在mysql里创建一个新的数据库(mudb)
在IE里输入你的wordpress文件放置的目录,
例如我的http://144.144.24.202/wordpress-mu-1.2.2/
打开后可以看到下面的提示安装页面
点击Submit送出信息,瞬间wpmu就安装完成。

三:wpmu数据表介绍
创建blog时候才从wp-admin/upgrade-schema.php文件中读取$wp_queries变量中存储的创建各种表的sql来在数据库中建立某个blog对应的各个表(如果要在表中添加属性列,修改upgrade-schema.php中的sql语句即可)。
wp_x_categories中的x就是某个blog的id,可以是1,2,3…&helli
:
表一 每个blog所拥有的表及其作用
|
wp_x_categories |
记录每个blog可以自己设置的文章的分类 |
|
wp_x_comments |
记录blog每篇文章的所有评论的信息 |
|
wp_x_link2cat |
记录blog的每个友情链接和该链接所属分类的对应关系,基本没用到 |
|
wp_x_links |
记录blog的友情链接 |
|
wp_x_options |
记录blog中的很多可修改参数的信息,比如blog名字,显示时间格式等等,有的插件在安装时候,也会把插件的参数信息加入到该表中 |
|
wp_x_post2cat |
记录blog的每篇post和该post所属分类的对应关系,里面的category_id对应wp_x_categories中某个分类的cat_ID. |
|
wp_x_postmeta |
记录某篇post的附件的路径,大小等等的相关信息 |
|
wp_x_posts |
记录blog的所有类型post的信息,也是blog最重要的一张表,表中的guid记录的是该post的url。 |
|
wp_x_viewscounter |
记录blog每篇post的pageview。 |
除了每个blog各个都拥有的表之外,还存在全局的表用来记录全局的相关信息(见表二):
|
wp_blog_versions |
基本没有用到过。 |
|
wp_blogs |
记录导师网的所有的blog的信息,每条record就对应一个blog,可以在该表中添加属性来标识该blog是mentor blog,还是student blog,或者是group blog。 |
|
wp_categories |
记录全站文章分类的信息,在首页上面看到的全站文章分类就是从该表中读出的。 |
|
wp_post2cat |
记录某个blog的某篇文章和某个全站文章分类的对应关系,如果在某个blog中发文时候,选择一个全站文章分类,就会向该表中插入一条记录,删除或者修改该文时候,也会相关的对该表中记录进行处理。 |
|
wp_post2topic |
记录某个blog的某篇文章和某个全站热点主题(topic)的对应关系,如果在某个blog中发文时候,选择一个主题,就会向该表中插入一条记录,删除或者修改该文时候,也会相关的对该表中记录进行处理。 |
|
wp_signups |
记录申请blog每个申请人概要信息的表,表里面有注册时候发送到申请人邮箱中的激活码,该表比较重要,因为系统会根据申请人填写的注册名将该申请人blog对应的domain和path记录到该表中,该申请人激活之后,其blog的path就会正式生效。 |
|
Wp_signups_detail |
记录某个申请人个人详细信息的表,在注册的最后一部填写的个人信息就是存储到该表中的。 |
|
wp_site |
记录每个站点的domain和path的表,因为这里我们只使用一个站点,所以该表没有用到。 |
|
wp_sitecategories |
记录所有blog自己建立的文章分类的表,基本上没有用到。 |
|
Wp_sitemeta |
记录全站管理的相关数据,比如站点admin的emails,站点允许使用的themes,站点可以上传的文件的大小,站点blog的总数等等。 |
|
Wp_sitetopics |
记录全站话题数据的表,里面有topic对应的文章数量和对应的评论数量以及标识topic是不是当前topic的属性等等 |
|
Wp_topic_comments |
记录全站话题对应的评论的表 |
|
Wp_usermeta |
记录某个user的相关信息的表,比如user的显示名称,primary_blog以及user的权限等级等等。 |
|
Wp_users |
记录全站所有user的表,user相关的信息都在wp_users和wp_usermeta这两张表中 |
四:wpmu插件和模板安装
Wordpress的wp-content/文件夹下有三个文件夹,一个是themes(风格),一个是plugins(单个用户选择启用的插件),一个是mu-plugins(全站插件)。网上wp的风格和插件资源都很多。
(1) 风格的安装
上传风格文件到themes文件夹下,
登录wp后台,两步操作:1是激活风格,2是选中风格。
在blog管理选项中选择主题列表,选择要激活的主题激活。
然后在外观选项中的主题列表里选择要使用的主题。
(2) 插件的安装
上传插件文件到plugins文件夹下,
登录wp后台,可以看到插件选项下,有对应的插件信息的显示,选择后面的激活即可。
五:更换服务器转移数据
Wordpress博客文章数据都存储在mysql数据库中,数据库表如上第二部分内容介绍。
1:从后台备份,单个Blog备份可以从后台blog管理选项中选择导出,导出xml文件,这种形势的备份恢复时,以同样在这里选择导入,将blog内容还原。这样备份的内容
2:操作数据库备份,wp后台没有提供整个数据库备份的选项,如果要单个blog备份可以选择wp_N_tables(N对应blog的ID)来备份。
备份的时候可以用mysql的mysqldump导出数据。也可以直接复制mysql/data/文件夹下对应的数据库名字的文件夹,里面包括所有的数据表。
还原的时候对应用mysqldump导入,或者将数据库文件夹复制到mysql/data/下(复制的时候先把mysql进程停止掉)。
文件的还原:用户上传的文件存储在Wp-content/blogs.dir文件夹下对应用户ID的文件夹(1、2、3……),还原的时候直接将所有的文件上传到服务器上就可以了。
环境更换后Wp-config.php的修改,
define(’DB_NAME’, ‘dbname’); //mysql数据库名
define(’DB_USER’, ‘username’); //mysql数据库用户名
define(’DB_PASSWORD’, ‘password’); // 数据库密码
define(’DB_HOST’, ‘localhost’); // 服务器名
define(’VHOST’, ‘VHOSTSETTING’);
// 虚拟主机设置 ,单独的blog是否使用二级域名,使用二级域名就写yes 不是就写 no
$base = ‘BASE’; //blog文件相对根目录所在的目录
如果是新手上面的内容不确定怎样修改,那就删除根目录下wp-config.php这个文件,这时打开默认首页看到提示wpmu没有安装,重新按照提示的安装的步骤,在对应的表格里填写好信息,点submit到下一步就可以了。此时会提示数据库表存在的错误,因为确实那些表已存在,wp安装程序不会动那些已经存在的表,但是已经帮你存好了wp-config.php。
六.常见问题
1.wordpress文章页面打不开
wordpress文章页面打不开有两种原因,一是目录不可写,二是没有启用rewrite:
目录权限设置:
Apache的httpd.conf中找到网站目录对应的<Directory>
将
"AllowOverride None"
改为
"AllowOverride FileInfo Options"
因为如果设置为"AllowOverride None"
.htaccess中的rewrite指令对该文件夹就无效了
启用rewrite:
apache的mod_rewrite
在apache的 httpd.conf中 去掉下面一行前面的#,
LoadModule rewrite_module modules/mod_rewrite.so
重启apache生效。
IIS的ISAPI_Rewrite
到http://www.isapirewrite.com/这里下载一个工具
ISAPI_Rewrite Lite 这个版本是免费的
下载安装,在IIS中添加ISAPI扩展,选择刚刚安装的后文件夹目录中的ISAPI_Rewrite.dll
还是这个目录中,在httpd.ini中写入下面的规则,重启IIS,生效。
wordpressmu iis rewrite rules:
[ISAPI_Rewrite]
# WordPress rewrite rules
RewriteRule /archives/category/(.*)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?category_name=$1&feed=$2 [I,U,O]
RewriteRule /archives/category/?(.*) /index.php\?category_name=$1 [I,U,O]
RewriteRule /archives/author/(.*)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?author_name=$1&feed=$2 [I,U,O]
RewriteRule /archives/author/?(.*) /index.php\?author_name=$1 [I,U,O]
RewriteRule /archives/([0-9]{4})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([0-9]+)?/?$ /index.php\?year=$1&monthnum=$2&day=$3&hour=$4&minute=$5&second=$6&page=$7 [I,U,O]
RewriteRule /archives/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?year=$1&monthnum=$2&day=$3&hour=$4&minute=$5&second=$6&feed=$7 [I,U,O]
RewriteRule /archives/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/([0-9]{1,2})/trackback/?$ /wp-trackback.php\?year=$1&monthnum=$2&day=$3&hour=$4&minute=$5&second=$6 [I,U,O]
RewriteRule /feed/?([_0-9a-z-]+)?/?$ /wp-feed.php\?feed=$1 [I,U,O]
RewriteRule /comments/feed/?([_0-9a-z-]+)?/?$ /wp-feed.php\?feed=$1&withcomments=1 [I,U,O]
RewriteRule /articles/category/(.*)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?category_name=$1&feed=$2 [I,U,O]
RewriteRule /articles/category/?(.*) /index.php\?category_name=$1 [I,U,O]
RewriteRule /articles/author/(.*)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?author_name=$1&feed=$2 [I,U,O]
RewriteRule /articles/author/?(.*) /index.php\?author_name=$1 [I,U,O]
RewriteRule /articles/([0-9]{4})?/?([0-9]{1,2})?/?([0-9]{1,2})?/?([_0-9a-z-]+)?/?([0-9]+)?/?$ /index.php\?year=$1&monthnum=$2&day=$3&name=$4&page=$5 [I,U,O]
RewriteRule /articles/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([_0-9a-z-]+)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [I,U,O]
RewriteRule /articles/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([_0-9a-z-]+)/trackback/?$ /wp-trackback.php\?year=$1&monthnum=$2&day=$3&name=$4 [I,U,O]
#RewriteRule /articles2/category/(.*)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?category_name=$1&feed=$2 [I,U,O]
#RewriteRule /articles2/category/?(.*) /index.php\?category_name=$1 [I,U,O]
#RewriteRule /articles2/author/(.*)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?author_name=$1&feed=$2 [I,U,O]
#RewriteRule /articles2/author/?(.*) /index.php\?author_name=$1 [I,U,O]
#RewriteRule /articles2/([_0-9a-z-]+)?/?([0-9]+)?/?$ /index.php\?name=$1&page=$2 [I,U,O]
#RewriteRule /articles2/([_0-9a-z-]+)/(feed|rdf|rss|rss2|atom|rss2_comments)/?$ /wp-feed.php\?name=$1&feed=$2 [I,U,O]
#RewriteRule /articles2/([_0-9a-z-]+)/trackback/?$ /wp-trackback.php\?name=$1 [I,U,O]
2.wordpressmu域名泛解析
IIS设置泛解析:域名解析*.XXX.com到服务器IP,在IIS中添加空主机头即可。
Apache设置泛解析:
如果服务器上就一个站,就不用设置单独设置
如果服务器上有多个网站,就需要设置了,格式如下:
NameVirtualHost 144.144.24.201
<VirtualHost 144.144.24.201>
ServerAdmin admin@hotmail.com
DocumentRoot /var/www/html/mentor
ServerName mentor100.com
ServerAlias *.mentor100.com
ErrorLog /var/log/httpd/mentor100.com-error_log
CustomLog /var/log/httpd/mentor100-access_log common
</VirtualHost>
3.wordpress附件不能上传:
Wp-content/blog.dir/目录不可以写
设置Wp-content/blog.dir/ 属性777
4.wordpress安装后管理员密码收不到:
新安装blog时,如果服务器邮件发送有问题,就收不到初始密码了。要想办法改一个先登录进去再说。
用户密码存放在wp_users. user_pass 中
在数据库中修改一个新密码
MD5(1234,32) = 81dc9bdb52d04dc20036dbd8313ed055
在mysql中执行
UPDATE `wp_users` SET `user_pass` = ‘81dc9bdb52d04dc20036dbd8313ed055‘ WHERE `wp_users`.`ID` = 1 LIMIT 1;
Viewers 64 IP-sum 42
Reader Comments
为什么我的wpmu1.2.3和你的不一样啊,少了好多表阿?把你的wpmu发份给我行吗?谢谢 chatterley.zheng@gmail.com
1234经MD5加密后已经不是‘52444c85d31d8a17744ea2d06e0c9ccd’了!
具体见 http://www.md5.org.cn/
不过还是谢了!
有错误了,更新一下MD5(1234,32) = 81dc9bdb52d04dc20036dbd8313ed055
感谢博主非常详尽的介绍,对于初学来说很重要,希望能提供邮件服务器方面的介绍,我的MU已经安装完成了,但是无法发送邮件,需要如何设置,能否具体实例说明,谢谢。
I hate people like that! They are all crazy! They think they are the coolest and smartest ever. But really they are dumb
Lately I have been trying to find any kind of information for my project, but unsuccessfully. Now it seems like I finally found a lot. This is the greatest site among all internet-sources.
I wonder why so many people like to comment stuff. Why is this kind of spending your free time so popular? Maybe people have a lack of communication in real world? Maybe that’s because they have a lot of problems in reality and want to run away from them? Maybe they need new impressions and experience? Or they just got suck here? I don’t have a clue. What do you all think?
I’m sure it’s not true! If it was, nothing lake that would have been posted! It sounds so weird! I doubt that anyone would ever believe it!
按照楼主的方法做了,为什么我的wordpress文章页面还是打不开,,提示为找不到该页,或者该页已删除。
“在IIS中添加ISAPI扩展,是不是在iis的网站扩展的项里新建一个呢。谢谢!麻烦告知
太好了