【发布时间】:2016-04-07 18:22:30
【问题描述】:
我正在为php安装mysqlnd_ms包,但是make命令报错:
make: *** [php_mysqlnd_ms.lo] Error 1
ERROR: `make' failed
我的 PHP 版本:
[root@uoo insFile]# php -v
PHP 5.6.12 (cli)(构建时间:2015 年 8 月 30 日 00:04:44) 版权所有 (c) 1997-2015 PHP 集团 Zend Engine v2.6.0,版权所有 (c) 1998-2015 Zend Technologies
我的操作系统:
[root@uoo ~]# cat /etc/centos-release
CentOS Linux 版本 7.2.1511(核心)
所有已安装的php模块:
[root@uoo insFile]# php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
ereg
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
[Zend Modules]
这是我使用 pecl 的安装过程:
[root@uoo insFile]# pecl install mysqlnd_ms
正在下载 mysqlnd_ms-1.5.2.tgz ...
开始下载mysqlnd_ms-1.5.2.tgz(385916字节)
.................................................. ...............................完毕: 385,916 字节
36 个源文件,正在构建
运行:phpize
配置:
PHP API 版本:20131106
Zend 模块 API 编号:20131226
Zend Extension API 编号:220131226
在 /tmp/pear/temp/pear-build-rootvgIJMs/mysqlnd_ms-1.5.2 中构建
运行:/tmp/pear/temp/mysqlnd_ms/configure
检查处理长行的 grep 和 -e... /usr/bin/grep
正在检查 egrep... /usr/bin/grep -E
正在检查不截断输出的 sed.../usr/bin/sed
正在检查抄送...抄送
正在检查 C 编译器是否工作......是的
检查 C 编译器默认输出文件名... a.out
检查可执行文件的后缀...
检查我们是否在交叉编译...否
正在检查目标文件的后缀...o
检查我们是否正在使用 GNU C 编译器...是的
检查 cc 是否接受 -g... 是
检查 cc 选项以接受 ISO C89...不需要
检查如何运行 C 预处理器... cc -E
正在检查 icc...否
正在检查 suncc...否
正在检查 cc 是否同时理解 -c 和 -o...是的
正在检查系统库目录... lib
检查编译器是否支持 -R... 否
检查编译器是否支持 -Wl,-rpath,... 是的
检查构建系统类型... x86_64-unknown-linux-gnu
检查主机系统类型... x86_64-unknown-linux-gnu
检查目标系统类型... x86_64-unknown-linux-gnu
检查 PHP 前缀... /usr/local/php
检查 PHP 包括... -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php /include/php/ext -I/usr/local/php/include/php/ext/date/lib
检查 PHP 扩展目录... /usr/local/php/lib/php/extensions/no-debug-zts-20131226
检查 PHP 安装的头文件前缀... /usr/local/php/include/php
检查是否启用调试...否
检查 zts 是否启用...否
正在检查 re2c...否
配置:警告:如果您愿意,您将需要 re2c 0.13.4 或更高版本 重新生成 PHP 解析器。
正在检查 gawk...gawk
正在检查是否启用 mysqlnd_ms 支持...是的,共享
正在检查是否在 mysqlnd_ms 中启用表过滤器...否
正在检查是否通过mysqlnd_ms中的mysqlnd_qc查询缓存... 没有
正在检查 cc.../usr/bin/ld 使用的 ld
检查链接器 (/usr/bin/ld) 是否是 GNU ld...是的
正在检查 /usr/bin/ld 选项以重新加载目标文件... -r
检查 BSD 兼容的 nm... /usr/bin/nm -B
检查 ln -s 是否有效...是的
检查如何识别依赖库... pass_all
正在检查 ANSI C 头文件...是的
正在检查 sys/types.h... 是的
正在检查 sys/stat.h...是的
正在检查 stdlib.h...是的
正在检查 string.h...是的
正在检查 memory.h...是的
检查strings.h...是的
正在检查 inttypes.h...是的
正在检查 stdint.h...是的
正在检查 unistd.h...是的
正在检查 dlfcn.h 的可用性...是的
正在检查 dlfcn.h 的存在...是的
正在检查 dlfcn.h...是的
正在检查命令行参数的最大长度... 1572864
检查命令以从 cc 对象解析 /usr/bin/nm -B 输出... ok
正在检查 objdir....libs
正在检查 ar...ar
正在检查ranlib...ranlib
检查脱衣...脱衣
检查 cc 是否支持 -fno-rtti -fno-exceptions... 否
正在检查 cc 选项以生成 PIC...-fPIC
检查 cc PIC 标志 -fPIC 是否有效...是的
检查 cc static flag -static 是否有效...否
检查 cc 是否支持 -c -o file.o... 是
检查 cc 链接器 (/usr/bin/ld -m elf_x86_64) 是否支持 共享库...是的
检查 -lc 是否应显式链接到...否
检查动态链接器特性... GNU/Linux ld.so
检查如何将库路径硬编码到程序中...立即
检查是否可以剥离库...是的
检查 libtool 是否支持共享库...是的
正在检查是否构建共享库...是
正在检查是否构建静态库...否
创建库工具
将配置标签“CXX”附加到 libtool
配置:创建 ./config.status
config.status: 创建 config.h
运行:制作
/bin/sh /tmp/pear/temp/pear-build-rootr7CW9Q/mysqlnd_ms-1.5.2/libtool --mode=编译cc
-我。 -I/tmp/pear/temp/mysqlnd_ms -DPHP_ATOM_INC
-I/tmp/pear/temp/pear-build-rootr7CW9Q/mysqlnd_ms-1.5.2/include
-I/tmp/pear/temp/pear-build-rootr7CW9Q/mysqlnd_ms-1.5.2/main
-I/tmp/pear/temp/mysqlnd_ms -I/usr/local/php/include/php
-I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM
-I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext
-I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2
-c /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c -o php_mysqlnd_ms.lo
mkdir .libs
cc -I。 -I/tmp/pear/temp/mysqlnd_ms -DPHP_ATOM_INC
-I/tmp/pear/temp/pear-build-rootr7CW9Q/mysqlnd_ms-1.5.2/include -I/tmp/pear/temp/pear-build-rootr7CW9Q/mysqlnd_ms-1.5.2/main -I/tmp/pear /temp/mysqlnd_ms -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local /php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp /pear/temp/mysqlnd_ms/php_mysqlnd_ms.c -fPIC -DPIC -o .libs/php_mysqlnd_ms.o /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c: 在函数'zif_mysqlnd_ms_get_last_used_connection'中:/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:293:2:警告:通过 ‘zval_to_mysqlnd’ 的参数 2 从没有 a 的指针生成整数 cast [默认启用]
if (!(proxy_conn = zval_to_mysqlnd(handle TSRMLS_CC))) { ^ 在 /tmp/pear/temp/mysqlnd_ms/mysqlnd_ms.h:40:0 中包含的文件中,
来自/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:34: /usr/local/php/include/php/ext/mysqlnd/mysqlnd_reverse_api.h:37:18: 注意:预期为“unsigned int”,但参数类型为“void ***”
PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities,无符号整数 * save_client_api_capabilities TSRMLS_DC);
^ /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:293:2:错误:函数“zval_to_mysqlnd”的参数太少
if (!(proxy_conn = zval_to_mysqlnd(handle TSRMLS_CC))) { ^ 在 /tmp/pear/temp/mysqlnd_ms/mysqlnd_ms.h:40:0 中包含的文件中,
来自/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:34: /usr/local/php/include/php/ext/mysqlnd/mysqlnd_reverse_api.h:37:18: 注意:此处声明
PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities,无符号整数 * save_client_api_capabilities TSRMLS_DC);
^ /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:在函数'zif_mysqlnd_ms_get_last_gtid'中:
/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:333:2:警告:通过 ‘zval_to_mysqlnd’ 的参数 2 从没有 a 的指针生成整数 cast [默认启用] if (!(proxy_conn = zval_to_mysqlnd(handle TSRMLS_CC))) { ^ 在 /tmp/pear/temp/mysqlnd_ms/mysqlnd_ms.h:40:0 中包含的文件中,
来自/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:34: /usr/local/php/include/php/ext/mysqlnd/mysqlnd_reverse_api.h:37:18: 注意:预期为“unsigned int”,但参数类型为“void ***”
PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities,无符号整数 * save_client_api_capabilities TSRMLS_DC);^ /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:333:2:错误:函数“zval_to_mysqlnd”的参数太少
if (!(proxy_conn = zval_to_mysqlnd(handle TSRMLS_CC))) { ^ 在 /tmp/pear/temp/mysqlnd_ms/mysqlnd_ms.h:40:0 中包含的文件中,
来自/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:34:
/usr/local/php/include/php/ext/mysqlnd/mysqlnd_reverse_api.h:37:18: 注意:此处声明
PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities,无符号整数 * save_client_api_capabilities TSRMLS_DC);
^ /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:373:3:警告:传递“ms_ori mysqlnd_conn_methods->store_result”的参数 2 从没有强制转换的指针生成整数 [已启用▽默认] if (!(res = MS_CALL_ORIGINAL_CONN_DATA_METHOD(store_result)(conn TSRMLS_CC))) { ^ /tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:373:3:注意:预期为“unsigned int”,但参数的类型为“void ***”
/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:373:3: 错误:太少 函数“ms_orig_mysqlnd_conn_methods->store_result”的参数
/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:在函数中 ‘zif_mysqlnd_ms_set_qos’:
/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:506:2:警告:通过 ‘zval_to_mysqlnd’ 的参数 2 从没有 a 的指针生成整数 cast [默认启用] if (!(proxy_conn = zval_to_mysqlnd(handle TSRMLS_CC))) {
^
在 /tmp/pear/temp/mysqlnd_ms/mysqlnd_ms.h:40:0 包含的文件中,
来自/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:34: /usr/local/php/include/php/ext/mysqlnd/mysqlnd_reverse_api.h:37:18: 注意:预期为“unsigned int”,但参数类型为“void ***”
PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities,无符号整数 * save_client_api_capabilities TSRMLS_DC);
^
/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:506:2: 错误:函数‘zval_to_mysqlnd’的参数太少
if (!(proxy_conn = zval_to_mysqlnd(handle TSRMLS_CC))) {
^
在 /tmp/pear/temp/mysqlnd_ms/mysqlnd_ms.h:40:0 包含的文件中,
来自/tmp/pear/temp/mysqlnd_ms/php_mysqlnd_ms.c:34: /usr/local/php/include/php/ext/mysqlnd/mysqlnd_reverse_api.h:37:18: 注意:此处声明
PHPAPI MYSQLND * zval_to_mysqlnd(zval * zv, const unsigned int client_api_capabilities,无符号整数 * save_client_api_capabilities TSRMLS_DC);
^
make: *** [php_mysqlnd_ms.lo] 错误 1
错误:“制作”失败
【问题讨论】:
-
您是否有理由不通过系统包管理器安装它?
-
@Gerald Schneider,你是说胸肌吗?我试过pecl安装,还是报同样的错误。
-
不,我的意思是 apt、yum 或您的发行版使用的任何软件包系统。
-
@Gerald Schneider,我的操作系统是 centos 7,但我认为我无法通过 yum 安装 mysqlnd_ms。 mysqlnd_ms 是一个 pecl 包。 install mysqlnd_ms
-
您找到解决方案了吗?我有几乎相同的配置完全相同的错误
标签: php mysql load-balancing mysqlnd