2015年6月11日,PHP官網(wǎng)發(fā)布消息,正式公開發(fā)布PHP7第一版的alpha版本.
PHP7特性:
PHP 7.0.0 Alpha 1使用新版的ZendEngine引擎,帶來了許多新的特性,以下是不完全列表:
(1)性能提升:PHP7比PHP5.6性能提升了兩倍。 Improved performance: PHP 7 is up to twice as fast as PHP 5.6
(2)全面一致的64位支持。 Consistent 64-bit support
(3)以前的許多致命錯(cuò)誤,現(xiàn)在改成拋出異常。Many fatal errors are now Exceptions
(4)移除了一些老的不在支持的SAPI(服務(wù)器端應(yīng)用編程端口)和擴(kuò)展。Removal of old and unsupported SAPIs and extensions
(5)新增了空接合操作符。The null coalescing operator (??)
(6)新增加了結(jié)合比較運(yùn)算符。Combined comparison Operator (<=>)
(7)新增加了函數(shù)的返回類型聲明。Return Type Declarations
(8)新增加了標(biāo)量類型聲明。Scalar Type Declarations
(9)新增加匿名類。Anonymous Classes
php7安裝筆記整理
# 安裝mcrypt
yum install -y php-mcrypt libmcrypt libmcrypt-devel
# 升級(jí)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
# 升級(jí)re2c,解決You will need re2c 0.13.4 or later if you want to regenerate PHP
parsers.錯(cuò)誤
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
# 創(chuàng)建目錄 mkdir -p /var/soft/php7 cd /var/soft/php7 # 下載源代碼 git clone http://git.php.net/repository/php-src.git cd php-src ./buildconf # 配置參數(shù) ./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時(shí)出現(xiàn) /encodings.c:101: undefined reference to `libiconv_close' 錯(cuò)誤的解決方法 # 在裝php時(shí)出現(xiàn)以下的錯(cuò)誤: # /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 # 根據(jù)php官網(wǎng)描述這是一個(gè)bug(https://bugs.php.net/bug.php?id=52611)。在configure以后要手動(dòng)修改下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 # 啟動(dòng) /etc/init.d/php7-fpm start
# 查看PHP版本
/usr/local/php7/bin/php -v
結(jié)果:
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
推薦學(xué)習(xí):《PHP7教程》