问题:
用subversion+apache搭建好svn服务器后,发现svn库不支持中文路径。
解决过程:
- 定位问题
创建中文路径时,subversion报错内容是:http://**********/03%20%E6%B5%8B%E8%AF%95/ path not found,大概的意思是,subversion在服务器中找不到需要创建的目录的路径。
由于路径是存在的,因此通过分析发现,应该是编码的问题,导致路径找不到。从报错信息上看“03%20%E6%B5%8B%E8%AF%95”是属于中文的UTF-8编码。
如果浏览器发送的是UTF-8编码导致路径找不到,那服务器用的编码肯定就不是UTF-8了,确认一下:
1、把服务器的环境变量修改为GBK: export LANG=zh_CN.GBK
2、touch 中文测试.txt
3、ls 输出能看到“中文测试.txt”,证明服务器保持的目录路径是GBK编码的
那问题就找到了:客户端发送的URL编码是UTF-8,但是服务器保存的是GBK,因此,就没办法对应上了。
- 解决问题
定位了问题就好办了(只是我以为,结果折腾了我一天),要不要求客户端发送GBK编码的路径,要不就把UTF-8编码的URL转码为GBK。第一个方法不现实,因为客户是上帝嘛,那就
向第二个方法努力吧!
问了谷哥,apache本身就是用UTF-8编码去decode路径的,没有配置可以修改,但是可以使用一个模块去做URL的转码,这个模块就是 mod_encoding,好,那就去安装吧!
安装大概的过程是这样的:
1.download & patch: # wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz # wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616 新版本mod_encoding.c 覆盖 # cp mod_encoding.c.apache2.20040616 mod_encoding-20021209/mod_encoding.c 这里必须要打一个apache 2.2的补丁。否则make也会出apxs rc=65536 之类的错误。 # wget http://www.aconus.com/~oyaji/faq/mod_encoding.c-apache2.2-20060520.patch # cd mod_encoding-20021209 # patch -p0 < mod_encoding.c-apache2.2-20060520.patch 2.install iconv-hook # cd mod_encoding-20021209/lib # ./configure --prefix=/usr # make # make install # ldconfig 3 build mod_encoding ./configure --with-apxs=/opt/apache2.2/bin/apxs --with-iconv-hook=/usr/include make gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook cp mod_encoding.so /opt/apache2.2/modules 4. config apache 2.2 LoadModule headers_module modules/mod_headers.so 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>
上面的安装过程是网上抄袭的,我按照这个去安装碰到了几个问题:
1、# cd mod_encoding-20021209/lib
安装这个iconv_hook的时候出错,看了他的安装过程,是需要联网的,我使用的服务器不能联网,杯具!
那只好上网找了一个iconv_hook的rpm包,直接rpm -ivh安装了
2、最后模块的配置如下
LoadFile /usr/local/apache2/modules/libiconv_hook.so.1 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 UTF-8 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>
相关推荐
Linux环境下搭建Subversion(简称svn)服务器,主要涉及到两个方面:一是Subversion自身服务的搭建,二是与Apache服务器的集成。Subversion是一个开源的版本控制系统,用于跟踪文件和目录的变更,便于团队协作开发。...
这通常涉及到配置Apache的httpd.conf文件,添加SVN模块,如mod_dav_svn,并设置必要的路径和权限。 接下来,Jsvnadmin是一个基于Web的Subversion管理工具,它提供了图形化的界面,使得管理Subversion仓库更加方便。...
2. **安装 Subversion**: 获取适用于您操作系统的 Subversion 安装包,安装过程中注意配置选项,确保与 Apache 版本兼容。 3. **配置 Apache**: 打开 Apache 的配置文件(通常为 httpd.conf),添加 SVN 相关模块。...
在安装过程中,同样按照默认设置进行,但记得在配置路径时,确保Apache可以找到Subversion的DAV模块。安装完成后,找到并编辑Apache的配置文件`httpd.conf`,这是整个配置过程的核心部分。 在`httpd.conf`中,我们...
本文将详细介绍在Linux环境下搭建SVN + Apache的具体步骤以及过程中可能遇到的问题及解决方法。 #### 二、核心知识点 1. **Apache与SVN的基本概念** - **Apache**: 是一个广泛使用的开源Web服务器软件,能够处理...
2. 问题追踪:在Trac中创建、跟踪、解决任务和缺陷,利用时间线查看项目进度。 3. 版本控制与项目管理的结合:Trac会自动检测Subversion的变更,更新时间线和问题的状态,确保信息同步。 以上就是Subversion与Trac...
【描述】虽然描述为空,但我们可以推测博主可能分享了他在配置SVN与Apache服务器过程中的经验和心得,可能包括了一些常见问题的解决方案和最佳实践。 【标签】:“源码”和“工具”这两个标签表明了主题涉及的是与...
将Subversion与Apache结合使用,可以实现Web访问代码仓库并进行权限控制。以下是关于Subversion基于Apache使用时用户权限管理的详细知识: 1. **Subversion的使用方式** Subversion提供了两种主要的访问方式: - ...
在IT行业中,版本控制是团队协作开发不可或缺的一部分,而Subversion(简称SVN)与...在配置过程中遇到问题,可以查阅Apache和Subversion的官方文档,或搜索相关教程以获取帮助。希望这份指南能对你的工作带来便利。
在本文中,我们将详细探讨如何在Windows环境下安装和配置Trac、Subversion(SVN)以及Apache服务器,这对于初学者来说是一份宝贵的指南。首先,确保你已经准备好所有必要的软件包,包括Apache、SVN、TortoiseSVN、...
SVN,全称为Subversion,是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更历史。...同时,掌握如何解决常见的SVN问题,如冲突处理、丢失更改恢复等,也是必不可少的技能。
SVN,全称为Subversion,是一款广泛使用的版本控制系统,它能够跟踪文件和目录的变更,以便在多人协作的开发环境中管理代码库。...同时,安装过程中遇到的任何问题,都可以参考官方文档或社区论坛寻求解决方案。
2. 配置Apache的httpd.conf:为SVN设置URL路径、DAV模块、列表父路径、父路径、权限文件、认证名称、认证类型以及SSPI相关参数,以实现SSPI域认证。 3. 权限配置:创建access.conf文件,定义用户和组的访问权限。...
- 将SVN服务器的`Subversion\bin`目录下的`mod_dav_svn.so`、`mod_authz_svn.so`以及所有.dll文件复制到Apache服务器的`ApacheSoftware Foundation\Apache2.2\modules`目录下。 - 修改Apache服务器安装目录下的`...
本教程将详细讲解如何在Windows XP操作系统上,利用Apache2.2和Subversion 1.6.17搭建一个版本控制服务器。 首先,我们需要安装Subversion。文件"Setup-Subversion-1.7.5.msi"是一个Subversion的安装程序。运行这个...
【svn+apache+ssl整合】是指将Subversion(SVN)版本控制系统与Apache HTTP服务器结合,并启用SSL(Secure Sockets Layer)加密通信,以便提供安全的HTTPS访问方式。这一过程通常涉及以下步骤: 1. **环境准备**: ...
Apache Subversion(简称SVN)是一个开源的版本控制系统,用于管理软件项目的源代码和其他文件的变更。这个"Apache-Subversion-1.14.0.zip"压缩包包含的是Subversion 1.14.0版本的命令行工具,适用于Windows操作系统...