本来预感游戏里公会要出大事,前前后后做了很多工作、想了各种结果、做了各种打算、想了各种可能,折腾了一个多星期,结果却是风平冷静,靠的……真他妈的没劲
一个周末把《落地请开手机》看完了,喜欢苏文月,喜欢孙红雷!
本来预感游戏里公会要出大事,前前后后做了很多工作、想了各种结果、做了各种打算、想了各种可能,折腾了一个多星期,结果却是风平冷静,靠的……真他妈的没劲
一个周末把《落地请开手机》看完了,喜欢苏文月,喜欢孙红雷!
今天在用pecl为PHP5编译安装sqlite模块的时候,遇到了下面这个错误而编译不过去
sqlite.c:56: error: ‘BYREF_NONE’ undeclared here (not in a function)
GOOGLE一番,原来这是个从2006年7月就存在的BUG。虽然官方在pecl.php.net的关于此bug的详情页里说已经修复了,但不止一个人在1年甚至2年后依然表示错误依旧~!看来老外干活也会偷懒啊,出了sqlite3的模块,老的sqlite模块就不维护了,哎~~
在那个页面里,也有人提供了自己修复此BUG的方法:
1,来到PHP安装目录内的bin目录下
cd /usr/local/php-5.2.3/bin
2,下载这个模块的源码
pecl download sqlite
3,解压并开始编译
$ tar zxvf SQLite-1.0.3.tgz
$ cd SQLite-1.0.3
$ ../phpize
$ ./configure –with-php-config=/usr/local/php-5.2.3/bin/php-config
$ make
4,在make的过程如报告以上错误则编辑sqlite.c文件,将下面这行注释掉
/* static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; */
然后将下面这三行
function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, arg3_force_ref)
PHP_FE(sqlite_popen, arg3_force_ref)
改为:
function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, third_arg_force_ref)
PHP_FE(sqlite_popen, third_arg_force_ref)
5,重新编译
$ make
$ make install
将编译生成的sqlite.so文件,复制到extension_dir指定的目录中,编辑php.ini文件,加入如下一行
extension=sqlite.so
重启web服务后即可