以CentOS-6.4-minimal为基础进行编译(在看这篇文章时建议先把Apache服务器,Nginx编译):
编译时可以参考的文档:
./configure--help
检查gcc编译器:
gcc-v#检查gcc编译器 yum -y installgcc automake autoconf libtool make#安装GCC yum installgcc gcc-c++ #安装C++编译器
1:php下载
mkdir /usrlocal/web #创建一个文件存放源码 cd /usr/local/web wget http://cn2.php.net/distributions/php-5.5.7.tar.bz2 #下载php tar xjfv php-5.5.7.tar.bz2 #解压 cd php-5.5.7 ./configure #预编译
缺少 libxml2动态库:
#各个版本的下载地址 http://xmlsoft.org/sources/ wget http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz tar xzfv libxml2-tests-2.9.1.tar.gz ./configure make make install
继续加入参数编译php:
./configure --prefix=/usr/local/php #安装目录 --with-config-file-scan-dir=/usr/local/php/etc #配置目录 --enable-fpm #Nginx需要这个模块如果不需要支持Nginx可以不写 --with-mcrypt #加密扩展 --enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization #内置优化器,网上找了点资料说可以加快速度 --with-bz2 --with-zlib --enable-sockets --enable-sysvsem #开启与system v 进程间通信 --enable-sysvshm #开启与system v的共享内存 --enable-sysvmsg #开启system v 消息支 #http://www.laruence.com/2008/04/21/101.html 这是关于system例子 Google回来的,作者是php维护者 --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --enable-mysqlnd --enable-calendar --with-zend-vm=goto #zend 虚拟机调度方法这个有三种模式 #call goto switch goto表现更快 --enable-bcmath --enable-soap --enable-simplexml --with-apxs2=/usr/local/apache2/bin/apxs #这个必须php 与apache通信模块 --with-sqlite3 --enable-ftp --enable-exif --with-gd --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng/ --enable-json --with-ldap
解决方法:
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz ./configure make make install
接下来还有很多需要编译的都差不多,不想写那么多了,如果你想全部动态库都编译的就继续,不想编译请执行以下命令:
yum -y install libmcrypt-devel mhash-devel libxslt-devel \ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \ zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \ ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \ krb5 krb5-devel libidn libidn-devel openssl openssl-devel
继续执行php配置命令:
./configure --prefix=/usr/local/php #安装目录 --with-config-file-scan-dir=/usr/local/php/etc #配置目录 --enable-fpm #Nginx需要这个模块如果不需要支持Nginx可以不写 --with-mcrypt #加密扩展 --enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization #内置优化器,网上找了点资料说可以加快速度 --with-bz2 --with-zlib --enable-sockets --enable-sysvsem #开启与system v 进程间通信 --enable-sysvshm #开启与system v的共享内存 --enable-sysvmsg #开启system v 消息支 #http://www.laruence.com/2008/04/21/101.html 这是关于system例子 Google回来的,作者是php维护者 --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --enable-mysqlnd --enable-calendar --with-zend-vm=goto #zend 虚拟机调度方法这个有三种模式 #call goto switch goto表现更快 --enable-bcmath --enable-soap --enable-simplexml --with-apxs2=/usr/local/apache2/bin/apxs #这个必须php 与apache通信模块 --with-sqlite3 --enable-ftp --enable-exif --with-gd --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng/ --enable-json --with-ldap
make
#错误 undefined reference to `libiconv_open' collect2: ld returned 1 exit status
解决方法:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar-zxvf libiconv-1.14.tar.gz cdlibiconv-1.14 ./configure make makeinstall
编辑Makefile 101行加入liconv
101 EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmcrypt -lltdl -lldap -llber -lpng -lz -ljpeg -lcurl -lbz2 -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -ldl -lcurl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lcrypt -liconv
make ZEND_EXTRA_LIBS='-liconv' #进行编译
过程可能会有些警告的,可以不理会,这里就不写整合的。