安装mcrypt
yum install -y php-mcrypt libmcrypt libmcrypt-devel
升级bison
- cd /var/soft/
- wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz
- tar -xvzf bison-2.6.4.tar.gz
- cd bison-2.6.4
- ./configure
- make && make install
升级re2c,解决You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.错误.
- cd /var/soft/
- wget http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
- tar zxf re2c-0.13.5.tar.gz && cd re2c-0.13.5
- ./configure
- make && make install
编译PHP7
- # 创建目录
- mkdir -p /var/soft/php7
- cd /var/soft/php7
- # 下载源代码
- git clone http://git.php.net/repository/php-src.git
- cd php-src //开源软件:phpfensi.com
- ./buildconf
- # 配置参数
- ./configure --prefix=/usr/local/php7 \
- --with-config-file-path=/usr/local/php7/etc \
- --with-mcrypt=/usr/include \
- --with-mysql=mysqlnd \
- --with-mysqli=mysqlnd \
- --with-pdo-mysql=mysqlnd \
- --with-gd \
- --with-iconv \
- --with-zlib \
- --enable-xml \
- --enable-bcmath \
- --enable-shmop \
- --enable-sysvsem \
- --enable-inline-optimization \
- --enable-mbregex \
- --enable-fpm \
- --enable-mbstring \
- --enable-ftp \
- --enable-gd-native-ttf \
- --with-openssl \
- --enable-pcntl \
- --enable-sockets \
- --with-xmlrpc \
- --enable-zip \
- --enable-soap \
- --without-pear \
- --with-gettext \
- --enable-session \
- --with-curl \
- --with-jpeg-dir \
- --with-freetype-dir \
- --enable-opcache
- #################################################################################
编译安装php时出现 /encodings.c:101: undefined reference to `libiconv_close’ 错误的解决方法.
在装php时出现以下的错误:
- # /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open'
- # /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv'
- # /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'
- # /root/Downloads/php-5.6.5/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'
- # collect2: error: ld returned 1 exit status
- # make: *** [sapi/cli/php] Error 1
根据php官网描述这是一个bug(https://bugs.php.net/bug.php?id=52611),在configure以后要手动修改下Makefile文件,找到EXTRA_LIBS 在最后添加 -liconv 即可顺利通过.
大约在Makefile文件的104.
- # EXTRA_LIBS = -lcrypt -lz -lresolv -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcurl -lxml2 -lz -lm -ldl -lfreetype -lmysqlclient -lz -lm -lssl -lcrypto -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcrypt -liconv
- #################################################################################
编译安装
make && sudo make install
配置:
- cp php.ini-production /usr/local/php7/etc/php.ini
- cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
- chmod +x /etc/init.d/php7-fpm
- cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
- cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
配置opcache
vim /usr/local/php7/etc/php.ini
加入:zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/opcache.so
启动:/etc/init.d/php7-fpm start
查看PHP版本:
/usr/local/php7/bin/php -v
结果:
- PHP 7.0.0-dev (cli) (built:www.phpfensi.com Mar 3 2015 10:02:26)
- Copyright (c) 1997-2015 The PHP Group
- Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
- with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2015, by Zend Technologies