linux url中文不识别,Apache的URL支持中文的设置方法

测试的环境是:centos-64位服务器操作系统

apache-2.0.59 php-5.2.5 mysql-5.0.45 zend-3.3

1、下载相关文件并解压

WebDAV Resources JP有Apache2对应的mod_encoding的最新版本下载

# wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616

# wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz

# tar zxfv mod_encoding-20021209.tar.gz

# cp mod_encoding.c.apache2.20040616 mod_encoding-20021209/mod_encoding.c

2、iconv_hook编译和安装

安装mod_encoding前首先需要安装iconv_hook。

$ cd mod_encoding-20021209/lib

$ ./configure

$ make

# make install

完成上面操作后,iconv_hook相关so文件放到/usr/local/lib下面。

/usr/local/include/iconv_hook

要操作系统系统能够搜索到该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

3、mod_encoding模块的编译

进入mod_encoding-20021209.tar.gz的解压目录,即mod_encoding-20021209

# ./configure --with-apxs=/user/apache/bin/apxs --with-iconv-hook=/usr/local/include

# make

#ls -l mod_encoding.o

#./configure --with-apxs=/user/apache/bin/apxs --with-iconv-hook=/usr/local/include

错误提示:

make: *** [mod_encoding.so] Error 1

原因很明显,是regex.h未包含进来,解决办法也很简单,用vi打开mod_encoding.c,

在#include 那一段的前面加上如下一行:

#include

查看是否已经生成了[color=#ff0000]mod_encoding.o文件,继续操作,然则自己baidu或google下。[/color]

# 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 /user/apache/modules/mod_encoding.so

httpd.conf的设定(以下的配置,仅供参考)

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,如果没提示错误。

您可以上传中文文件到您的web目录下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值