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)以前的許多致命錯誤,現在改成拋出異常。Many fatal errors are now Exceptions
(4)移除了一些老的不在支持的SAPI(服務器端應用編程端口)和擴展。Removal of old and unsupported SAPIs and extensions
(5)新增了空接合操作符。The null coalescing operator (??)
(6)新增加了結合比較運算符。Combined comparison Operator (<=>)
(7)新增加了函數的返回類型聲明。Return Type Declarations
(8)新增加了標量類型聲明。Scalar Type Declarations
(9)新增加匿名類。Anonymous Classes
php7安裝筆記整理
# 安裝mcrypt
1
|
yum
install -y php-mcrypt libmcrypt libmcrypt-devel |
# 升級bison
1
2
3
4
5
6
|
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.錯誤
1
2
3
4
5
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#
創建目錄 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 |
# 配置
1
2
3
4
5
|
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
1
2
3
4
5
|
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版本
1
|
/usr/local/php7/bin/php
-v |
結果:
1
2
3
4
|
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 |