设为首页 收藏本站
查看: 774|回复: 0

[经验分享] Linux上配置Apache,支持中文名称文件下载的方法

[复制链接]

尚未签到

发表于 2018-11-27 11:51:32 | 显示全部楼层 |阅读模式
linux下apache支持中文名的解决方法!【原创】  公司网站原来使用Windows server 2003+apache+weblogic应用服务器,后全面移植到linux平台下,使用CENTOS4.2 Linux+Apache2.0.54+resin2.1.16或tomcat平台,由于系统的移植,也就产生了一些问题。由于在windos平台下URL地址支持中文文件名,所以我们可以无需对URL编码查看带有中文文件名的网址,而linux平台下的Apache认为URL地址是以UTF-8编码传输的,所以采用以前的访问方式一些含有汉字的路径提示找不到文件(404错误)。尽管我们可以对中文文件名可以进行编码后访问,但是这样的话我们不仅需要修改大量的程序,而且也造成了地址的过长而不容易记忆。所以如何解决Linux下Apache支持中文文件名摆在我们面前,后ytang找到Apache下支持中文文件名的模块mod_encoding,该模块是一日本人开发的。苦于没有资料,偶不知道如何编译为此苦恼几天!后ytang看着日文文档终于搞定了。可是他并为写出相关的编译步骤,今天偶又遇到一个类似的问题,一朋友注册了偶的博客,她用的是中文名ID,而她的中文名只能经过编码后方能访问。于是偶想给Apache加上mod_encoding.so模块,偶的平台是CENTOS4.2+APACHE2.0.54+TOMCAT+MYSQL4.1.13。偶问ytang他如何编译的他说不记的了,开始我以为只要把他的mod_encoding.so文件放到偶的${apache_home}/modules/下,然后在httpd.conf配置文件加入相关的配置就可以了。谁知道提示偶缺少一些so文件,按照提示的目录,我跑到另一台服务器该目录下,将所有相关so都拷贝了过来!呵呵,偶的博客终于支持中文ID了。兴奋ing!不过问题还是没解决,偶还是不能编译成功mod_encoding.so文件。搜遍网络【搜索”生成 mod_encoding.so”】没有找到一篇中文帮助,google人家都急了于是给偶列出了几篇日文的,唉,有比没有好吧,好歹日文里面夹杂着不少的汉字,还是能明白大体意思的。偶就照着日文的编译步骤终于编译成功!hoho......特把步骤中文化一番,步骤大体一致,加入偶个别的一些看法!别拿臭鸡蛋砸我啊!~~偶是菜鸟,没办法!!有什么不对的地方望指正!
  原日文网址:http://www.seya.org/mt/archives/2003/10/31_webdav2.html
  ■ 下载相关文件并解压
  WebDAV Resources JP有Apache2对应的mod_encoding的最新版本下载
  # wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
  # wget http://webdav.todo.gr.jp/downloa ... .c.apache2.20040616
  # tar zxfv mod_encoding-20021209.tar.gz
  # cp mod_encoding.c.apache2.20020616 mod_encoding-20021209/mod_encoding.c ■ iconv_hook编译和安装
  安装mod_encoding前首先需要安装iconv_hook。
  $ cd mod_encoding-20021209/lib
  $ ./configure
  $ make
  $ su
  # make install完成上面操作后,iconv_hook相关so文件放到/usr/local/lib下面。
  要操作系统系统能够搜索到该so文件,需要完成一下几行操作
  打开/etc/ld.so.conf文件,添加一行指向iconv_book的所在路径,即"/usr/local/lib"
  # vi /etc/ld.so.conf
  /usr/local/lib[Esc]、[:]、[w]、[q] 保存退出。
  # PATH="$PATH:/sbin"
  # ldconfig■ apxs工具安装
  编译mod_encoding时,必须要有apxs,httpd-devel中包括创建和安装扩展模块的apxs工具。如果是你安装了Apache,检查${APACHE_HOME}/bin/下是否存在apxs,如果存在则略过该步无需自己安装该程序包,如果尚未安装e则需要自己手动安装httpd-devel。
  # apt-get install http-devel■ mod_encoding模块的编译
  进入mod_encoding-20021209.tar.gz的解压目录,即mod_encoding-20021209
  # ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include
  # make
  #ls -l mod_encoding.o
  查看是否已经生成了mod_encoding.o文件,如果是,则make成功继续下边的操作。# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
  生成mod_encoding.so文件,将该文件拷贝到你的模块存放目录,一般为${APACHE_HOME}/modules/
  # cp mod_encoding.so /usr/local/apache/modules/mod_encoding.so■ httpd.confd的設定
  这个是我的设置文件,参考的ytang的
  LoadModule headers_module modules/mod_headers.so
  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
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-640283-1-1.html 上篇帖子: Linux下安装最新Apache2.0.52+PHP5+GD2+MySQL等 下篇帖子: Apache 2.2 + Php 5.1 安装问题解决[原创]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表