Debian默认用apt-get方式安装的php版本已经是5.3以上的了,若是需要安装像shopex这类只支持php5.2.x的程序就没有办法用,因此只能手动编译php5.2.17(5.2的最新版本)了。

这边把安装的过程记录下来,以留后用。

用apt-get的方式安装nginx/mysql等

apt-get install nginx
apt-get install mysql-server libmysqlclient15-dev
aptitude install libgd2-noxpm-dev libxml2-dev libcurl3-dev libmhash-dev libmcrypt-dev libxslt-dev libpspell-dev libbz2-dev libglobus-openssl-dev
apt-get install build-essential

安装libpng

#下载libpng
wget http://www.45files.com/dnmp/libpng-1.6.7.tar.gz
tar -zxf libpng-1.6.7.tar.gz
cd libpng-1.6.7
cp scripts/makefile.std makefile
make install

安装libjpeg

#下载libjpeg
wget http://www.45files.com/dnmp/jpegsrc.v9.tar.gz
tar xvfz jpegsrc.v9.tar.gz
cd jpeg-9
./configure
make
make install

安装freetype

#下载freetype
wget http://www.45files.com/dnmp/freetype-2.5.0.1.tar.bz2
tar xvfj freetype-2.5.0.1.tar.bz2
cd freetype-2.5.0.1/
./configure --without-png
make
make install

libgd

#下载libgd
wget http://www.45files.com/dnmp/libgd-2.1.0.tar.gz
tar -zxf libgd-2.1.0.tar.gz
cd libgd-2.1.0
./configure
make
make install

安装openssl

#下载openssl
wget http://www.45files.com/dnmp/openssl-1.0.1e.tar.gz
tar zxf openssl-1.0.1e.tar.gz
cd ./openssl-1.0.1e
./config enable-tlsext --prefix=/usr shared
make && make install
ln -sf /usr/include/openssl/*.h /usr/include/
ln -sf /usr/lib/ssl/engines/*.so /usr/lib/
ldconfig -v

安装libltd

apt-get install libltdl-dev

安装php

#下载php5.2.17
wget http://www.45files.com/dnmp/php-5.2.17.tar.gz
#下载fpm补丁
wget http://www.45files.com/dnmp/php-5.2.17-fpm-0.5.14.diff.gz
#下载openssl补丁
wget http://www.45files.com/dnmp/debian_patches_disable_SSLv2_for_openssl_1_0_0.patch
tar -zxf php-5.2.17.tar.gz
#应用fpm补丁
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17
#应用openssl补丁
cd ext/openssl
patch -p3 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch
cd -
./configure --prefix=/usr/local/php5 --enable-force-cgi-redirect --with-config-file-path=/usr/local/php5/etc --enable-fastcgi --enable-fpm --with-mysql --with-mysqli --with-mcrypt --enable-mbstring --enable-inline-optimization --with-zlib --enable-sockets --with-gd --with-png-dir --with-jpeg-dir --enable-gd-native-ttf --with-freetype-dir
make
make install
#成功后将php.ini-dist复制至/usr/local/php5/etc/php.ini
cp php.ini-dist /usr/local/php5/etc/php.ini

接下来

编辑/usr/local/php5/etc/php-fpm.conf,修改用户和用户组为自己需要设定的值。然后将php-fpm加入/etc/init.d/中:

ln -s /usr/local/php5/sbin/php-fpm /etc/init.d/php-fpm
#重启一下php-fpm和nginx
/etc/init.d/php-fpm start
/etc/init.d/nginx restart

噢,No!编译php时忘了开启curl支持……得,小问题,先把autoconf和m4安装起来。

apt-get install autoconf m4

然后进入php源代码目录

cd php-5.2.17/ext/curl/
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config
make
#建立modules目录
mkdir /usr/local/php5/modules
把curl.so拷贝进去
cp modules/curl.so /usr/local/php5/modules/

随后要修改php.ini中的extension_dir并开启curl支持。

vi php.ini
#修改extension_dir
extension_dir=/usr/local/php5/modules/
#开启curl,添加curl.so
extension=curl.so

安装ZendOptimizer

#下载ZendOptimizer 3.3.9
wget http://www.45files.com/dnmp/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
tar -zxf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386
#建立一个目录存放
mkdir /usr/local/zend
cp data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/
vi /usr/local/php5/etc/php.ini
zend_extension=/usr/local/zend/ZendOptimizer.so
#应该也可以一起放到刚才建立的modules中
#重启php-fpm和nginx
/etc/init.d/php-fpm restart
/etc/init.d/nginx restart

至此,Nginx+PHP5.2.17+MySQL环境已经搭建成功,Nginx虚拟主机的配置下回分解。