Warning: Redis::connect(): connect() failed: Connection refused in /var/www/admclub.com/wp-content/object-cache.php on line 418
PHP | _站长俱乐部站长俱乐部

标签存档: PHP

Nginx+php-memcache 3.03 缓存出现乱码解决方法

因为在国内买了个VPS,需要重新安装环境。
我的WEB配置是Nginx+php+memcache,每当一个页面被访问时,都会把输出写入到memcache中,第二次访问时,由nginx能过nginx-memc-module直接从memcached读取并输出。达到加速目的。

但是在这里安装中,发现当第二次后,输出的却是乱码,经验告诉我,这个内容是被压缩过的,很长的一段时间,我都认为是nginx的问题,很可能是头信息没有设置对,查了又查,发现NGINX的头信息应该是对的。

于是试下从memcached服务器中找答案,GOOGLE得知,自从memcached 1.4.1后,FLAG信息有所改变。于是把memcached从1.4.7降级到1.4.1。但是问题及不能解决。

接着,想到去查看memcached缓存的内容。一查才发现,原因在memcached中,HTML内容已经被压缩过了且flag的值是2!然后修改程序在写入memcached之前,把HTML保存到一个临时文件中,发现内容并没有被压缩,很显然是php-memcache模块自动压缩的了。于是再降级php-memcache模块到2.2.5。重新编译,重启php-fpm后,问题解决。

最后,不死心,还是到memcache官方查change log http://pecl.php.net/package-changelog.php?package=memcache

发现

3.0.3 – Enabled compression by default for values larger than 20kb

果然,自3.0.3后,凡大于20kb的内容,会自动被压缩。然而nginx-memc模块却不能自动识别压缩的。

继续阅读 »

解决安装imagick时Cannot locate header file MagickWand.h的错误

今天在新服上安装php imagick,

环境如下:
php 5.3.20
ImageMagick-6.8.3-8
imagick-3.1.0RC2
可是出错了一个问题.就是死说找不到MagickWand.h:

checking for MagickWand.h header file… configure: error: Cannot locate header file MagickWand.h

可是我明明正确安装了ImageMagick的呀.GOOGLE了半天,也解决不了这个问题.后面对照另一个服务器上的ImageMagick才发现,原来ImageMagick 6.8这个版后的目录结构变了,旧版本头文件是放在/usr/local/include/ImageMagick目录的,而ImageMagick 6.8则是放在/usr/local/include/ImageMagick-6

添加软连接

命令如下:

ln -s /usr/local/include/ImageMagick-6 /usr/local/include/ImageMagick

后来发现imagick-3.1.0RC2编译不通过,于是降低版本,使用imagick-3.01

make && make && install

搞掂!

更新:

最终解决方法:

yum install pkgconfig

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

rm -rf Makefile config.status config.h

./configure

make

make install

继续阅读 »

修改了EFRONT的模块

最近好忙.JAVA,.NET,COGNOS,ORACLE,报表,唯一就是没动过PHP…. 🙁
好久没更新EFRONT的某个模块了.今天总算抽了时间出来,将EFRONT的进度推进了一点.特此记录一下.
顺便为网友发送了一份JOOMLA+UCENTER的整合插件.
有一段时间没写PHP了,写PHP就是舒服…

继续阅读 »

使用php取得android APK文件信息和图标

虽然PHP不能直接获取android APK软件包的信息,但是可以通过调用google发行的android-apktool来取得文件信息的,需要exec支持。

首先需要安装android-apktool:

继续阅读 »

PHP安装XSLT模块支持

首选安装libgpg-error-devel 和libgcrypt-devel

yum install libgpg-error-devel libgcrypt-devel

然后转到PHP源码目录:

./configure –enable-fastcgi –enable-fpm –with-mysql –with-mysqli –with-gd –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-curl –enable-calendar –with-openssl –with-zlib –without-sqlite –disable-pdo –enable-mbstring –with-freetype-dir=/usr –enable-sockets –enable-zip –with-mcrypt –with-mhash –with-jpeg-dir=/usr –enable-ftp –with-xsl

继续阅读 »

解决PHP exec无法取得wget反回l输出值(output)的方法

有时候需要使用wget来下载一些大文件,而不是使用file_get_content或者CURL.因为这样可以突破PHP的内存限制.
但是,因为wget默认是把信息输出到stderr,而不是stdout.所以PHP是无法直接取得wget的输出.必须把wget的内容输出转向stdout或者一个文件内,然后PHP再读取这个文件的内容.
方法如下:

继续阅读 »

优化PHP性能之使用/dev/shm存储Session信息

这个方法仅适用于类Linux系统。不适用于Windows系统。通常网站都需要保存用户的会话信息,也就是Session。默认情况下,PHP会使用Files方式存储Session信息,这对经常有用户登录或者其它操作的大网站来说,这肯定是一个需要优化的地方。

为什么使用/dev/shm来存储?有什么好处?

/dev/shm是Linux的临时文件系统格式:tmpfs,”主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。”换句话说,你可以不用安装Memcache就可以使用内存来存储Session信息了。

继续阅读 »

解决Nginx+Memcache下出现502错误的问题

使用Nginx+Memcache模块(HttpMemcachedModule或NginxHttpMemcModule)进行加速静态内容真是无敌的选择!

在Memcache模块正常运行的情况下,Nginx可以直接从Memcache内存中读取内容并直接显示,根本占用硬盘IO,飞快得很!

但是,有时候Memcache却会因故或无故地停止运行了!这时候Nginx将会抛出502错误信息,很烦人。解决这个问题基本也不难。原理就是使用Nginx的error_page 502转向技术。当出现这个错误的时候,把502错误转向一个@目的来处理。

继续阅读 »

PHP+ImageMagic生成缩略图教程

前面说了如何使用PHP+ImageMagic添加图片水印,现在说下如何使用PHP+ImageMagic生成缩略图.

还是那一句,先安装ImageMagic扩展库,如果未安装,可以从这里查看如何安装ImageMagic扩展库.

接着给出PHP+ImageMagic添加图片水印的代码:

继续阅读 »

PHP使用ImageMagic添加图片水印教程

之前说过如何在Linx命令行下利用ImageMagic快速生成缩略图,现在说下如果利用PHP的Image扩展库生成缩略图.

首生,我们来安装imagick扩展库:

继续阅读 »

第 1 页,共 2 页12