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 <httpd.h>那一段的前面加上如下一行:
#include <regex.h>

查看是否已經生成了[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
<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>

4、重啓apache,如果沒提示錯誤。

您可以上傳中文文件到您的web目錄下。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章