2016年2月20日星期六

wordpress 插件 Video Embed & Thumbnail Generator 造成媒体库加载缓慢的问题

在wordpress上面装了Video Embed & Thumbnail Generator 这个插件,非常好用,但是发现媒体库加载非常缓慢,查找原因总是不得要领,mysql性能不错,php也没问题。最后发现是dns解析的问题。

情况是这样,wordpress主机是在防火墙里面的,本身是一个私有地址,而wordpress对外的域名是解析到公有地址上面的,而这个域名,在主机上是解析到公有地址,造成了一些问题。

于是编辑/etc/hosts,把公有地址对应成为127.0.0.1,这样就没问题啦。

2016年2月10日星期三

ubuntu vnc xfce4 中文


ubuntu 14.04下面安装vnc, 并且启动xfce4非常方便,而且中文支持的也不错,我运行java程序,界面上吗带中文,之间就能支持。安装过程如下:

先安装vnc, xfce4, 中文,字体等

apt-get install xfce4 xfce4-goodies vnc4server language-pack-zh-hans fonts-droid ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

然后安装java环境,当然这一步不是必须的。

apt-get install python-software-properties

add-apt-repository ppa:webupd8team/java

apt-get update

apt-get install oracle-java8-installer

然后编辑/etc/default/locale

加入LC_ALL="en_US.UTF-8"

然后在某个非root用户下面,执行vncserver :0

然后执行vncserver -kill :0

上面的命令是未来初始化一些脚本。

然后编辑$HOME/.vnc/xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

startxfce4 &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey
vncconfig -iconic &

#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

编辑成上面的样子。

然后就可以运行vnc啦,

vncserver :0 -localhost -nolisten tcp

上面运行的vnc是监听本地的请求,不允许外面了连接,这样是为了安全。那怎么使用呢?


我们先

ssh -L 5900:127.0.0.1:5900 user@hostip

然后用vnc客户端,连接127.0.0.1就可以啦。

启动的vnc界面里面,会启动xfce4,如果发现图标不对,就点击setting->apperance下面,选择一下theme主题,和图标下面的图标组就可以了。

如果向在这个普通用户vnc环境下,运行root的图形界面程序,那么在普通用户下,运行xhost +,然后进入root用户,就可以运行啦。

另外需要修改 ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
变成
<property name="&lt;Super&gt;Tab" type="empty" />

2016年2月2日星期二

wordpress solr 中文搜索

wordpress的搜索功能不太好用,要说中文搜索,那基本上就等于没有,因为wordpress用的sql语句拼出来的查询条件,碰到中文,那就不行了。

还好,wordpress支持solr搜索,solr本身是可以配置成支持中文搜索的,这里就把大概的配置过程梳理一下。

首先,当然要安装好wordpress,然后要配置好“固定链接”。这一步很重要,因为我们用到的wpsolr插件,依赖这个功能。当初我就没配置好这个,造成了搜索页面没有显示出来。虽然作者的FAQ第一条就是这个,但是还是没注意。要配置固定链接,需要调整apache的配置,AllowOverride All ,类似这种配置,请自行谷歌。

然后就是安装solr,首先要安装java,请自行谷歌安装方法。
然后按照solr官方的操作步骤,先下载solr的zip压缩包,然后启动solr
solr start
再运行
solr create -c wpcore -d {solr_path}/example/files/conf/ ,这样就生成了solr的一个core.

然后就是按照wpsolr里面的solr 安装文档
http://wpsolr.com/installation-guide/
把schema.xml , solrconfig.xml , 上传到 {solr_path}/server/solr/wpcore/conf 下面去。

接着我们要配置中文分词,我们可以使用https://github.com/hankcs/hanlp-solr-plugin 的中文分词,按照项目帮助,将hanlp-portable.jar和hanlp-solr-plugin.jar共两个jar放入${webapp}/WEB-INF/lib下

之后,要修改schema.xml
把text, text_ws, text_lws, textTight, textSpell 等filetype 都改成下面这个样子,注意哦, 原来的positionIncrementGap之类的要去掉。
<fieldType name="text" class="solr.TextField">
<analyzer type="index" enableIndexMode="true" class="com.hankcs.lucene.HanLPAnalyzer"/>
<analyzer type="query" enableIndexMode="true" class="com.hankcs.lucene.HanLPAnalyzer"/>
        </fieldType>
然后重启solr

接下来,在wordpress里面安装配置wpsolr,然后配置连接solr的参数,就能看到效果啦。

不过默认wpsolr的搜索结果高亮不明显,是因为用了默认的<b>,我们给他换成更显眼的高亮方式,要修改wp-content/plugins/wpsolr-search-engine/classes/solr/wpsolr-search-solr-client.php

const DEFAULT_HIGHLIGHTING_PREFIX = '<b>';

const DEFAULT_HIGHLIGHTING_POSFIX = '</b>';
改成
const DEFAULT_HIGHLIGHTING_PREFIX = '<span style="background-color: #FFFF00">';
const DEFAULT_HIGHLIGHTING_POSFIX = '</span>';

最后,由于gfw的问题,需要停止recaptcha的引用,修改dashboard_settings.php
注释掉如下的语句
//wp_enqueue_script( 'google-api-recaptcha', '//www.google.com/recaptcha/api.js', array() );

修改完了重启apache。

然后就能看到效果啦。我这里实现了搜索高亮,搜索词推荐,效果还是挺好的。