我对pdo_mysql有一个非常恼人的问题。
配置:
我就是这样做的:
mysql包并安装mariadb (这里列出的所有内容:http://ftp.ddg.lth.se/mariadb//mariadb-10.1.14/yum/rhel6-amd64/rpms/ (oqgraph-engine.rpm除外))。我能够查询表,所以我假设安装很好。could not find driver,所以我尝试编译php pdo_mysql驱动程序;PHP的文件相同)放在/php-5.6.21上;/php-5.6.21/ext/pdo_mysql,运行phpize,然后是./configure,然后是make。这里我有一大堆错误:
根@user029x ~# cd / PHP -5.6.21/ext/pdo_mysql root@user029x pdo_mysql# phpize配置for: PHP版本: 20131106 Zend编号: 20131226编号: 220131226 root@user029x pdo_mysql# ./配置.root@user029x pdo_mysql# make /bin/sh /php-5.6.21/ext/pdo_mysql/libtool -模式=编译cc -I /usr/pdo_mysql#/include/php/ext -I -I。-I/php-5.6.21/ext/pdo_mysql -DPHP_ATOM_INC -I/php-5.6.21/ext/pdo_mysql/include -I/php-5.6.21/ext/pdo_mysql/main -I/php-5.6.21/ext/pdo_mysql -i/usr/include/usr/local/include/php/main-i/usr/local/include/-I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /php-5.6.21/ext/pdo_mysql.c -o pdo_mysql.lo -I/usr/local/include/php/ext -I -I。-I/php-5.6.21/ext/pdo_mysql -DPHP_ATOM_INC -I/php-5.6.21/ext/pdo_mysql/include -I/php-5.6.21/ext/pdo_mysql/main -I/php-5.6.21/ext/pdo_mysql -i/usr/include/usr/local/include/php/main-i/usr/local/include/-I/usr/local/include/php/ext -i/usr/local/include/php/ext/lib -DHAVE_CONFIG_H -g -O2 -c /php-5.6.21/ext/pdo_mysql.c -fPIC -DPIC -o .lib/pdo_mysql.o包含在/php-5.6.21/ext/pdo_mysql.c:32:/php-5.6.21/ext/pdo_mysql.c:32:/php-5.6.21/ext/pdo_mysql.c错误:ext/mysqlnd/mysqind.h:没有这样的文件或目录/php-5.6.21/ext/pdo_mysql/php_pdo_mysql_int.h:28:50:错误: ext/mysqlnd/mysqlnd_libmysql_compat.h:没有这样的文件或目录/php-5.6.21/ext/pdo_mysql/php_pdo_mysql_int.h:64:39:错误:ext/mysqlnd/mysqlnd_pdo_mysql_int.h:27:34.h:没有这样的文件或目录包含在/php-5.6.21/ ext/pdo_mysql.c:32: /php-5.6.21/ext/pdo_mysql/php_pdo_mysql_int.h:101:错误:预期说明符-限定符-列表在‘MYSQL’/php-5.6.21/ext/pdo_mysql/php_pdo_mysql_int.h:116:错误之前:预期说明符-限定符-列表在‘MYSQL_FIELD’/php之前-5.6.21/ext/pdo_mysql/php_pdo_mysql_int.h:121:错误:预期说明符-限定符-在‘MYSQL_RES’/php-5.6.21/ext/pdo_mysql/pdo_mysql.c:61:45: error: ext/mysqlnd/mysqlnd_反向_api.h:没有这样的文件或目录/php-5.6.21/ext/pdo_mysql.c:62:错误:预期‘=’,“,”,“;‘,’asm‘或’__attribute__‘之前的’*‘令牌/phg-5.6.21/ext/pdo_mysql.c:82:错误:预期’=‘,’;‘,‘’asm‘或’__attribute__‘之前的’pdo_mysql_reverse_api‘/php-5.6.21/ext/pdo_mysql/pdo_mysql.c:函数’zm_startup_pdo_mysql‘:/php-5.6.21/ext/pdo_mysql/pdo_mysql.c:132:错误:’pdo_mysql_reverse_api‘未声明(首次在此函数中使用)/php-5.6.21/ext/pdo_mysql/pdo_mysql.c。c:132: error:(每个未声明的标识符只报告一次/php-5.6.21/ext/pdo_mysql/pdo_mysql.c:132: error:对于出现在其中的每个函数。)制造:* pdo_mysql.lo错误1我找遍了所有我能找到的地方,并检查了类似的帖子在这里和服务器错误。我无法找到一个明确和决定性的答案来帮助我进一步调试。咨询过的解决方案建议使用yum install (我不能)或重新安装所有的东西(我真的不想再经历整个过程.)。
如果需要的话,这里列出了我使用上述方法安装的模块:
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
gd
hash
iconv
json
ldap
libxml
mbstring
oci8
pcre
PDO
PDO_OCI
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xdebug
xml
xmlreader
xmlwriter
[Zend Modules]
Xdebug你能帮我弄清楚吗?
编辑: ext和mysqlnd目录列出:


发布于 2016-06-09 16:40:28
您所做的,编译一个捆绑的扩展作为独立的,并不是完全支持。但你应该能解决这个问题。
对于在PHP中使用MySQL模块,有两个选项:要么使用libmysql,要么使用mysqlnd。有关背景信息,请参阅http://php.net/manual/en/mysql.php和http://php.net/mysqlnd。
默认情况下,构建系统假设您正在使用mysqlnd,但是您的系统目前没有安装myslqnd。你有两个选择:
1)转到ext/myslqnd,并在其中执行phpize、配置、make、make步骤。当然,phpize可能会抱怨,那么您必须首先将其中的config9.m4重命名为config.m4。一旦安装了mysqlnd,您就可以转到pdo_mysql并按您的尝试执行。现在,它应该能够正确地显示标题。
对于2)您需要libmysql,包括系统上安装的开发头。然后可以使用--with-pdo-mysql=/usr选项运行配置,该选项告诉您在何处查找libmysql。
一般来说,我建议使用mysqlnd,使用方法1)。
另外:当你走上这条路的时候,你必须确保从你的pdo_mysql中加载mysqlnd和php.ini,mysqlnd必须是第一个!所以有点像
extension=mysqlnd.so
extension=pdo_mysql.so在您的php.ini结束时可能会工作
发布于 2016-06-09 16:30:02
您必须修改配置文件。路径被错误地编码。
在.h文件中将'ext/mysqlnd/‘替换为’././ext/mysqlnd/‘。
https://stackoverflow.com/questions/37727365
复制相似问题