• Linux让Apache支持中文URL图片/文件名


    需要用到iconv_hook和mod_encoding

    Apache(32位):

    安装环境:CentOS 5.6 + Apache 2.2.15 (Apache2.4同样适用)

    安装结果:安装后支持“中文图片、文件名”链接直接打开

    以下为安装过程:

    1、下载安装包

    wget ftp://ftp.aconus.com/fc5/mod_encoding/mod_encoding-2.2.0-1.i386.tar.gz

    2、直接解压

    tar zxvf mod_encoding-2.2.0-1.i386.tar.gz

    看到2个rpm安装包,进行安装

    rpm -ivh iconv_hook-1.0.0-1.i386.rpm

    rpm -ivh mod_encoding-2.2.0-1.i386.rpm

    3、用 find / -name httpd.conf 找到apache配置文件httpd.conf,vi编辑加入以下内容

    LoadModule encoding_module modules/mod_encoding.so

    Header add MS-Author-Via "DAV"

    EncodingEngine on

    NormalizeUsername on

    SetServerEncoding GBK

    DefaultClientEncoding UTF-8 GBK GB2312

    AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312

    AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312

    AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312

    保存退出

    4、重启apache

    service httpd restart

    5、完成!

    注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,

    命令:

    cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules

    Apache(64位):

    ————————————————————-

    此方案用于解决Apache软件对中文网址、中文图片、文件名的支持问题。

    通过测试环境:64位CentOS5.5 + Apache2.2.15

    ————————————————————-

    下载 mod_encoding_64.tar.gz

    源码包由吴世昌整理,已经包含了apache2.2所需的补丁。

    ————————————————————-

    1、安装gcc组件

    yum install gcc -y

    2、下载压缩包

    wget http://d.nicwind.com/files/mod_encoding_64.tar.gz

    3、将压缩包解压,进行编译(一行是一个命令),有些路径不一定正确,可以用find命令找到自己服务器的实际路径

    tar zxvf mod_encoding_64.tar.gz

    cd mod_encoding_64

    patch -p0 < mod_encoding.c-apache2.2-20060520.patch

    cd lib

    chmod 755 configure

    ./configure --prefix=/usr

    make && make install

    ldconfig

    cd ../

    chmod 755 configure

    cp -p /usr/sbin/apxs /usr/bin

    ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/include

    make

    gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook

    cp mod_encoding.so /usr/lib/httpd/modules

    注:/usr/lib/httpd/modules为apache的modules目录,可以用

    find / -name modules

    找出这个目录的路径

    注意把/usr/lib/httpd/modules改成你的apache模块存放路径。

    4、完成以上操作后,再修改apache的配置文件(可以用find / -name httpd.conf,找出httpd.conf文件的路径),把下面的内容添加到apache的配置文件httpd.conf中。

    LoadModule encoding_module modules/mod_encoding.so

    EncodingEngine on

    NormalizeUsername on

    SetServerEncoding GBK

    DefaultClientEncoding UTF-8 GBK GB2312

    AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312

    AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312

    AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312

    保存,退出

    5、重启apache

    service httpd restart

    6、完成

    注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,

    命令:

    cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules

    本文部分内容转自:http://www.linuxdown.net/install/faq/20160331_how_linux_5159.html

  • 相关阅读:
    博客园cnblogs for win8 托管到GitHub开源
    html5 canvas 画图表
    回文数
    SpringBoot+logback实现按业务输出日志到不同的文件
    Class.forName() 与 ClassLoader.loadClass()的区别
    Easypoi实现单模板生成多页word文档
    普通Java项目中使用Sl4j+Log4j2打印日志
    SpringBoot集成JWT
    Java8_Lambda表达式
    SpringBoot自定义Condition注解
  • 原文地址:https://www.cnblogs.com/alanleung/p/6772037.html
Copyright © 2020-2023  润新知