测试MogileFS的PHP模块上传遇到的

在nginx/php-cgi上试试最简单的mogileFS的php模块上传操作,总是报502的错误,查看php-fpm的日志发现提示undefined symbol: ne_set_connect_timeout错误,ne_set_connect_timeout未定义。
查看php的mogilefs扩展到源码mogilefs.c源码发现。该扩展引用了:
#include <ne_socket.h>
#include <ne_session.h>
#include <ne_utils.h>
#include <ne_auth.h>
#include <ne_basic.h>
这几个是neon的开发库,执行命令neon-config –cflags查看开发库文件的所在目录。搜寻这几个文件都没有发现有定义ne_set_connect_timeout。因此可以确定为neon的版本库过低,Centos5.3默认安装的是neon-0.25.5。
到neon下载最新的 http://www.webdav.org/neon/neon-0.29.6.tar.gz
编译安装后,可以看见ne_set_connect_timeout定义在ne_session.h,但是syslog仍然报错如下
May 7 10:20:31 localhost php-cgi: PHP Warning: PHP Startup: Unable to load dynamic library ‘/data/app/php-cgi/lib/php/extensions/no-debug-non-zts-20060613/mogilefs.so’ – libneon.so.25: cannot open shared object file: No such file or directory in Unknown on line 0
find了一下的确没有libneon.so文件,看了一下neon的configure参数,默认是不编译共享库的,须带这个参数编译so文件
# ./configure –enable-shared
# make & make install
然后重新编译mogilefs,问题消失,可以上传了。
测试脚本:

<?php
if($_POST["btn1"]=="upload"){
        $client = new MogileFs();
        $client->connect('27.17.28.133', 7777, 'test1');
        $client->put($_FILES["upfile"]["tmp_name"], $_FILES["upfile"]['name'], "class1");
        var_dump($_FILES);
}
?>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