免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5101 | 回复: 8
打印 上一主题 下一主题

[FastDFS] 编译php_client出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-11 09:53 |只看该作者 |倒序浏览
系统环境
CentOS release 6.5 (Final)
PHP 5.3.8 (cli)
nginx version: nginx/1.5.13
FastDFS_v4.06
fastdfs-nginx-module_v1.15

1、nginx+php安装成功

2、fastdfs安装成功
     /usr/local/fastdfs/bin/fdfs_test /usr/local/fastdfs/conf/client.conf  upload ./test.txt
    文件上传成功

3、fastdfs-nginx-module安装成功
     通过http成功访问步骤2上传的文件

4、编译php_client

[root@test php_client]# cd FastDFS/php_client/
[root@test php_client]# phpize
[root@test php_client]# ./configure --with-php-config=/usr/local/php/bin/php-config

上面命令执行正常

[root@test php_client]# make

/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:6464: 错误:‘true’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c: 在函数‘load_config_files’中:
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7201: 错误:‘g_fdfs_base_path’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7211: 警告:隐式声明函数‘chopPath’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7214: 警告:隐式声明函数‘fileExists’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7220: 警告:隐式声明函数‘isDir’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7230: 错误:‘g_fdfs_connect_timeout’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7233: 错误:‘DEFAULT_CONNECT_TIMEOUT’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7245: 错误:‘g_fdfs_network_timeout’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7248: 错误:‘DEFAULT_NETWORK_TIMEOUT’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7260: 警告:隐式声明函数‘set_log_level’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7270: 警告:隐式声明函数‘log_set_filename’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7284: 警告:隐式声明函数‘buffer_strcpy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7284: 错误:‘g_anti_steal_secret_key’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7328: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7332: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7332: 错误:‘TrackerServerGroup’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7332: 错误:expected expression before ‘)’ token
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7334: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7343: 警告:隐式声明函数‘fdfs_load_tracker_group’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7343: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7367: 错误:‘g_connection_pool_max_idle_time’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7384: 错误:‘g_use_connection_pool’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7384: 错误:‘true’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7385: 警告:隐式声明函数‘conn_pool_init’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7385: 错误:‘g_connection_pool’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7396: 警告:隐式声明函数‘logDebug’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c: 在函数‘zm_startup_fastdfs_client’中:
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7412: 警告:隐式声明函数‘log_init’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7429: 错误:‘FDFS_FILE_ID_SEPERATE_STR’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7433: 错误:‘STORAGE_SET_METADATA_FLAG_OVERWRITE_STR’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7437: 错误:‘STORAGE_SET_METADATA_FLAG_MERGE_STR’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7441: 错误:‘FDFS_STORAGE_STATUS_INIT’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7443: 错误:‘FDFS_STORAGE_STATUS_WAIT_SYNC’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7445: 错误:‘FDFS_STORAGE_STATUS_SYNCING’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7447: 错误:‘FDFS_STORAGE_STATUS_DELETED’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7449: 错误:‘FDFS_STORAGE_STATUS_OFFLINE’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7451: 错误:‘FDFS_STORAGE_STATUS_ONLINE’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7453: 错误:‘FDFS_STORAGE_STATUS_ACTIVE’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7455: 错误:‘FDFS_STORAGE_STATUS_NONE’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c: 在函数‘zm_shutdown_fastdfs_client’中:
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7472: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7474: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7480: 错误:‘g_use_connection_pool’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7482: 警告:隐式声明函数‘fdfs_connection_pool_destroy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7485: 警告:隐式声明函数‘fdfs_client_destroy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7486: 警告:隐式声明函数‘log_destroy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c: 在函数‘zm_info_fastdfs_client’中:
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7506: 错误:‘g_fdfs_version’未声明(在此函数内第一次使用)
make: *** [fastdfs_client.lo] 错误 1
[root@test php_client]#

大家有没有遇到这样的问题,希望happy_fish大神给指点迷津。


论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
2 [报告]
发表于 2014-04-11 10:56 |只看该作者
需要先安装FastDFS,然后再编译php扩展。

论坛徽章:
0
3 [报告]
发表于 2014-04-11 12:15 |只看该作者
FastDFS应该是安装了吧,已经成功upload文件,并且通过http访问了 回复 2# happy_fish100


   

论坛徽章:
0
4 [报告]
发表于 2014-04-14 11:19 |只看该作者
回复 2# happy_fish100

fastdfs 升级到 5.0.1
PHP 5.5.5

情况依旧
1、fastdfs安装正常,可以upload文件
2、nginx模板安装正常,可以通过http访问步骤1上传的文件
3、PHP拓展编译失败,错误信息跟之前一样

求大神给分析下原因


   

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
5 [报告]
发表于 2014-04-14 11:44 |只看该作者
./configure --with-php-config=/usr/local/php/bin/php-config
不不要带上后面的参数,直接执行: ./configure 试试?

