首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译mysqlnd_uh插件

编译mysqlnd_uh插件
EN

Server Fault用户
提问于 2011-10-24 04:04:54
回答 1查看 1K关注 0票数 1

我正在尝试使用mysqlnd_uh扩展来实现类似于下面文章所描述的mysql记录器。

http://blog.mayflower.de/archives/578-MySQLnd-Plugins-Writing-a-MySQL-Query-Logger-in-PHP.html

它应该如何工作,它将拦截进入mysql和mysqli函数中的调用到代理类中,在这个类中,我们可以拦截出于日志记录目的的调用。当然,这个客户端库需要PHP 5.3中没有安装的Mysql本机驱动程序,因此我遵循了本教程中的步骤,以检查Apache和PHP的源代码,并将它们编译到我的VM上,运行最新版本的Ubuntu,并将mysqli和mysql的编译选项设置为mysqlnd。

http://www.web-tech-india.com/articles/php/compiling_php_阿帕奇/

这似乎很好,因为我可以访问仅从mysqlnd内部支持的mysqli_fetch_all函数。

现在,我想要做的是使用pecl安装mysqlnd_uh插件。

代码语言:javascript
复制
sudo /home/jason/pear/bin/pecl install mysqlnd_uh-alpha

此操作对配置部分运行正常,但在make中失败,出现以下错误。很明显,它是在抱怨找不到源文件,但它在哪里呢?我是否应该将一个参数传入pecl以指向我的php源代码副本所在的位置?在教程中,它告诉我用--启用-所以选项编译apache,这会造成混乱吗?

代码语言:javascript
复制
running: make
/bin/bash /tmp/pear/install/pear-build-roothNJj2h/mysqlnd_uh-0.1.0a1/libtool --mode=compile cc  -I. -I/tmp/pear/install/mysqlnd_uh -DPHP_ATOM_INC -I/tmp/pear/install/pear-build-roothNJj2h/mysqlnd_uh-0.1.0a1/include -I/tmp/pear/install/pear-build-roothNJj2h/mysqlnd_uh-0.1.0a1/main -I/tmp/pear/install/mysqlnd_uh -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/install/mysqlnd_uh/php_mysqlnd_uh.c -o php_mysqlnd_uh.lo
libtool: compile:  cc -I. -I/tmp/pear/install/mysqlnd_uh -DPHP_ATOM_INC -I/tmp/pear/install/pear-build-roothNJj2h/mysqlnd_uh-0.1.0a1/include -I/tmp/pear/install/pear-build-roothNJj2h/mysqlnd_uh-0.1.0a1/main -I/tmp/pear/install/mysqlnd_uh -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/install/mysqlnd_uh/php_mysqlnd_uh.c  -fPIC -DPIC -o .libs/php_mysqlnd_uh.o
In file included from /tmp/pear/install/mysqlnd_uh/php_mysqlnd_uh.c:23:0:
/tmp/pear/install/mysqlnd_uh/mysqlnd_uh.h:46:33: fatal error: ext/mysqlnd/mysqlnd.h: No such file or directory
compilation terminated.
make: *** [php_mysqlnd_uh.lo] Error 1
ERROR: `make' failed

谢谢你的提示!杰森

EN

回答 1

Server Fault用户

发布于 2011-10-27 16:52:23

编辑:尝试安装标题的# sudo apt-get install php5-dev,然后再尝试安装扩展。如果成功的话,太好了!

但如果没有,我们就得一步一步地走。首先,编译PHP+Apache的链接是PHP4.3,PHP5.3的情况也不一样,此链接应该适合PHP5.3编译。试着按照这些指示去做

顺便问一下,# sudo updatedb; locate 'mysqlnd.h'返回什么?我猜想PHP源代码(您可能已经使用这些链接下载)没有放在适当的位置(或者头文件不存在),因此出现了错误。

PS:将在此过程中更新此答案

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

https://serverfault.com/questions/326127

复制
相关文章

相似问题

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