环境 ubuntu 16.04 php7.1.2
PHP 7.1.2 (cli) (built: Mar 11 2017 08:46:28) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
下载地址 : http://php.net/get/php-7.1.2.tar.gz/from/a/mirror
编译指令
3 | sudo ./configure --prefix=/usr/local/php71 --enable-fpm --with-mcrypt --with-curl --with-gd --enable-gd-native-ttf --with-freetype-dir --enable-intl --enable-gd-jis-conv --with-mysql-sock=/tmp/mysqld.sock --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir=/usr/lib64 --with-mhash --enable-sockets --with-png-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-zlib --enable-opcache --enable-zip --enable-mbstring --with-openssl --with-pcre-regex |
解释下:
由于php7中完全移除了--with-mysql 选项 只保留啦 mysqli 和 mysql_pdo 所以所有的mysql函数也被移除啦。 关于mysqlnd http://baike.baidu.com/link?url=FyHm6eDmYuO0e_nGQN-HqBcTstaqh9urutWEsG4qsEsLtNfx8p87zj_7Yml9p8CxbE_z4rEJ4mfEAoXgfwBq4K mysqlnd(MySQL native driver for PHP)是php5.3后php自带的mysql驱动,官方推荐使用,优势如下: A.libmysql驱动是由mysql AB公司(现在是oracle公司)编写, 并按mysql license许可协议发布,所以在PHP中默认是被禁用的. 而mysqlnd是由php官方开发的驱动,以php license许可协议发布,故就规避了许可协议和版权的问题 B.因为mysqlnd内置于PHP源代码,故你在编译安装php时就不需要预先安装mysql server也可以提供mysql client API (mysql_connect, pdo , mysqli), 这将减化一些工作量. C. mysqlnd是专门为php优化编写的驱动,它使用了PHP本身的特性,在内存管理,性能上比libmysql更有优势. php官方的测试是:libmysql将每条记录在内存中保存了两份,而mysqlnd只保存了一份 D. 一些新的或增强的功能 增强的持久连接 引入特有的函数mysqli_fetch_all() 引入一些性能统计函数 mysqli_get_cache_stats(), mysqli_get_client_stats(), mysqli_get_connection_stats(), 使用上述函数,可很容易分析mysql查询的性能瓶颈! SSL支持(从php 5.3.3开始有效) 压缩协议支持 命名管道支持(php 5.4.0开始有效)
从 php5.3开始安装php(同时支持mysql连接)时 就不再需要先安装mysql了。如果不信可以亲自编译试试
未经允许不得转载:开心乐窝-乐在其中 » ubuntu16.04 编译安装PHP7.1 NTS