目录
安装GraphicsMagick-1.3.30.tar.gz
上图先
配置环境
支持软件
在安装环境之前我们先,安装编译环境,按顺序安装下面的编译语句,报错不要紧!
apt-get install libreadline-dev
apt-get install libpcre3 libpcre3-dev
apt-get install openssl
apt-get install libssl-dev
下载之后解压tengine-master的zip得到文件目录如上图
安装步骤:
将所有文件拖入ubuntu中
步骤很重要!!!
- 解压编译lua-5.3.1.tar.gz
- 解压编译LuaJIT-2.0.4.tar.gz
- 解压安装GraphicsMagick-1.3.30.tar.gz
- 进入tengine-master,编译安装
别急一步一步来安装!!!
lua-5.3.1.tar.gz安装步骤
tar -zxvf lua-5.3.1.tar.gz
cd lua-5.3.1
make linux
make install
如果有编译失败,先确定是否有安装上面的编译环境语句?
安装LuaJIT-2.0.4.tar.gz步骤
回退到文件夹外部,解压安装下一个
tar -zxvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make
make install
安装GraphicsMagick-1.3.30.tar.gz
安装前需安装该ps软件的环境支持,不然会有很多图片不支持
sudo apt-get install libjpeg8
sudo apt-get install libjpeg-dev
sudo apt-get install libpng12-0
sudo apt-get install libpng12-dev
sudo apt-get install giflib-tools
sudo apt-get install libfreetype6
一定要执行完上面的语句,才开始解压GM
tar -zxvf GraphicsMagick-1.3.30.tar.gz
cd GraphicsMagick-1.3.30
chmod +x ./configure
./configure --prefix=/usr/local/GraphicsMagick --enable-shared
make
make install
安装tengine-master
cd tengine-master
chmod +x ./configure
./configure --prefix=/usr/local/Tengine --dso-path=/usr/local/Tengine/modules --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_concat_module --with-http_lua_module --http-proxy-temp-path=/var/tmp/Tengine/proxy_temp --http-fastcgi-temp-path=/var/tmp/Tengine/fastcgi_temp --http-uwsgi-temp-path=/var/tmp/Tengine/uwsgi_temp --http-scgi-temp-path=/var/tmp/Tengine/cgi_temp --http-client-body-temp-path=/var/tmp/Tengine/client_body_temp --http-log-path=/var/log/Tengine/access.log --error-log-path=/var/log/Tengine/error.log
make
make install
bug补齐
安装完就已经可以了,但是会报一些bug,那么我们就先把这些bug解决了在启动
第一个bug:
执行
mkdir -p /usr/local/Tengine/lua
首先移动到方才复制到虚拟机中的 ImageResizer.lua 所在的文件夹 打开终端,获取root权限,执行
mv ImageResizer.lua /usr/local/Tengine/lua
这样就把该文件移到lua下了
然后给它设置权限:
chmod 777 /usr/local/Tengine/lua/ImageResizer.lua
第二个bug:
执行
whereis libluajit-5.1.so.2
如果出现下面的结果,说明可以继续下一步
制作软链,执行后没有提示信息,如果想看到效果可以到lib64文件夹下看看是否存在libluajit-5.1.so.2文件
ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
第三个bug
mkdir -p /var/tmp/Tengine/client_body_temp
到此,bug执行完毕!!!
测试Tengine
pkill -9 nginx
/usr/local/Tengine/sbin/nginx
然后获取ip就可以看到首页
能跑出来说明就没问题了,接下来配置nginx.conf的配置
nginx.conf配置
cd /usr/local/Tengine/conf
chmod a+rwx nginx.conf
执行完以后,就直接点开该nginx.conf直接全选,然后粘贴下面的配置,保存,还有。。。
#user nobody;
#剪切工具必须要root用户才有权限使用
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
# load modules compiled as Dynamic Shared Object (DSO)
#
#dso {
# load ngx_http_fastcgi_module.so;
# load ngx_http_rewrite_module.so;
#}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#这里我是拦截/pic即网络访问路径是 localhost/pic
location /pic {
#也可以使用alias,alias就不会将拦截路径自动添加进来。
#root比较鬼畜,它会将你上面配置的拦截自动加到路径内,即 localhost/demo/pic demo文件是我直接放在nginx下的详细路径是/usr/local/Tengine/demo/pic/
root demo/;
#我的首页放在/usr/local/Tengine/demo/pic/index.html,测试的图片与其同级!
index index.html;
expires 1h; # 缓存时间
add_header Cache-Control max-age=3600; # 缓存时间
access_log /var/log/Tengine/host_access.log;
}
#配置拦截图片后缀的请求,开始作用图片剪切工具
#如果 url 格式如:xxxx.gif_数字x数字.gif
location ~* ^(.+\.(jpg|jpeg|gif|png))_(\d+)x(\d+)\.(jpg|jpeg|gif|png)$ {
#这里必须设置,找不到要剪切文件的路径,如:图片所在路径是/usr/local/Tengine/demo/pic/1.jpg 必须要先指定根目录在哪,否则你在var/log/nginx/error文件里面看报错的路径来调了
root demo;
if (!-f $request_filename) { #如果文件不存在时才需要裁剪
add_header X-Powered-By 'Lua GraphicsMagick'; #此HTTP Header无实际意义,用于测试
add_header file-path $request_filename; #此 HTTP Header无实际意义,用于测试
lua_code_cache on; #在编写外部 Lua脚本时,设置为off Nginx不会缓存 Lua,方便调试
set $request_filepath /usr/local/Tengine/demo$1; #设置被剪切的图片文件地址(到图片的文件夹)
set $width $3; # 设置裁剪/缩放的宽度
set $height $4; # 设置裁剪/缩放的高度
set $ext $5; # 图片文件格式后缀
content_by_lua_file /usr/local/Tengine/lua/ImageResizer.lua; #加载外部 Lua 文件,就是上面配置的ImageResizer.lua,作用是执行图片剪切工具的脚本
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
然后继续执行:
cd /usr/local/Tengine
mkdir demo
cd demo
mkdir pic
chmod a+rwx pic
然后执行完毕,在pic文件夹
创建一个index.html 并且拖进一张图片以作测试
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>img</title>
</head>
<body>
<h1>SUCCESS!!!!!</h1>
</body>
</html>
然后重启Tengline
pkill -9 nginx
/usr/local/Tengine/sbin/nginx
在浏览器根据自己的ip输入
自己IP+/ipc/
http://192.168.1.5/pic/
因该能看到
输入
http://192.168.1.5/pic/1.jpg_100x100.jpg
就能看到缩略图了