元月 23, 2012

讓Apache2讀取中文檔名

讓Apache2讀取中文檔名

文章出處:http://blog.makk.idv.hk/post/31/

mod_encoding 能讓 Apache 支援多字節目錄

1a. 檢查 apxs 工具是否已安裝
檢查 ${APACHE_HOME}/bin/ 這目錄下是否存在 apxs (如有跳到步驟 2)

1b. 安裝 httpd-devel
[root@fedora ~]# yum install httpd-devel

2. 下載基本及升級套件
[root@fedora ~]# wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
[root@fedora ~]# wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616

3. 解壓套件,並用 mod_encoding.c.apache2.20040616 修正檔取代基本套件裏的 mod_encoding.c

[root@fedora ~]# tar -xzf mod_encoding-20021209.tar.gz
[root@fedora ~]# cd mod_encoding-20021209
[root@fedora ~]# cp -f ../mod_encoding.c.apache2.20040616 mod_encoding.c


4. 編譯及安裝 iconv_look
[root@fedora ~]# cd mod_encoding-20021209/lib/
[root@fedora ~]# ./configure && make && make install


完成安編譯及安裝後, iconv_look 相關的 *.so 檔會放在 /usr/local/lib
而要 Linux 能夠使用到該文件,需要完成以下動作
[root@fedora ~]# echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf
[root@fedora ~]# ldconfig

P.S. 以上動作等同 # nano /etc/ld.so.conf.d/local.conf ,加入 /usr/local/lib 這一句。# ldconfig 為載入動態元件庫

5. 編譯及安裝 mod_encoding
[root@fedora ~]# cd mod_encoding-20021209
[root@fedora ~]# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include
[root@fedora ~]# make


*** 如出現 mod_encoding.c:***: error: 'regex_t' undeclared (first use in this function) ***
須編輯 mod_encoding.c 這檔案
在 #include <httpd.h> 那一句的上面加上
#include <regex.h>

然後再重新編繹

檢查 mod_encoding.o 是否已經產生
[root@fedora ~]# ls -l mod_encoding.o

如果檔案存在,則編繹成共享動態元件
[root@fedora ~]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
[root@fedora ~]# make install


6. 安裝動態元件
複製 mod_encoding.so 到 Apache 動態模組庫
[root@fedora ~]# cp mod_encoding.so /usr/lib/httpd/modules/



7. 建立encoding.conf掛載 mod_encoding.so
[root@fedora ~]# nano /etc/httpd/conf.d/encoding.conf

LoadModule encoding_module modules/mod_encoding.so
<IfModule mod_encoding.c>
  EncodingEngine    on
  NormalizeUsername on
  SetServerEncoding Big5
  DefaultClientEncoding Big5 UTF-8
  AddClientEncoding "(Microsoft .* DAV $)" Big5 UTF-8
  AddClientEncoding "Microsoft .* DAV" Big5 UTF-8
  AddClientEncoding "Microsoft-WebDAV*" Big5 UTF-8
</IfModule>

註:SetServerEncoding UTF-8 可設置成其他默認編碼 e.g. Big5, GBK, GB2312 etc...


Posted by mis at 15:04  迴響 (0)引用 (0)資訊教育

引用URL

http://web.hyes.tyc.edu.tw/blog/trackback.php?id=471
回應文章
(必要)
authimage