一个参数编译PHP导致的杯具

今天postgresql升级到超强给力的9.2版本,于是尝鲜。重新编译PHP,结果是 make test的时候所有项目都失败。无论是在VPS上面还是独服上都一样。于是就做编译测试,从开始的编译参数一点点减,

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu \
--with-layout=GNU --with-libdir=lib64 \
--prefix=/usr/local --exec-prefix=/usr/local  \
--sysconfdir=/etc  --libdir=/usr/local/lib64/php \
--sbindir=/usr/local/sbin --sharedstatedir=/usr/com --datadir=/usr/local/share \
--includedir=/usr/local/include --libexecdir=/usr/local/libexec \
--localstatedir=/var --mandir=/usr/local/share/man --infodir=/usr/local/share/info \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--with-pic  --with-curl=shared  --with-freetype-dir --with-png-dir  \
--with-gettext=shared --with-gmp=shared --with-iconv --with-jpeg-dir --with-png-dir \
--with-openssl --with-libxml-dir --with-pcre-regex \
--with-mcrypt=shared --with-zlib  \
--with-pgsql=/usr/pgsql-9.2 --with-pdo-pgsql=/usr/pgsql-9.2 \
--with-pear --with-gd --enable-gd-native-ttf --enable-calendar=shared \
--enable-exif --enable-ftp --enable-sockets --enable-bcmath=shared \
--enable-pcntl \
--enable-intl --enable-mbstring \
--enable-zip --with-bz2=shared \
--with-pdo-mysql=shared --with-mysqli=shared \
--with-mysql=shared --with-mysql-sock=/var/lib/mysql/mysql.sock  \
--without-unixODBC --enable-mbregex \
--enable-fpm  --with-fpm-user=www  --with-fpm-group=www \
--disable-tokenizer --disable-phar \
--without-sqlite3 --without-pdo-sqlite \
--enable-sysvsem --enable-sysvshm --enable-sysvmsg \
--enable-mysqlnd=shared

两个服务器重复跑了一整天,终于找到临界点

./configure \
--with-pdo-mysql=shared --with-mysql=shared \
--enable-mysqlnd=shared

只要

enable-mysqlnd

出现并搭配mysql的就会导致问题。

再后来,上php上一查,原来早有此问题,解决了又出现了

https://bugs.php.net/bug.php?id=55609

https://bugs.php.net/bug.php?id=62880

简单来说:如果对mysqlnd使用了动态编译,且编译了其他mysql模块就会导致错误。

辛苦了一天啊~

 

 

 

 

 

你可能感兴趣的:(一个参数编译PHP导致的杯具)