之前公司的网站是在win2003下然后5.2.6的。前几天那台服务器换为ubuntu12.04了。然后直接apt-get发现是5.3.10的。发现不能用。表现为打开页面出现下面的乱码

Zend2003120702114034274x 2Xn6R,^Yfk?qM.6AQ[YYRE:OD{sc$Rv pf8pQIQW-ez~閿熸枻鎷:/p-'o79"WqJq9>?_[F,$NtgV [Ns:	g gg#->=9?w y..#g}2>AA"Li, ~>?"IK}HaFA#/>lof|M|t-

最找来找去发现是版本太高,然后这个网站的PHP代码用zend加密过了。而且5.3的zend因为功能太多没往下兼容于是就这样了。没办法只能降级。

下面降级的脚本

#!/bin/sh

# Script to install PHP 5.2 from 9.10 on 10.04/12.04
# And pin it so it does not get updated

PKGS=`dpkg -l | grep php | awk '{print $2}'`

apt-get remove $PKGS

sed s/precise/karmic/g /etc/apt/sources.list | 
  tee /etc/apt/sources.list.d/karmic.list

sed -i 's/archive.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list.d/karmic.list

mkdir -p /etc/apt/preferences.d/

for PACKAGE in $PKGS
do
  echo "Package: $PACKAGE
  Pin: release a=karmic
  Pin-Priority: 991
  " | tee -a /etc/apt/preferences.d/php
done

apt-get update

#下面这行原来是这样的 apt-get install $PKGS 然后试了不行。
#可能这样可以 apt-get install -t karmic $PKGS   没测试
apt-get install -t karmic php5-cli libapache2-mod-php5 php5-gd php5-mysql php5-common

下载ZendOptimizer

$ wget "http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz"
$ tar xzvf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
$ cd ZendOptimizer-3.3.9-linux-glibc23-x86_64/

复制ZendOptimizer.so到系统lib目录

cp data/5_2_x_comp/ZendOptimizer.so /usr/lib/php5/libexec/

配置php.ini使PHP支持ZendOptimizer

vi /etc/php5/apache2/php.ini
[ZendOptimizer]
zend_extension=/usr/lib64/php5/libexec/ZendOptimizer.so

重启apache2 OK



脚本原链接

降级php