WDlinux官方论坛's Archiver

vzandy 发表于 2013-3-15 15:34

Apache、NGINX支持中文URL图片、文件名的终极解决方案

[i=s] 本帖最后由 vzandy 于 2013-3-15 15:40 编辑 [/i]

[font=Lucida Sans Unicode][b][color=red]Apache(32位):
[/color][/b]安装环境:CentOS 5.6 + Apache 2.2.15[/font]
安装结果:安装后支持“中文图片、文件名”链接直接打开
以下为安装过程:
1、下载安装包
[code]wget ftp://ftp.aconus.com/fc5/mod_encoding/mod_encoding-2.2.0-1.i386.tar.gz[/code]
2、直接解压
[code]tar zxvf mod_encoding-2.2.0-1.i386.tar.gz[/code]

     看到2个rpm安装包,进行安装
[code] rpm -ivh iconv_hook-1.0.0-1.i386.rpm
rpm -ivh mod_encoding-2.2.0-1.i386.rpm
[/code]

3、用 find / -name httpd.conf 找到apache配置文件httpd.conf,vi编辑加入以下内容
[code] 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
[/code]

保存退出
4、重启apache
[code]service httpd restart[/code]
5、完成!


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



[font=Lucida Sans Unicode][b][color=red]Apache(64位):
[/color][/b]————————————————————-[/font]
此方案用于解决Apache软件对中文网址、中文图片、文件名的支持问题。
通过测试环境:64位CentOS5.5 + Apache2.2.15
————————————————————-
下载 mod_encoding_64.tar.gz
源码包由吴世昌整理,已经包含了apache2.2所需的补丁。
2011.9.20由Hostloc.com的Captain修改补充。
————————————————————-
1、安装gcc组件


[code]yum install gcc -y[/code]


2、下载压缩包
[code]wget http://d.nicwind.com/files/mod_encoding_64.tar.gz[/code]


3、将压缩包解压,进行编译
[code]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[/code]

注:/usr/lib/httpd/modules为apache的modules目录,可以用
[code]find / -name modules[/code] 找出这个目录的路径
注意把/usr/lib/httpd/modules改成你的apache模块存放路径。
[p=30, 2, left]4、完成以上操作后,再修改apache的配置文件(可以用find / -name httpd.conf,找出httpd.conf文件的路径),把下面的内容添加到apache的配置文件httpd.conf中。[/p]
[code]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[/code]

[p=30, 2, left]保存,退出[/p][p=30, 2, left]5、重启apache[/p]
[code]service httpd restart[/code]
[p=30, 2, left]6、完成[/p][p=30, 2, left]注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,
命令:
[code]cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules[/code][/p][p=30, 2, left][b][color=red]Nginx:[/color][/b][/p][p=30, 2, left]一、确定你的Linux系统是UTF编码,Root登录SSH:[/p][p=30, 2, left][code] env|grep LANG
LANG=en_US.UTF-8
[/code][/p][p=30, 2, left]二、NGINX配置文件里默认编码设置为utf-8[/p][p=30, 2, left][code] server
{
listen 80;
server_name xxxx.com ;
index index.html index.htm index.php;
root /usr/local/nginx/html/inginx.com;
charset utf-8;
}
[/code][/p]
[p=30, 2, left]三、如果使用putty
windows –> translation –>UTF-8[/p][p=30, 2, left]mkdir 中文目录名
echo ‘中文目录名’ > 中文目录名/中国.html[/p][p=30, 2, left]四、如果是用securecrt 上传文件,请选择 回话–>外观–UTF-8
如果是FTP软件也将默认编码设置为TUF-8[/p][p=30, 2, left]五、如果上传的文件名出现乱码显示
执行[/p][p=30, 2, left][code] for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done[/code][/p][p=30, 2, left]完毕。[/p][b]以上都是在互联网收集整理。已经测试过完全没有问题, 上次我在论坛发过两次求助中文URL教程,得到的回复寥寥无几,管理员的回答也有点看不懂,就自己变摸索变找教程了[/b]

admin 发表于 2013-3-16 12:42

很好

heshiqi 发表于 2013-3-21 22:23

收藏了,呵呵

纯洁滴色魔 发表于 2013-3-25 17:28

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=20012&ptid=5275]1#[/url] [i]vzandy[/i] [/b]


   话说我找到了三个这文件肿么办???/www/wdlinux/wdapache/conf/httpd.conf
/www/wdlinux/httpd-2.2.22/conf/original/httpd.conf
/www/wdlinux/httpd-2.2.22/conf/httpd.conf

csuper 发表于 2013-7-21 11:07

这个好  希望老大在下个版本中集成

aleyy 发表于 2013-11-3 07:12

:(问一下楼主,我的Apache 64位 下 按照你的做法出错,貌似路径问题
cp -p /usr/sbin/apxs /usr/bin    怎么找不到/usr/sbin/apxs 呢? /usr/sbin/下没有apxs啊

admin 发表于 2013-11-4 20:18

在/www/wdlinux/apache/sbin/下

aleyy 发表于 2013-11-8 00:43

[i=s] 本帖最后由 aleyy 于 2013-11-8 00:44 编辑 [/i]

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=30078&ptid=5275]7#[/url] [i]admin[/i] [/b]


   老大,帮忙看下哪里出错了,谢谢!64位Apache 下 第三步 还是出错,

命令代码:
[code]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 /www/wdlinux/apache/sbin/apxs /usr/bin
./configure --with-apxs=/www/wdlinux/apache/sbin/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 /www/wdlinux/httpd-2.2.22/modules[/code]



运行后还是提示错误:

[root@ebs-216 mod_encoding_64]# make
/www/wdlinux/apache/sbin/apxs -c  -I/usr/include  -liconv_hook -liconv -liconv mod_encoding.c
make: /www/wdlinux/apache/sbin/apxs 命令未找到
make: *** [mod_encoding.so] 错误 127
[root@ebs-216 mod_encoding_64]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
gcc: mod_encoding.o 没有那个文件或目录
[root@ebs-216 mod_encoding_64]# cp mod_encoding.so /www/wdlinux/httpd-2.2.22/modules


按照老大说的,貌似这个/www/wdlinux/apache/sbin/apxs 命令还是没有找到啊

admin 发表于 2013-11-8 17:16

应该是
/www/wdlinux/apache/bin/apxs

hurri 发表于 2014-9-24 19:54

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=30216&ptid=5275]9#[/url] [i]admin[/i] [/b]


   apxs 进不去啊
然后第3步起,就看不懂了

hackhyj 发表于 2014-9-26 21:05

Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397  Linux php 技术交流 49442397

impig33 发表于 2014-10-29 12:37

**** 作者被禁止或删除 内容自动屏蔽 ****

impig33 发表于 2014-10-29 12:38

**** 作者被禁止或删除 内容自动屏蔽 ****

impig33 发表于 2014-10-29 12:39

**** 作者被禁止或删除 内容自动屏蔽 ****

linfanmz 发表于 2014-11-20 12:00

[b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=65486&ptid=5275]12#[/url] [i]impig33[/i] [/b]


   您好,我是不太懂linux,在学习中。我是centos 6.5 32位环境,你写的我大概明白,不过不知道怎么应用到我的系统里去。可以出个32位版本的脚本么?

caopeiwei 发表于 2015-5-30 11:45

[quote]我的环境:
当前版本: wdcp_v2.5.11(20140926)
操作系统:Linux 2.6.18-308.el5 64位
apache目录:/www ...
[size=2][color=#999999]impig33 发表于 2014-10-29 12:37[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=65486&ptid=5275][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]


   [font=Monaco, Consolas,]make之后还是无法生成[/font][font=Monaco, Consolas, &quot;Lucida Console&quot;, &quot;Courier New&quot;, serif][size=12px]mod_encoding.o[/size][/font][font=Monaco, Consolas, Lucida Console, Courier New, serif][size=12px]提示[/size][/font]
[font=Monaco, Consolas, Lucida Console, Courier New, serif]
[/font]
[font=Monaco, Consolas, Lucida Console, Courier New, serif]

[size=12px]apxs:Error: Command failed with rc=65536[/size]
[size=12px].[/size]
[size=12px]make: *** [mod_encoding.so] Error 1[/size]

[/font]

caopeiwei 发表于 2015-5-30 12:06

[quote]我的环境:
当前版本: wdcp_v2.5.11(20140926)
操作系统:Linux 2.6.18-308.el5 64位
apache目录:/www ...
[size=2][color=#999999]impig33 发表于 2014-10-29 12:37[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=65486&ptid=5275][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]

好像是编码错误,我还没解决呢

疆飞 发表于 2015-6-2 09:09

非常不建议使用中文目录! 会有很多莫名其妙的问题出来

rush 发表于 2016-1-3 18:58

cannot change permissions of `/usr/lib/libiconv_hook.so.1.0.0': Permission denied

rush 发表于 2016-1-3 19:30

[quote]我的环境:
当前版本: wdcp_v2.5.11(20140926)
操作系统:Linux 2.6.18-308.el5 64位
apache目录:/www ...
[size=2][color=#999999]impig33 发表于 2014-10-29 12:37[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=65486&ptid=5275][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]


    make && make install 权限不够啊。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.