Zhe Yang

分布式缓存-Memcached

分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性)。分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由。 原文:http://wenku.baidu.com/view/8686d46c7e21af45b307a8c3.h […]

更改WordPress的URL后导致无法访问解决办法

WordPress在数据库中存储了两个地址,这两个地址规定了博客文件和主索引的位置。正常安装情况下,这两个地址路径相同。

遇到以下两种情况时,用户需要进入数据库更改其中一个或者所有地址的设置:

  1. 试图在设置中更改博客URL或WordPress的URL并发生错误时
  2. 通过其他域名访问某个域名或子域名

快速修正

通过FTP访问网站的用户可以在错误改动某些值的情况下,用该方法快速备份网站并重新运行网站:

  1. 通过FTP访问站点,复制当前主题的functions.php文件,在简单的文本编辑器(如记事本)中编辑该文件并上传回网站。
  2. 将以下两行代码添加到文件中首个”<?php”行之后:

update_option(‘siteurl’,’http://example.com/blog’);

update_option(‘home’,’http://example.com/blog’);

这里要将example.com换成用户的网站URL。

  1. 将文件按上次的路径上传回网站。FTP客户端软件FileZilla提供了灵活的“编辑文件”功能,帮助用户快速完成以上动作,因此用户可以选择使用这款软件。
  2. 加载几次登录或管理页面,网站备份完毕
  3. 重复以上步骤,但无需再加入代码行。重要:不要将代码行留在原处,网站运行后立即删除这些代码行。

主题中没有functions.php文件时:创建一个新的文本文件并命名为“functions.php”,用记事本编辑该文件,将以下代码添加到文本中(将其中的example.com替换为自己的网站URL):

<?php

update_option(‘siteurl’,’http://example.com/blog’);

update_option(‘home’,’http://example.com/blog’);

将文件上传到主图目录中,然后按上述步骤进行操作。操作完毕后删除文件。

重新定位

WordPress支持自动重定位方法,该方法可自动计算定位并更新定位值。将网站从一台服务器重新定位到另一台服务器上时,该方法能够快速协助网站开始运行。

用法:

  1. 编辑wp-config.php 文件
  2. 在“define”语句后添加如下代码:

define(‘RELOCATE’,true);

  1. web浏览器中访问wp-login.php页面
  2. 在正常状态下登录

RELOCATE flag为true时,系统会自动将网站URL更新到用户用以进入登录页面的路径。这样管理界面就可以立即在新URL上运行,其他设置不会发生变化。用户需要手动改变其它设置。

网站开始运行后,用户应该删除多余代码行,不能将他们激活。

直接在数据库中更改网站URL

如果知道如何在主机上访问phpMyAdmin,可以直接编辑文件然后运行网站。

  1. 备份数据库并将备份保存在其它地方
  2. 登录PhpMyAdmin
  3. 点击链接进入数据库
  4. 显示数据库列表,选择存放WordPress的数据库
  5. 数据库中所有表格都会显示在屏幕上
  6. 在表格列表中查找 wp_options。注意:表格前缀wp_可能会因为用户安装时的改动而有所不同
  7. 单击Browse按钮
  8. 在wp_options表中弹出一个字段列表窗口
  9. 在option_name字段以下查找siteurl
  10. 单击内容首行最左边的Edit Field图标
  11. Edit Field窗口被打开
  12. 在option_value的输入框中将原有URL改为新URL地址
  13. 检查操作的正确性,单击Go保存
  14. 页面返回到wp-options表格
  15. 在表格中查找home字段,单击Edit Field。注意在wp_options中有很多页表格,点击>进入下页面。
  16. 在 option_value输入框中将原有URL改为新URL地址
  17. 检查操作的正确性,单击Go保存
  18. 删除文件夹wp-content/cache(WordPress 2.0新增文件夹)
  19. 完成

更改域名

谨慎操作。

请先备份数据库:备份数据库

以下操作将无法撤销。操作过程中没有“取消”或“恢复”选项,所有操作效果都将是永久性的,请注意可能造成的不良影响。

更改域名时需要进行数据库还原,还原完毕后将所有文件上传到新地址中。

此时博客会停止运行。

1. 数据库

根据以上操作说明在数据库中更改信息

2. 进入数据库

  1. 登录进入 PhpMyAdmin
  2. 备份数据库并将备份保存在其它地方
  3. 登录进PhpMyAdmin
  4. 点击链接进入数据库
  5. 显示数据库列表,选择存放WordPress的数据库
  6. 在数据库中查找原先储存日志信息的表格名称。通常情况下表格名为wp_posts,但名称有可能被更改。记下表格名称。
  7. 点击Browse按钮或链接,打开wp_posts表格
  8. 查找储存文章“guid”的字段。通常情况下字段名称为guid,但名称有可能被更改。记下字段名称。
  9. 点击表格顶端,进行SQL查询。
  10. 根据以上操作中记录的信息以及新旧URL地址,用户可能希望更新数据库,输入以下代码(慎重):

UPDATE wp_posts SET guid = REPLACE (

guid,

http://exampleoldsiteurl.com’,

http://examplenewsiteurl.com’);

  1. 确保wp-posts与posts_content的名称与数据库中的表格和字段名称相匹配。修改不匹配的名称。
  2. 确保希望改动的文本在单引号内,以及所有语句都没有拼写错误。
  3. 再次用SQL对话框检查所有操作。保证其正确性。该操作将无法恢复。
  4. 确定一切操作无误后,单击Go
  5. 屏幕顶端生成一个列表,显示所更改的表格和字段数量。

更改模板文件

用户需要在自己的WordPress主题中逐个打开模板文件并查找曾经手动输入的原有域名,将其替换为新域名。在sidebar.php and footer.php等各式模板文件中查找特定手写代码链接。

根据输入管理面板>设置>常规l栏的信息,WordPress用一个名为bloginfo()的模板标签自动生成用户的网站地址。不必修改该模板标签

更改Config文件

如果数据库以某种方式被移动或更改,用户需要相应更新WordPress的configuration文件。

  1. 用户需要在以下情况发生时修改config文件:
    • 数据库转移到另一台服务器上,目前不在本地运行
    • 重命名数据库
    • 更改数据库的用户名
  2. 备份wp-config.php文件
  3. 在文本编辑器中打开wp-config.php文件
  4. 检查文件内容。尤其注意查找数据库主机入口
  5. 保存文件

这时WordPress就可以运行了。

检验URL资料

  1. 进入管理面板>设置>常规,在这里查看之前的URL更改是否正确。
  2. 确保WordPress URL的引用中含有新链接地址
  3. 确保博客URL的引用中含有新链接地址
  4. 如果做了更改,点击Save Changes

更改.htaccess文件

如果用户使用固定链接或其他任何改写以及重定向方式,需要在管理面板>设置>常规中更改资料后更新.htaccess文件。

  1. 备份.htaccess文件,这是必要条件
  2. 在文本编辑器中打开.htaccess文件
  3. 检查文件内容并查找用户曾经输入的所有自定义改写或重定向。为安全起见,将这些改动复制并保存到另一个文本文件。
  4. 关闭文件
  5. 根据Permalinks SubPanel上的说明,将永久链接更新到.htaccess文件
  6. 打开新的.htaccess文件,检查自定义改写或重定向是否还在。如果不在,请将第三步中保存的信息复制到新的.htaccess文件中。
  7. 对自定义改写和重定向做必要改动以显示新的URL地址
  8. 保存文件
  9. 测试重定向是否有效

如果中途发生错误,可以在备份中还原数据库,然后再次操作。尽量保证一次成功。

 

星期日

Latex-引用文献按引用顺序排号

通过设置 bibliographystyle 就可以达到上述目的,Bibtex 自身已具备排序的功能,而且可以选择自己想要的排序方式。Bibtex 已自带有 8 种样式,分别如下(下面内容摘自 LaTeX 编辑部):

1. plain,按字母的顺序排列,比较次序为作者、年度和标题

2. unsrt,样式同plain,只是按照引用的先后排序

3. alpha,用作者名首字母+年份后两位作标号,以字母顺序排序

4. abbrv,类似plain,将月份全拼改为缩写,更显紧凑:

5. ieeetr,国际电气电子工程师协会期刊样式:

6. acm,美国计算机学会期刊样式:

7. siam,美国工业和应用数学学会期刊样式:

8. apalike,美国心理学学会期刊样式:

星期六

ecshop在网站首页显示商品库存

1、 打开 /includes/lib_goods.php 文件 找到下面代码(大概在287行左右) //取出所有符合条件的商品数据,并将结果存入对应的推荐类型数组中 $sql = ‘SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ‘ . “IFNULL(mp.user_price, g.shop_price * ‘$_SESSION[discount]’) AS shop_price, “.

修改为 //取出所有符合条件的商品数据,并将结果存入对应的推荐类型数组中 $sql = ‘SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price AS org_price, g.promote_price, ‘ . “IFNULL(mp.user_price, g.shop_price * ‘$_SESSION[discount]’) AS shop_price, g.goods_number,”.

2、 接着,继续向下找到 if (in_array($row[‘goods_id’], $type_array[‘best’]))

在它上面增加一行代码 $goods[$idx][‘goods_number’]        = $row[‘goods_number’];

3、

然后再修改模板文件 /themes/模板文件夹/library/recommend_hot.lbi ,/themes/模板文件夹/library/recommend_new.lbi , /themes/模板文件夹/library/recommend_best.lbi,在合适的位置调用{$goods.goods_number}

4、

最后一步记得去ECSHOP后台,清除一下缓存

星期五

NoSQL在SAE中的应用

Sina App Engine(简称SAE)是新浪研发中心于2009年8月开发,并于2009年11月3日正式推出的国内首个公有云计算平台,是新浪云计算战略的核心组成部分。 SAE选择国内流行最广的Web开发语言PHP作为支持语言,Web开发者可以在Linux、Mac、Windows上通过SVN、SDK或者Web版在线代码编辑器进行开发、部署及调试,团队开发时还可以进行成员协作,不同的角色对代码、项 […]

疑:KVDB能实现类似mongodb的功能吗

我在一个mongo上可能放多个应用,所以我可能会定义为不同的Collection,从逻辑上清晰一点,并且也希望能一直深入的分下去,希望是比较有结构的kv,例如 { “portfolio”: {……} } { “resume”: { “name”:”Joe”, “age […]

KVDB第三方面板

简单的kvDB面板 使用basic认证 使用前先要改密码 <?php $username=”wenfeng”; $password=”swaen”; if (isset($_SERVER[‘PHP_AUTH_USER’]) && $_SERVER[‘PHP_AUTH_USER’]= […]

路由器+Nat123+IIS个人电脑也可以发布网站

笔者之前尝试过在DLink-504下的笔记本电脑使用联通的80端口发布网站,但是由于各种原因,没有成功,今日花了差不多一个下午,研究了一番,最终成功,现 将方法分享给大家。 所用材料: ThinkPad笔记本,Win8.1系统, TP-Link 842N 300M路由器,IIS 8.5,Nat123端口映射软件 操作要点: 1.获取本机的内网ip和公网ip 2.进入路由器管理界面,找到DMZ主机设 […]

PHP Curl实时推送百度Sitemap代码

今天偶然进入百度站长平台,发现sitemap里有了新功能:实时推送。 实时推送基于POST协议,用于网站把网页及包含的结构化数据迅速提交给百度,使得网站在百度保持最新状态。 请按照以下步骤,实时推送数据。 1、推送数据 数据推送接口 接口调用地址:http://ping.baidu.com/sitemap?site=www.yangzhe.net&resource_name=sitemap […]