我正在尝试使用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插件。
sudo /home/jason/pear/bin/pecl install mysqlnd_uh-alpha此操作对配置部分运行正常,但在make中失败,出现以下错误。很明显,它是在抱怨找不到源文件,但它在哪里呢?我是否应该将一个参数传入pecl以指向我的php源代码副本所在的位置?在教程中,它告诉我用--启用-所以选项编译apache,这会造成混乱吗?
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谢谢你的提示!杰森
发布于 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:将在此过程中更新此答案
https://serverfault.com/questions/326127
复制相似问题