FastDFS+GraphicsMagick+Lua實現生成縮略圖

前置條件

需要先完成對FastDFS的搭建以及對fastdfs-nginx-module安裝
參考鏈接: Linux下FastDFS環境搭建.

環境介紹

服務器: 阿里雲Centos7.4

FastDFS版本: fastdfs-5.11

Lua: lua-5.3.1

GraphicsMagick: GraphicsMagick-1.3.18

所需安裝包:
鏈接: https://pan.baidu.com/s/1jZTFuNP6jB–QZrNrGAOvQ 提取碼: ezr3

搭建過程

1.上傳安裝包

把下載好的安裝包上傳至/usr/local目錄下

2.安裝相關依賴

安裝需要的基礎依賴

yum install -y gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel gd-devel
yum install -y libpng libjpeg libpng-devel libjpeg-devel ghostscript libtiff libtiff-devel freetype freetype-devel readline-devel ncurses-devel

安裝LuaJIT

cd /usr/local/src/LuaJIT-2.0.4
make && make install
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

安裝lua

cd /usr/local/src/lua-5.3.1
make linux && make install

安裝GraphicsMagick

cd /usr/local/src/GraphicsMagick-1.3.18
./configure --prefix=/usr/local/GraphicsMagick-1.3.18 --enable-shared
make && make install
ln -s /usr/local/GraphicsMagick-1.3.18 /usr/local/GraphicsMagick

安裝nginx插件(先停止nginx)

./configure --prefix=/usr/local/nginx  --add-module=/root/fastdfs/fastdfs-nginx-module-1.20/src --add-module=/usr/local/src/lua-nginx-module-0.10.9rc7 --add-module=/usr/local/src/ngx_devel_kit

#編譯
make && make install

#查看模塊是否安裝上
/usr/local/nginx/sbin/nginx -V

在這裏插入圖片描述
從github上下載lua腳本nginx-lua-fastdfs-GraphicsMagick

git clone https://github.com/hpxl/nginx-lua-fastdfs-GraphicsMagick.git
cd nginx-lua-fastdfs-GraphicsMagick/lua
cp ./* /usr/local/nginx/conf/lua
3.修改相關信息

修改腳本中的tracker ip信息和gm的命令變量

vim /usr/local/nginx/conf/lua/fastdfs.lua
#在46行
fdfs:set_tracker("你的ip", 22122)
#在72行
local command = "/usr/local/GraphicsMagick/bin/gm convert " .. originalFile  .. " -thumbnail " .. area .. " -background gray -gravity center -extent " .. area .. " " .. ngx.var.file;

修改nginx配置文件nginx.conf

 server {
        listen 8886;
        server_name ip;
 
        # LUA
        location /hello {
                default_type 'text/plain';
                content_by_lua 'ngx.say("hello,lua")';
                }
 
        # fastdfs 縮略圖生成
        location /group1/M00 {
                alias /home/fastdfs/data;
 
                set $image_root "/home/fastdfs/data";
                if ($uri ~ "/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/(.*)") {
                  set $image_dir "$image_root/$3/$4/";
                  set $image_name "$5";
                  set $file "$image_dir$image_name";
                }
 
                if (!-f $file) {
        #         # 關閉lua代碼緩存,方便調試lua腳本
                  #lua_code_cache off;
                  content_by_lua_file "/usr/local/nginx/conf/lua/fastdfs.lua";
                }
                ngx_fastdfs_module;
        }
 
    }

修改圖片目錄賦予網站用戶寫的權限

chmod -R 777 /home/fastdfs/data/
4.效果測試

http://ip:8886/group1/M00/00/00/rBB66179QKiAfrqFAAF6QUov5G4694.jpg

在這裏插入圖片描述

http://ip:8886/group1/M00/00/00/rBB66179QKiAfrqFAAF6QUov5G4694.jpg_40x40.jpg

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章