libfastcommon
mkdir -p /usr/lib64
mkdir -p /usr/lib
mkdir -p /usr/include/fastcommon
install -m 755 libfastcommon.so /usr/lib64
install -m 644 common_define.h hash.h chain.h logger.h base64.h shared_func.h pthread_func.h ini_file_reader.h _os_define.h sockopt.h sched_thread.h http_func.h md5.h local_ip_func.h avl_tree.h ioevent.h ioevent_loop.h fast_task_queue.h fast_timer.h process_ctrl.h fast_mblock.h connection_pool.h fast_mpool.h fast_allocator.h fast_buffer.h skiplist.h multi_skiplist.h flat_skiplist.h skiplist_common.h system_info.h fast_blocked_queue.h php7_ext_wrapper.h id_generator.h char_converter.h char_convert_loader.h common_blocked_queue.h multi_socket_client.h skiplist_set.h fc_list.h
/usr/include/fastcommon
if [ ! -e /usr/lib/libfastcommon.so ]; then ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so; fi
fastdfs
mkdir -p /usr/bin
mkdir -p /etc/fdfs
cp -f fdfs_trackerd /usr/bin
if [ ! -f /etc/fdfs/tracker.conf.sample ]; then cp -f ../conf/tracker.conf /etc/fdfs/tracker.conf.sample; fi
if [ ! -f /etc/fdfs/storage_ids.conf.sample ]; then cp -f ../conf/storage_ids.conf /etc/fdfs/storage_ids.conf.sample; fi
mkdir -p /usr/bin
mkdir -p /etc/fdfs
cp -f fdfs_storaged /usr/bin
if [ ! -f /etc/fdfs/storage.conf.sample ]; then cp -f ../conf/storage.conf /etc/fdfs/storage.conf.sample; fi
mkdir -p /usr/bin
mkdir -p /etc/fdfs
mkdir -p /usr/lib64
mkdir -p /usr/lib
cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_file fdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1 fdfs_append_file fdfs_upload_appender /usr/bin
if [ 0 -eq 1 ]; then cp -f libfdfsclient.a /usr/lib64; cp -f libfdfsclient.a /usr/lib/;fi
if [ 1 -eq 1 ]; then cp -f libfdfsclient.so /usr/lib64; cp -f libfdfsclient.so /usr/lib/;fi
mkdir -p /usr/include/fastdfs
cp -f ../common/fdfs_define.h ../common/fdfs_global.h ../common/mime_file_parser.h ../common/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tracker/fdfs_shared_func.h ../storage/trunk_mgr/trunk_shared.h tracker_client.h storage_client.h storage_client1.h client_func.h client_global.h fdfs_client.h /usr/include/fastdfs
if [ ! -f /etc/fdfs/client.conf.sample ]; then cp -f ../conf/client.conf /etc/fdfs/client.conf.sample; fi
echo $PATH
https://askubuntu.com/questions/551990/what-does-path-mean
环境变量;
可执行文件;
[root@silicon fastdfs-5.11]# echo $PATH
/usr/local/java/jdk1.7.0_45/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
mkdir -p
https://stackoverflow.com/questions/22737933/mkdirs-p-option
支持一次创建多个目录
$mkdir hello/goodbye
mkdir:cannot create directory 'hello/goodbye': No such file or directory
$mkdir -p hello/goodbye
-p created both, hello and goodbye
This means that the command will create all the directories necessaries to fulfill your request, not returning any error in case that directory exists.
配置和启动
https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/FastDFS-Install-And-Settings.md
tracker
启动 tracker 服务:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启 tracker 服务:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
查看是否有 tracker 进程:ps aux | grep tracker
查看端口监听:
[root@silicon fdfs]# lsof -i:22122
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
fdfs_trac 6648 root 5u IPv4 75285123 0t0 TCP *:22122 (LISTEN)
storage
1、指定tracker服务器的ip如果是在一台服务器上,那就用这个服务器的公网ip地址, 不要用localhost,127.0.0.1这地址;否则无法启动;
指定 tracker 服务器的 IP 和端口
tracker_server=192.168.1.114:22122
client测试
https://blog.csdn.net/yelllowcong/article/details/78300037
[root@silicon ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/one_3.jpg
group1/M00/00/00/LU0BXlu1o1yAVU6tAACWpGLXVTg320.jpg
nginx install&config
https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/FastDFS-Install-And-Settings.md
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/var/local/nginx/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/var/temp/nginx/client"
nginx http proxy temporary files: "/var/temp/nginx/proxy"
nginx http fastcgi temporary files: "/var/temp/nginx/fastcgi"
nginx http uwsgi temporary files: "/var/temp/nginx/uwsgi"
nginx http scgi temporary files: "/var/temp/nginx/scgi"
1、安装bug01
https://github.com/happyfish100/fastdfs-nginx-module/issues/32
In file included from /data/tools/fastdfs-nginx-module-1.20/src/common.c:26:0,
from /data/tools/fastdfs-nginx-module-1.20/src/ngx_http_fastdfs_module.c:6:
/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory
#include "common_define.h"
^
compilation terminated.
make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/data/tools/nginx-1.15.0'
make: *** [build] Error 2
fastdfs-nginx-module fatal error: common_define.h: No such file or directory
解决办法
编辑 fastdfs-nginx-module-1.20/src/config 文件
vim fastdfs-nginx-module-1.20/src/config
ngx_addon_name=ngx_http_fastdfs_module
if test -n "${ngx_module_link}"; then
ngx_module_type=HTTP
ngx_module_name=$ngx_addon_name
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
ngx_module_libs="-lfastcommon -lfdfsclient"
ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"
ngx_module_deps=
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='2561024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
. auto/module
else
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='2561024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
fi
改成以上内容貌似就可以通过
改变的文件内容
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
2、make install
[root@silicon nginx-1.14.0]# make install
make -f objs/Makefile install
make[1]: Entering directory `/root/nginx/nginx-1.14.0'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
|| mv '/usr/local/nginx/sbin/nginx' \
'/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \
|| mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' \
|| cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' \
|| cp conf/fastcgi_params '/usr/local/nginx/conf'
cp conf/fastcgi_params \
'/usr/local/nginx/conf/fastcgi_params.default'
test -f '/usr/local/nginx/conf/fastcgi.conf' \
|| cp conf/fastcgi.conf '/usr/local/nginx/conf'
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default'
test -f '/usr/local/nginx/conf/uwsgi_params' \
|| cp conf/uwsgi_params '/usr/local/nginx/conf'
cp conf/uwsgi_params \
'/usr/local/nginx/conf/uwsgi_params.default'
test -f '/usr/local/nginx/conf/scgi_params' \
|| cp conf/scgi_params '/usr/local/nginx/conf'
cp conf/scgi_params \
'/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
|| cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/var/local/nginx' \
|| mkdir -p '/var/local/nginx'
test -d '/var/log/nginx' \
|| mkdir -p '/var/log/nginx'
test -d '/usr/local/nginx/html' \
|| cp -R html '/usr/local/nginx'
test -d '/var/log/nginx' \
|| mkdir -p '/var/log/nginx'
make[1]: Leaving directory `/root/nginx/nginx-1.14.0'
[root@silicon nginx-1.14.0]#
nginx安装成功后,也就是执行 make install 后, 其可执行代码都拷贝到了 /usr/local/nginx 下, 所以配置文件也要找到 /usr/local/nginx 下的配置文件;
fastdfs 上传成功,下载400错误解决办法
nginx日志报错ERROR - file: ../common/fdfs_global.c, line: 52, the format of filename
解决办法:
vi /etc/fdfs/mod_fastdfs.conf
将
url_have_group_name=false
改为
url_have_group_name=true
源地址 http://my.oschina.net/ydsakyclguozi/blog/403327
测试上传图片
[root@silicon ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf one_3.jpg
group1/M00/00/00/LU0BXlu1zrqAKpy-AACWpGLXVTg887.jpg
[root@silicon ~]#
开启nginx服务器
输出ngx_http_fastdfs_set pid=16831
表示开启成功了。否则未成功;
[root@silicon sbin]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=16831
查看ngnix监听端口9999
[root@silicon sbin]# lsof -i:9999
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 16832 root 6u IPv4 75385491 0t0 TCP *:distinct (LISTEN)
nginx 16833 root 6u IPv4 75385491 0t0 TCP *:distinct (LISTEN)
[root@silicon sbin]# /usr/local/nginx
开启&关闭nginx服务器
- 启动 Nginx
- 停掉防火墙:
service iptables stop
- 启动:
/usr/local/nginx/sbin/nginx
,启动完成 shell 是不会有输出的 - 访问:
192.168.1.114
,如果能看到:Welcome to nginx!
,即可表示安装成功 - 检查 时候有 Nginx 进程:
ps aux | grep nginx
,正常是显示 3 个结果出来 - 刷新 Nginx 配置后重启:
/usr/local/nginx/sbin/nginx -s reload
- 停止 Nginx:
/usr/local/nginx/sbin/nginx -s stop
- 如果访问不了,或是出现其他信息看下错误立即:
vim /var/log/nginx/error.log
- 停掉防火墙:
- 启动 Nginx
用浏览器测试下载图片
http://ip:9999/group1/M00/00/00/LU0BXlu1zrqAKpy-AACWpGLXVTg887.jpg
tacker&storage&nginx的端口都需要开放
tracker port 22122
storage port 23000
nginx port 9999
参考博客
https://blog.csdn.net/wlwlwlwl015/article/details/52619851
https://github.com/judasn/Linux-Tutorial/blob/master/markdown-file/FastDFS-Install-And-Settings.md