论坛徽章:
0
6 [报告]
发表于 2014-04-14 16:26 |只看该作者
回复 5# happy_fish100

回复 5# happy_fish100

[root@test php_client]# make
/bin/sh /data/soft/fastdfs/FastDFS/php_client/libtool --mode=compile cc  -I. -I/data/soft/fastdfs/FastDFS/php_client -DPHP_ATOM_INC -I/data/soft/fastdfs/FastDFS/php_client/include -I/data/soft/fastdfs/FastDFS/php_client/main -I/data/soft/fastdfs/FastDFS/php_client -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -I/usr/local/include/fastcommon -I/usr/local/include/fastdfs  -DHAVE_CONFIG_H  -g -O2 -Wall   -c /data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c -o fastdfs_client.lo
cc -I. -I/data/soft/fastdfs/FastDFS/php_client -DPHP_ATOM_INC -I/data/soft/fastdfs/FastDFS/php_client/include -I/data/soft/fastdfs/FastDFS/php_client/main -I/data/soft/fastdfs/FastDFS/php_client -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -I/usr/local/include/fastcommon -I/usr/local/include/fastdfs -DHAVE_CONFIG_H -g -O2 -Wall -c /data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c  -fPIC -DPIC -o .libs/fastdfs_client.o
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:21:25: 错误:fdfs_client.h:没有那个文件或目录
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:22:20: 错误:logger.h:没有那个文件或目录
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:23:21: 错误:sockopt.h:没有那个文件或目录
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:24:25: 错误:fdfs_global.h:没有那个文件或目录
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:25:25: 错误:shared_func.h:没有那个文件或目录
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:26:27: 错误:client_global.h:没有那个文件或目录
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:28:30: 错误:fdfs_http_shared.h:没有那个文件或目录
.
.
.
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c: 在函数‘zm_shutdown_fastdfs_client’中:
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7472: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7474: 错误:‘FDFSConfigInfo’没有名为‘pTrackerGroup’的成员
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7480: 错误:‘g_use_connection_pool’未声明(在此函数内第一次使用)
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7482: 警告:隐式声明函数‘fdfs_connection_pool_destroy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7485: 警告:隐式声明函数‘fdfs_client_destroy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7486: 警告:隐式声明函数‘log_destroy’
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c: 在函数‘zm_info_fastdfs_client’中:
/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:7506: 错误:‘g_fdfs_version’未声明(在此函数内第一次使用)
make: *** [fastdfs_client.lo] 错误 1

错误依旧
第一个错误是:/data/soft/fastdfs/FastDFS/php_client/fastdfs_client.c:21:25: 错误:fdfs_client.h:没有那个文件或目录

发现有这个文件,是目录不对

[root@test local]# find / -name fdfs_client.h
/data/soft/fastdfs/FastDFS/client/fdfs_client.h




经过各种测试,终于发现出现这个问题的原因
安装fastdfs时候,我修改了 make.sh 脚本
1、把 TARGET_PREFIX=/usr/local 改为 TARGET_PREFIX=/usr/local/fastdfs
2、把此文件所有 /etc/fdfs 改为 /usr/local/fastdfs/conf

这时安装fastdfs正常,只是编译php_client时候会出现上面错误
不修改make.sh脚本,则编译php_client顺利通过


请大神帮忙分析一下什么原因

论坛徽章:
0
7 [报告]
发表于 2014-04-21 15:03 |只看该作者
回复 6# dapanglong

cd php_client
phpize
./configure
sed -i 's#-I/usr/local/include/fastcommon#-I/usr/local/services/fastdfs/include/fastcommon#' Makefile
sed -i 's#-I/usr/local/include/fastdfs#-I/usr/local/services/fastdfs/include/fastdfs#' Makefile
make
sudo make install

原因主要是由于修改make.sh安装路径
sed -i '/^TARGET_PREFIX/c\TARGET_PREFIX=/usr/local/services/fastdfs' make.sh
sed -i '/^TARGET_CONF_PATH/c\TARGET_CONF_PATH=/usr/local/services/fastdfs/etc' make.sh
所以FastDFS安装在哪,就需要修改对应位置

@happy_fish100 建议最好能支持安装的时候指定prefix,这样相对更向源码编译的习惯(反正我个人是觉得编译到默认路径的话就如同安装rpm/deb等包没啥区别,而且清除卸载麻烦)

参考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4055681

论坛徽章:
0
8 [报告]
发表于 2014-05-20 16:03 |只看该作者
回复 7# chinatree2012

多谢解答,虽然我已经解决了,嘿嘿


   

论坛徽章:
0
9 [报告]
发表于 2014-08-13 13:01 |只看该作者
在CentOS64位的6.5版本,安装FastDFS的时候,头文件是被安装到/usr/include目录下的,但php_client默认是从/usr/local/include找没找到,加两个软链上去也可以解决。

ln -s /usr/include/fastcommon/ /usr/local/include/fastcommon   
ln -s /usr/include/fastdfs/ /usr/local/include/fastdfs
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP