无标题文档
wdCP系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdCDN系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
wdOS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdDNS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
注册 发贴 提问 回复-必看必看 wddns免费智能 DNS 开通 本地或虚拟机使 用wdcp 一键包在mysql编 译时"卡住"
【300G高防】双线 无视攻击 wdcp官方技术支持/服务 阿里云8折优惠券 无敌云 腾讯云优惠中,现注册更有260代金额券赠送
返回列表 发帖
提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等

温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的

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

本帖最后由 vzandy 于 2013-3-15 15:40 编辑

Apache(32位):
安装环境:CentOS 5.6 + Apache 2.2.15

安装结果:安装后支持“中文图片、文件名”链接直接打开
以下为安装过程:
1、下载安装包
  1. wget ftp://ftp.aconus.com/fc5/mod_encoding/mod_encoding-2.2.0-1.i386.tar.gz
复制代码

2、直接解压
  1. tar zxvf mod_encoding-2.2.0-1.i386.tar.gz
复制代码


     看到2个rpm安装包,进行安装
  1. rpm -ivh iconv_hook-1.0.0-1.i386.rpm
  2. rpm -ivh mod_encoding-2.2.0-1.i386.rpm
复制代码


3、用 find / -name httpd.conf 找到apache配置文件httpd.conf,vi编辑加入以下内容
  1. LoadModule encoding_module modules/mod_encoding.so
  2. Header add MS-Author-Via "DAV"
  3. EncodingEngine on
  4. NormalizeUsername on
  5. SetServerEncoding GBK
  6. DefaultClientEncoding UTF-8 GBK GB2312
  7. AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
  8. AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
  9. AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
复制代码


保存退出
4、重启apache
  1. service httpd restart
复制代码

5、完成!


注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,
命令:
  1. 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所需的补丁。
2011.9.20由Hostloc.com的Captain修改补充。
————————————————————-
1、安装gcc组件


  1. yum install gcc -y
复制代码



2、下载压缩包
  1. wget http://d.nicwind.com/files/mod_encoding_64.tar.gz
复制代码



3、将压缩包解压,进行编译
  1. tar zxvf mod_encoding_64.tar.gz
  2. cd mod_encoding_64
  3. patch -p0 < mod_encoding.c-apache2.2-20060520.patch
  4. cd lib
  5. chmod 755 configure
  6. ./configure --prefix=/usr
  7. make && make install
  8. ldconfig
  9. cd ../
  10. chmod 755 configure
  11. cp -p /usr/sbin/apxs /usr/bin
  12. ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/include
  13. make
  14. gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
  15. cp mod_encoding.so /usr/lib/httpd/modules
复制代码


注:/usr/lib/httpd/modules为apache的modules目录,可以用
  1. find / -name modules
复制代码
找出这个目录的路径
注意把/usr/lib/httpd/modules改成你的apache模块存放路径。

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


  1. LoadModule encoding_module modules/mod_encoding.so

  2. EncodingEngine on
  3. NormalizeUsername on
  4. SetServerEncoding GBK
  5. DefaultClientEncoding UTF-8 GBK GB2312
  6. AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
  7. AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
  8. AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
复制代码


保存,退出

5、重启apache


  1. service httpd restart
复制代码

6、完成

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

  1. cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules
复制代码

Nginx:

一、确定你的Linux系统是UTF编码,Root登录SSH:

  1. env|grep LANG
  2. LANG=en_US.UTF-8
复制代码

二、NGINX配置文件里默认编码设置为utf-8

  1. server
  2. {
  3. listen 80;
  4. server_name xxxx.com ;
  5. index index.html index.htm index.php;
  6. root /usr/local/nginx/html/inginx.com;
  7. charset utf-8;
  8. }
复制代码


三、如果使用putty
windows –> translation –>UTF-8

mkdir 中文目录名
echo ‘中文目录名’ > 中文目录名/中国.html

四、如果是用securecrt 上传文件,请选择 回话–>外观–UTF-8
如果是FTP软件也将默认编码设置为TUF-8

五、如果上传的文件名出现乱码显示
执行

  1. for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done
复制代码

完毕。

以上都是在互联网收集整理。已经测试过完全没有问题, 上次我在论坛发过两次求助中文URL教程,得到的回复寥寥无几,管理员的回答也有点看不懂,就自己变摸索变找教程了

很好
看清提问三步曲及多看教程/FAQ索引(wdcp,v3,一键包,wdOS),益处多多.wdcp工具集 阿里云主机8折优惠码

TOP

收藏了,呵呵

TOP

回复 1# vzandy


   话说我找到了三个这文件肿么办???/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
souworm

TOP

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

TOP

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

TOP

在/www/wdlinux/apache/sbin/下
看清提问三步曲及多看教程/FAQ索引(wdcp,v3,一键包,wdOS),益处多多.wdcp工具集 阿里云主机8折优惠码

TOP

本帖最后由 aleyy 于 2013-11-8 00:44 编辑

回复 7# admin


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

命令代码:
  1. tar zxvf mod_encoding_64.tar.gz
  2. cd mod_encoding_64
  3. patch -p0 < mod_encoding.c-apache2.2-20060520.patch
  4. cd lib
  5. chmod 755 configure
  6. ./configure --prefix=/usr
  7. make
  8. make install
  9. ldconfig
  10. cd ../
  11. chmod 755 configure
  12. cp -p /www/wdlinux/apache/sbin/apxs /usr/bin
  13. ./configure --with-apxs=/www/wdlinux/apache/sbin/apxs --with-iconv-hook=/usr/include
  14. make
  15. gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
  16. cp mod_encoding.so /www/wdlinux/httpd-2.2.22/modules
复制代码




运行后还是提示错误:

[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 命令还是没有找到啊
我爱WDCP

TOP

应该是
/www/wdlinux/apache/bin/apxs
看清提问三步曲及多看教程/FAQ索引(wdcp,v3,一键包,wdOS),益处多多.wdcp工具集 阿里云主机8折优惠码

TOP

回复 9# admin


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

TOP

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

TOP

我的环境:
当前版本: wdcp_v2.5.11(20140926)
操作系统:Linux 2.6.18-308.el5 64位
apache目录:/www/wdlinux/httpd-2.2.24


原贴中有的符号由于被转码,版本升级导致的目录不对,我经过试验已经成功:

使用原贴的错误:
11. cp -p /www/wdlinux/apache/bin/apxs /usr/bin         
15. cp mod_encoding.so /www/wdlinux/httpd-2.2.24/modules        //应该使用apache的modules目录而不是wdlinux的目录


下面是对的方法:
  1.     tar zxvf mod_encoding_64.tar.gz
  2.     cd mod_encoding_64
  3.     patch -p0 < mod_encoding.c-apache2.2-20060520.patch
  4.     cd lib
  5.     chmod 755 configure
  6.     ./configure --prefix=/usr
  7.     make && make install
  8.     ldconfig
  9.     cd ../
  10.     chmod 755 configure
  11.     cp -p /www/wdlinux/apache/bin/apxs /usr/bin
  12.     ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/include
  13.     make
  14.     gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
  15.     cp mod_encoding.so /www/wdlinux/httpd-2.2.24/modules
复制代码
解决!


希望版猪整理一个官方的,搞这玩意太花时间,一不注意全部挂掉,干脆直接加到新版本中去。

感谢楼主及各位朋友 !

TOP

回复 10# hurri


   看12楼已解决。

TOP

回复 8# aleyy


   

   看12楼已解决。

TOP

回复 12# impig33


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

TOP

返回列表