本帖最后由 狂人阿川 于 2013-4-12 19:13 编辑
今天在给一美国VPS客户调试他的程序的时候.发现他的网站有中文名称.貌似apache无法认识中文路径,火狐下面能下载他的文件,IE下面不行.....只有自己动手解决,解决方法很简单,但是你如果按照网上搜索的那些货儿捣鼓的话.可能会遇到各种问题.. 阿川今天捣鼓一篇比较全面的错误解决办法..方便大家参考. 生产环境是centos+LNMPA一键包(一键包来源:www.lnmp.org) 下载iconv_hook和mod_encoding的RMP包
- wget http://d.kiiyi.com/mod_encoding-2.2.0-1.i386.tar.gz
复制代码
之后解压他
- tar zxvf mod_encoding-2.2.0-1.i386.tar.gz
复制代码
之后导入RPM
- rpm -ivh iconv_hook-1.0.0-1.i386.rpm
- rpm -ivh mod_encoding-2.2.0-1.i386.rpm
复制代码
导入的时候,可能还会出现
- ldconfig: /usr/lib/libmysqlclient.so.16 is not a symbolic link
- ldconfig: /usr/lib/libmysqlclient_r.so.16 is not a symbolic link(不是符号连接)
复制代码
没关系啦...
我们只要在lnmpa的安装包下执行如下命令即可
- ln -sf /usr/local/mysql/lib/mysql/libmysqlclient_r.so.16 /usr/lib/libmysqlclient_r.so.16
- ln -sf /usr/local/mysql/lib/mysql/libmysqlclient_so.16 /usr/lib/libmysqlclient.so.16
复制代码
之后就可以修改httpd.conf了.在httpd.conf中加入如下代码:
- LoadModule encoding_module modules/mod_encoding.so
- <IfModule mod_headers.c>
- Header add MS-Author-Via "DAV"
- </IfModule>
- <IfModule mod_encoding.c>
- 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
- </IfModule>
复制代码
然后重启lnmpa环境...这个时候.你肯定会发现这货出错了..
- httpd: Syntax error on line 34
- of /usr/local/apache/conf/httpd.conf:
- Cannot load /usr/local/apache/modules/mod_encoding.so
- into server: /usr/local/apache/modules/mod_encoding.so:
- cannot open shared object file: No such file or directory
复制代码
没关系...我们将之前导入的mod_encoding.so(位置在/usr/lib/httpd/modules/下面),复制到/usr/local/apache/modules即可
- cp /usr/lib/httpd/modules/mod_encoding.so /usr/local/apache/modules
复制代码
之后.重启环境
好了.打完收工.祝各位玩的愉快! |