查看文章 |
[Server]Windows平台上的mod_encoding.dll For Apache 2.2 的编译和配置方法 2008.1.31
2008-01-31 13:23
作者:Tank http://hi.baidu.com/uroot 2008.1.31 Tank原创,转载请保留本出处 更新: 1.提供编译好的mod_encoding.dll Fpr Apache 2.2 Win32 下载地址 2008.7.23 2.增加配置方法说明 编译: 前日写篇[Linux]Apache2.2+mod_encoding解决URL中文编码问题-2008.1.8的文章.有网友咨询Apache 运行在Windows Server 2003平台上如何处理。由于mod_encoding没有提供For Apache 2.2 的Windows 版本,Google了一通无现成dll可用,于是试着自己在Windows 平台编译了mod_encoding.dll.将过程贴出分享: mod_encoding 使用libiconv,所以,首先需要一个iconv的win32版本。 libiconv 的老家是 http://www.gnu.org/software/libiconv/ 我在这里找到一个libiconv的windows版本: http://www.zlatkovic.com/pub/libxml/ 下载释放到某个目录,例如C:\iconv-1.9.2.win32 开发环境:Windows XP, VS 2005,已经安装Apache 2.2.8 类似mod_limitipconn 编译环境 Vs2005新建立一个dll项目 项目名称mod_encoding 加入mod_encoding.c 这个文件从打好补丁的linux版本直接拿过来。参考相关文章2. 修改头文件引用方式#include "httpd.h" #include "iconv.h" 作者:Tank http://hi.baidu.com/uroot 原创 配置 项目属性,附加 include目录 和链接附加依赖项, 可参考相关文章1中配置, 记得需要加入iconv的lib文件,include目录 这时候编译可以通过。Link出错。由于Linux C index 函数的原因. 替换index 为win32 的strstr . 重新编译通过。 --------------------------------------------------------------------------------------- 配置: httpd.conf中 配置文件写法同Linux版本相同. 使用环境:apache 2.2.x ,WIndows Server 2003 or Windows XP
然后重新启动apache 。 如果apache启动出错,请看apache 安装目录下logs子目录的error.log的错误提示.首先保证你的apache2.2.x能正常启动,并提供服务。IE访问服务器HTTP时出现It works 字样。 1:你需要到http://www.zlatkovic.com/pub/libxml/ 下载一个iconv-1.9.2 的 iconv.dll 放到windows system32目录.如果链接iconv时选择静态链接库iconv_a.lib.则不需要此步骤。其他如MSVCRT80.DLL等,如果需要,一并部署到目标Server 的system32目录. 2:拷贝mod_encoding.dll到Apache modules目录。比如C:\apache2\modules 3.修改apache的conf子目录中的配置文件: httpd.conf 加入如下配置: LoadModule headers_module modules/mod_headers.so ##mod_headers必须加载 LoadModule encoding_module modules/mod_encoding.dll <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> (Tank注:因无条件测试,不能保证此dll能正常使用,请自行测试) (Tank注2:有网友反馈在Windows Server 2003上可正常使用) (留言中,jaco的建议很有道理,不是每个人都常备一个vs200x的开发环境,由于没有合适的server 空间提供dll下载,所以朋友如果需要编译好的dll,请给我留言,不知道为什么,baidu的留言有时会莫名其妙的没有了。....前两位的留言就不见了.) 更新,下载地址如下: 链接在 坦克工厂@blogbus.com mod_encoding.dll 下载地址页面 (博客大巴有文件防盗链设置,不能直接从百度链接到文件) 1: Windows 2003 平台 Apache 2.2.6 +mod_limitipconn+ PHP 5 + SQL SERVER 2005 配置 -2007.11.08 2: [Linux]Apache2.2+mod_encoding解决URL中文编码问题-2008.1.8 |