您正在查看: 2017年4月

Magick++-config: command not found

If you see people suggest installing "libmagick9-dev", that's an apt package that you'd install with:

$ sudo apt-get install libmagickwand-dev imagemagick
or on centos:

$ yum install ImageMagick-devel
On Mac OS, you can use Homebrew:

$ brew install imagemagick

linux下的ImageMagick安装方法

1、下载ImageMagick和JMagick的源文件(http://downloads.jmagick.org/6.4.0/):ImageMagick-6.4.0.-0tar.gz 和 jmagick-6.4.0-src.tar.gz。

2、解压并安装ImageMagick:
# tar xzvf ImageMagick-6.4.0-0.tar.gz
# cd ImageMagick-6.4.0
# ./configure --enable-shared --without-perl
# make
# make install
# make check
安装完成后,运行convert -version命令检测,应该会出现:
Version: ImageMagick 6.4.0 08/31/10 Q16 http://www.imagemagick.org

Copyright: Copyright (C) 1999-2008 ImageMagick Studio LLC
convert默认安装到了/usr/local/bin下面,上面的命令可能提示找不到convert命令。那么可以在/usr/bin下面创建一个到/usr/local/bin/convert的链接:
# cd /usr/bin
# ln -s /usr/local/bin/convert convert
# convet -version

3. 修改配置文件:
在/etc/profile中增加:
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

在/etc/ld.so.conf中增加:/usr/local/lib

4. 在安装JMagick之前先配置环境变量,尤其是JAVA_HOME,否则编译时会出现:JMagick configure: error: 'Unable to locate Java directories'的错误。
# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0x86_64
# export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
# export JAVA_BIN=$JAVA_HOME/bin
# export JRE_HOME=$JAVA_HOME/jre
# export PATH=$PATH:$JAVA_BIN
# export JAVA_HOME CLASSPATH PATH

5. 安装JMagick。
# tar xzvf jmagick-6.4.0-src.tar.gz
解压到了文件夹6.4.0中,为了便于区分,重命名该文件夹:
# mv 6.4.0 jmagick-6.4.0
# cd jmagick-6.4.0
# ./configure
# make all
# make install
将生成的libJMagick-6.4.0.so复制到jre中的lib/amd64(amd64可能在不同的硬件架构会有不同的名字,如i386)文件夹中,同时重命名为libJMagick.so。
# cd /usr/local/lib
# cp libJMagick-6.4.0.so $JRE_HOME/lib/amd64
# mv libJMagick-6.4.0.so libJMagick.so
将jmagick-6.4.0.jar复制到$JRE_HOME/lib/ext文件夹下,并重命名为jmagick.jar
# cp jmagick-6.4.0/lib/jmagick-6.4.0.jar $JRE_HOME/lib/ext/jmagick.jar

至此就配置完毕了。

6. 使用yum命令也可以安装ImageMagick,不过版本是6.2.8。因为不太确定是否可以和6.4.0的so以及jar兼容,就将它卸载了,然后按照上面的步骤重新安装6.4.0。

检查系统有无安装ImageMagick

shell> rpm -qa | grep ImageMagick

没有就开始安装ImageMagick

shell> rpm -Uvh ImageMagick-6.3.4-10.i386.rpm

或者
shell> yum install ImageMagick

后续
今天换了一台服务器安,在安装ImageMagick时,出现了新的问题:
./magick/xwindow-private.h:27:21: error: X11/Xos.h: No such file or directory
解决方法:
查找提供Xos.h文件的包
# yum provides */Xos.h
会得到一个软件包的列表:
 xorg-x11-proto-devel-7.1-13.el5.i386 : X.Org X11 Protocol headers

Repo : base
Matched from:
Filename : /usr/include/X11/Xos.h

安装xorg-x11-proto-devel-7.1-13.el5.i386即可

yum install xorg-x11-proto-devel

yum install libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel
./configure --prefix=/usr/local/ImageMagick-6.4.0 --without-bzlib --with-jpeg=yes --with-jp2=yes --with-png=yes --without-x

nginx配置反向代理

#负责压缩数据流
gzip              on;  
gzip_min_length   1000;  
gzip_types        text/plain text/css application/x-javascript;

#设定负载均衡的服务器列表
#weigth参数表示权值,权值越高被分配到的几率越大
upstream hello{
    server 192.168.142.43:8080 weight=1;
    server 192.168.142.45:8080 weight=1;            
}
   
server {
    #侦听的80端口
    listen       80;
    server_name  localhost;
    #设定查看nginx状态的地址
    location /nginxstatus{
         stub_status on;
         access_log on;
         auth_basic "nginxstatus";
         auth_basic_user_file htpasswd;
    }
    #匹配以jsp结尾的,Tomcat的网页文件是以jsp结尾
    location / {
        index index.jsp;
        proxy_pass   http://hello;    #在这里设置一个代理,和upstream的名字一样
        #以下是一些反向代理的配置可删除
        proxy_redirect             off; 
        #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        proxy_set_header           Host $host; 
        proxy_set_header           X-Real-IP $remote_addr; 
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for; 
        client_max_body_size       10m; #允许客户端请求的最大单文件字节数
        client_body_buffer_size    128k; #缓冲区代理缓冲用户端请求的最大字节数
        proxy_connect_timeout      300; #nginx跟后端服务器连接超时时间(代理连接超时)
        proxy_send_timeout         300; #后端服务器数据回传时间(代理发送超时)
        proxy_read_timeout         300; #连接成功后,后端服务器响应时间(代理接收超时)
        proxy_buffer_size          4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
        proxy_buffers              4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
        proxy_busy_buffers_size    64k; #高负荷下缓冲大小(proxy_buffers*2)
        proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
    }
}

nginx 做代理服务器访问另外一台远程服务器

upstream  server1{

server       10.18.203.16  //需要访问的域名。

server        10.18.203.17  //需要访问的域名。
server        10.18.203.18  //需要访问的域名。
}


  server{
                listen 80;
               listen [::]:80 ipv6only=on;
                server_name www.siddim.com;
                charset utf-8;
                #rewrite ^(.*)  http://siddim.com$1 permanent;

                location / { 
                        proxy_pass         http://server1;
                        proxy_set_header   Host             $host;
                        proxy_set_header   X-Real-IP        $remote_addr;
                        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}
}

Nginx不同域名反向代理到另一台服务器 proxy_pass和$host

假设对本机80端口的访问为一台服务器,对本机8000端口的访问为另一台服务器,下面这样写一个nginx的反向代理配置,就可以实现所有请求都转移

server {
listen 0.0.0.0:80;
server_name $host;
location / {
proxy_pass http://10.16.0.1:8000;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}

这是模拟的所有请求无论域名如何,都转移到另一台服务器的情况,服务器的地址只要相应的修改proxy_pass这项配置就可以了。