环境:Centos 5.6 64bit
--默认安装

安装编译工具:
yum -y install gcc gcc-c++ autoconf automake
创建相应用户:
useradd -m nginx -s /sbin/nologin -d /usr/local/nginx
useradd -m mysql -s /sbin/nologin -d /usr/local/mysql

安装mysql,只是让PHP支持mysql:
tar zxvf mysql-5.0.92.tar.gz
cd mysql-5.0.92
./configure 
--prefix=/usr/local/mysql 
--localstatedir=/usr/local/mysql/data #为mysql数据库存放目录
--with-charset=utf8 
--with-extra-charsets=all 
--with-berkeley-db 
--with-innodb 
--without-readline 
--enable-assembler 
--with-pthread 
--enable-thread-safe-client 
--with-client-ldflags=-all-static

/*
编译时如果出现以下错误:
checking for termcap functions library... 
configure: error: No curses/termcap library found
请安装ncurses-5.6.tar.gz:
tar zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure --prefix=/usr --with-shared --without-debug
make
make install
*/
/*
编译时如出现以下错误,请在编译命令为加上:
--with-readline 或 --with-libedit
即:
./configure 
--prefix=/usr/local/mysql 
--localstatedir=/home/var 
--with-charset=utf8 
--with-extra-charsets=all 
--with-berkeley-db 
--with-innodb 
--without-readline 
--enable-assembler 
--with-pthread 
--enable-thread-safe-client 
--with-client-ldflags=-all-static
--with-readline
or 
--with-libedit
configure: error: Could not find system readline or libedit libraries
          Use --with-readline or --with-libedit to use the bundled
          versions of libedit or readline
*/

make && make install
cd ..

tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure 
--prefix=/usr/local/libiconv

make && make install
cd ..

tar zxvf libxml2-2.6.31.tar.gz
cd libxml2-2.6.31
./configure 
--prefix=/usr/local/libxml2

make && make install
cd..

tar zxvf libtool-1.5.22.tar.gz
cd libtool-1.5.22
./configure 
--prefix=/usr/local/bin/libtool

make && make install
cd ..

mkdir -pv /usr/local/jpeg6/{,bin,lib,include,man/man1,man1}
tar vzxf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make && make install
/*
安装时如出现以下错误:
./libtool --mode=compile gcc -O2  -I. -c ./jcapimin.c
make: ./libtool: Command not found
make: *** [jcapimin.lo] Error 127
请安装:
yum -y install libtool libtool-ltdl libtool-ltdl-devel
cp /usr/share/libtool/config.sub   .
cp /usr/share/libtool/config.guess   .
make clean
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make && make install
*/
cd ..

tar zvxf freetype-2.3.5.tar.gz 
cd freetype-2.3.5
./configure 
--prefix=/usr/local/freetype 
make && make install
cd ..

tar zvxf zlib-1.2.3.tar.gz 
cd zlib-1.2.3
./configure 
--prefix=/usr/local/zlib

make && make install
cd ..

tar zxvf libpng-1.2.40.tar.gz
cd libpng-1.2.40
cp scripts/makefile.std makefile
make && make install
/*
安装时如出现以下错误:
png.h:497:18: error: zlib.h: No such file or directory
请安装:zlib-devel
yum install zlib-devel
*/
cd ..

tar xzvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure 
--prefix=/usr/local/gd 
--with-png=/usr/local/libpng 
--with-zlib=/usr/local/zlib 
--with-freetype=/usr/local/freetype 
--with-jpeg=/usr/local/jpeg6 
--with-libxml=/usr/local/libxml2 
make
/*
安装时如出现以下错误:
configure.ac:64: error: possibly undefined macro: AM_ICONV
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
make: *** [configure] Error 1
需在编译时增加参数:
--enable-m4_pattern_allow
即:
./configure 
--prefix=/usr/local/gd 
--with-png=/usr/local/libpng 
--with-zlib=/usr/local/zlib 
--with-freetype=/usr/local/freetype 
--with-jpeg=/usr/local/jpeg6 
--with-libxml=/usr/local/libxml2 
--enable-m4_pattern_allow
*/
/*
如出现以下错误:
/usr/bin/ld: /usr/local/lib/libpng.a(png.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpng.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libgd.la] Error 1
make[2]: Leaving directory `/root/Nginx/gd-2.0.35'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Nginx/gd-2.0.35'
make: *** [all] Error 2
请修改libpng文件,再重新安装libpng:
vi ../libpng-1.2.40/makefile
查找到CFLAGS行:
/CFLAGS/
将:CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
=>>
修改为:CFLAGS=-I$(ZLIBINC) -O -fPIC # -g -DPNG_DEBUG=5
cd ../libpng-1.2.40/
make clean
make && make install
*/
make install
cd ..

tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make
make install
cd ..

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

 安装PHP前,需要安装:
yum -y install curl-devel openldap-devel openssl-devel libxml2-devel

tar zxvf php-5.2.17.tar.gz
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv=/usr/local/libiconv/ --with-libxml-dir=/usr/local/libxml2 --with-gd=/usr/local/gd/ --with-jpeg-dir=/usr/local/jpeg6/ --with-zlib-dir=/usr/local/zlib --with-png-dir=/usr/local/lib --with-freetype-dir=/usr/local/freetype --with-mysql=/usr/local/mysql --with-mcrypt=/usr/local/lib/libmcrypt --enable-mbstring --with-openssl --enable-ftp --with-curl --enable-fastcgi --enable-xml --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization  --with-curlwrappers --enable-mbregex  --enable-fpm --enable-force-cgi-redirect --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl
make
make install
cp php.ini-dist /usr/local/php/lib/php.ini
cd ..

tar zxvf pcre-8.01.tar.gz
cd pcre-8.01/
./configure

make && make install
cd ..

tar zxvf nginx-0.9.5.tar.gz
cd nginx-0.9.5/
./configure 
--with-http_stub_status_module 
--with-http_ssl_module 
--user=nginx 
--group=nginx 
--with-http_realip_module

make && make install
cd ..

tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php/bin/phpize
./configure 
--with-php-config=/usr/local/php/bin/php-config
make && make install
cd ..

tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make && make install
cd ..

mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
chown nginx:nginx /tmp/eaccelerator

sed -i 's/extension_dir = \"\.\/\"/extension_dir = \"\/usr\/local\/php\/lib\/php\/extensions\/no-debug-non-zts-20060613\/\"/'  /usr/local/php/lib/php.ini
sed -i '492i\extension = \"memcache\.so\"' /usr/local/php/lib/php.ini
sed -i 's/output_buffering = Off/output_buffering = On/'  /usr/local/php/lib/php.ini
sed -i '522i\cgi\.fix\_pathinfo=0'  /usr/local/php/lib/php.ini

echo '[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="0"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"
' >>/usr/local/php/lib/php.ini

echo '
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
'>> /usr/local/nginx/conf/fcgi.conf

mv /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php-fpm.conf.bak
cp php-fpm.conf   /usr/local/php/etc/php-fpm.conf

mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
cp $dir/nginx.conf /usr/local/nginx/conf/nginx.conf

mkdir -p /var/nginx/{www.gdzy.cn,blog.gdzy.cn}
chown nginx:nginx /var/nginx/www.gdzy.cn/
chown nginx:nginx /var/nginx/blog.gdzy.cn/
mkdir /var/log/nginx/
chown nginx:nginx /var/log/nginx/

echo '<?phpinfo();?>' >/var/nginx/www.gdzy.cn/index.php

/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx