On June 11, 2015, the PHP official website announced the official public release of the alpha version of the first version of PHP7.
PHP7 features:
PHP 7.0.0 Alpha 1 uses the new version of ZendEngine engine and brings many new features. The following is an incomplete list:
(1) Performance improvement: PHP7 has twice the performance improvement as PHP5.6. Improved performance: PHP 7 is up to twice as fast as PHP 5.6
(2) Comprehensive and consistent 64-bit support. Consistent 64-bit support
(3) Many previous fatal errors are now changed to throwing exceptions. Many fatal errors are now Exceptions
(4) Removed some old SAPI (Server Side Application Programming Port) and extensions that are no longer supported. Removal of old and unsupported SAPIs and extensions
(5) Added null join operator. The null coalescing operator (??)
(6) Newly added combined comparison operators. Combined comparison Operator (<=>)
(7) Added function return type declaration. Return Type Declarations
(8) Newly added scalar type declaration. Scalar Type Declarations
(9) Added new anonymous class. Anonymous Classes
Collection of php7 installation notes
# Install mcrypt
yum install -y php-mcrypt libmcrypt libmcrypt-devel
# Upgrade 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
# Upgrade re2c to solve the problem You will need re2c 0.13.4 or later if you want to regenerate PHP
parsers.Error
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
Compile PHP7
# 创建目录 mkdir -p /var/soft/php7 cd /var/soft/php7 # 下载源代码 git clone http://git.php.net/repository/php-src.git cd php-src ./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
# Configuration
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
# Configure 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
# View PHP version
/usr/local/php7/bin/php -v
Result:
PHP 7.0.0-dev (cli) (built: 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
The above is the PHP7.0 installation notes shared with you in this article. I hope it will be helpful to you.