最近搞了个海外的阿里云主机后,就把自己的个人站迁移了。然后就想办法做优化,用上了openresty + php7 + http2。 因为历史原因,自己搞了几个不同的域名,一个是fukun.org,还有一个之前一直用的digdeeply.org,现在想统一起来,可是却发现wordpress里有很多上传附件的时候,链接已经是写死的,使用的当时的域名digdeeply.org,如果去一个一个的把他们替换过来,就不太现实了。 因为自己用过openresty中的lua,所以首先想到的就是使用一个content_by_lua来实现替换,在这个阶段把内容中字符串替换掉,不过有个细节问题就是这里lua拿到的都是nginx的一个一个的chunk,如果想要替换的字符串正好在两个chunk的分界处,那么这个就会被漏掉而不能替换。 然后在查一些资料的时候,突然发现,其实,nginx自己就有支持字符串替换的模块的: sub_filter , 这样就不用自己在lua写了,会更方便一些,那么先来看看sub_filter怎么用吧。 location / { sub_filter ‘https://fukun.org'https://fukun.org'; sub_filter ‘https://fukun.org'https://fukun.org'; sub_filter_once off; } 用法很简单,只要使用 sub_filter ‘search’ ‘replacement’ ,把被替换和替换内容给出来就可以了,可以写多条规则,替换多次。 其它的几个参数稍微看下文档也能明白了: 语法: sub_filter_once on | off; 默认值: sub_filter_once on; 配置段: http, server, location 字符串替换一次还是多次替换,默认替换一次。如果全文中有多个查找到的字符串,希望全部替换的话,就开启这个选项。 语法: sub_filter_types mime-type …; 默认值: sub_filter_types text/html; 配置段: http, server, location 指定需要被替换的MIME类型,默认为“text/html”,如果制定为*,那么所有类型的内容都会被替换,我们其实一般来说,只希望替换text/html中的就可以了,因为如果是图片啥的,你想替换啥呢? 如何安装sub_filter功能模块http_sub_module 以上是sub_filter的用法,但是如果你已经安装好nginx服务了,而且之前没有安装sub_filter模块,那怎么办呢,总不能把nginx全部重新编译重装吧,那样会覆盖之前的nginx配置,还得再来配置一遍。 可以用另外一种方法来更新nginx,那就是只从新编译,而不安装。就是只执行 ./configure 和 make 方法,而不执行make install,这样就不会有问题了。然后把make编译好的nginx二进制文件拷贝到已安装的nginx sbin目录下覆盖之前的,覆盖之前请做好备份,并停止当前运行的nginx。 我是用的openresty,所以很多configure的参数不用自己加,第一次我编译的时候,因为需要http2和status模块, 只执行了: ./configure –prefix=/home/s/apps/openresty-1.9.7.1 –with-http_v2_module –with-http_ssl_module –with-luajit –with-http_stub_status_module 现在需要sub_filter功能,所以只要添加–with-http_sub_module就可以了。那么就是这么编译:
阅读全文

Cygwin下安装thrift,使用bootstrap.sh时候,提示./bootstrap.sh: line 24: autoscan: command not found,需要安装autoscan,而在Cygwin下搜索autoscan又没搜索到,Google下,有人说搜索autotools,也没搜索到。。最后分别搜索M4,autoconf,automake,安装这三个就可以了。


阅读全文

今天安装了Twisted,使用的时候了报ImportError(ImportError: No module named zope.interface): from zope.interface import implements 细心的话,在安装Twisted的时候应该能发现,对安装是有环境需求的: This method is only necessary if you are trying to install Twisted from e.g. the Subversion repository, and you don’t want to acquire all the tools necessary to do the Official build. Install either Python 2.4 or Python 2.5 Install ZopeInterface 3.3.0 or later for Python 需要安装ZopeInterface。 但是如何安装这个扩展呢,在这里可以找到 zope.interface,我选择的是安装zope.interface 3.8.0,然后点击Downloads我们可以看到一堆egg的文件,以及一个Source的文件,我们选择source的文件下载,放到cygwin环境下的某个目录里下,比如说/usr/src/. 然后,使用cygwin,依次输入以下命令,即可安装完成。 cd /usr/src cd zope.interface.3.8 python setup.py install build –compiler=mingw32 python setup.
阅读全文

今天安装Memcache的PHP支持时,发现网上没有Memcache for php 5.2的下载了。只有for php 5.3的。

下载地址:http://downloads.php.net/pierre/

php_memcache.dll for php5.2 for windows下载

php_memcache.dll for php5.2 for windows下载

自己在网上找了一个php_memcache.dll for php5.2 for windows,现在共享给大家:php_memcache.dll for php5.2 for windows

下载后将压缩包内的php_memcache.dll放入PHP的ext目录下,并在php.ini内添加如下一行,即可

extension=php_memcache.dll


阅读全文

7月18日消息,百度PC端浏览器正式进入公测阶段,最新推出的百度浏览器打通了WEB APP的入口,将超过三万的海量应用整合到同一个平台中供用户选择。

百度称,通过推出PC端浏览器是希望进一步强化“框计算”在用户桌面端的体现,突出以用户体验为原则的设计理念。

百度PC浏览器截图

百度PC浏览器截图


阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Develop Eneigneer

Beijing China