首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RHEL 6上编译`mysql_pdo`驱动程序(没有互联网接入,没有‘’)

在RHEL 6上编译`mysql_pdo`驱动程序(没有互联网接入,没有‘’)
EN

Stack Overflow用户
提问于 2016-06-09 13:27:45
回答 2查看 963关注 0票数 1

我对pdo_mysql有一个非常恼人的问题。

配置:

  • RedHat EnterpriseLinux6 x64 (未连接到internet)
  • PHP 5.6.21
  • MariaDB 10.1.14

我就是这样做的:

  • 卸载默认的mysql包并安装mariadb (这里列出的所有内容:http://ftp.ddg.lth.se/mariadb//mariadb-10.1.14/yum/rhel6-amd64/rpms/ (oqgraph-engine.rpm除外))。我能够查询表,所以我假设安装很好。
  • 运行web应用程序时,我发现了一个错误: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 (我不能)或重新安装所有的东西(我真的不想再经历整个过程.)。

如果需要的话,这里列出了我使用上述方法安装的模块:

代码语言:javascript
复制
[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

你能帮我弄清楚吗?

编辑: extmysqlnd目录列出:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-09 16:40:28

您所做的,编译一个捆绑的扩展作为独立的,并不是完全支持。但你应该能解决这个问题。

对于在PHP中使用MySQL模块,有两个选项:要么使用libmysql,要么使用mysqlnd。有关背景信息,请参阅http://php.net/manual/en/mysql.phphttp://php.net/mysqlnd

默认情况下,构建系统假设您正在使用mysqlnd,但是您的系统目前没有安装myslqnd。你有两个选择:

  1. 首先安装mysqlnd,然后安装pdo_mysql
  2. 使用libmysql

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必须是第一个!所以有点像

代码语言:javascript
复制
extension=mysqlnd.so
extension=pdo_mysql.so

在您的php.ini结束时可能会工作

票数 1
EN

Stack Overflow用户

发布于 2016-06-09 16:30:02

您必须修改配置文件。路径被错误地编码。

在.h文件中将'ext/mysqlnd/‘替换为’././ext/mysqlnd/‘。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37727365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档