前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Nginx代理Apache模式的SVN

Nginx代理Apache模式的SVN

作者头像
星哥玩云
发布2022-06-30 17:50:41
发布2022-06-30 17:50:41
1.1K0
举报
文章被收录于专栏:开源部署开源部署

1、安装nginx(略)

Nginx安装配置详解 http://www.linuxidc.com/Linux/2013-03/80471.htm

2、安装apache、apache模块包、subversion yum -y install httpd subversion mod_dav_svn

3、建立版本库主目录: mkdir -p /data/svndata chown -R apache.apache/data/svndata

4、编写一个创建svn库的脚本 #!/bin/sh #$0:svncreate.sh if [ $# -ne 1 ]; then echo “Usage: $0 repository_name” exit 1 fi sudo svnadmin create --fs-type fsfs /data/svndata/${1} sudo chown -R apache:apache /data/svndata/${1} sudo chmod -R g+w /data/svndata/${1} sudo chmod g+s /data/svndata/${1}/db

注:不指定--fs-type默认也是fsfs

5、创建一个测试库并导入数据 创建 1 /shell/svncreate.sh svn-shopex

导入数据 svn import /data/webroot/cachebbsfile:///data/svndata/svn-shopex

6、apache配置 vim /etc/httpd/conf.d/subversion.conf <Location /svn> DAV svn SVNListParentPath off SVNParentPath "/data/svndata/" AuthType Basic AuthName "Subversion Authentication!" AuthzSVNAccessFile /data/svndata/authz AuthUserFile /data/svndata/passwd Require valid-user SVNIndexXSLT "/svnindex.xsl" </Location>

注:

/data/svndata/authz 所有库用户的权限管理文件,无需单独配置每个库的conf下的文件,无需启动svn进程。

/data/svndata/passwd 用户密码管理文件(由htpasswd生成)

注意事项: a、修改监听端口 b、确定已加载svn模块:   [root@CentOS-6 svndata]# httpd -M | grep svn     dav_svn_module (shared)     authz_svn_module (shared)   Syntax OK c、SVNIndexXSLT "/svnindex.xsl" 界面美观设置,可选。如果不使用代理,直接放到svndata主目录中,即可;使用nginx代理,只需放到nginx站点目录中。   下载资源:wget -L -r -np --user guest --password ''http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/svnindex/ d、不管是使用乌龟客户端还是WEB访问,都会产生大量日志,可以考虑关闭日志。 e、本次使用的是默认站点,如果有其它站点,可以把以上配置单独放到某个站点配置中

7、生成认证文件 1 htpasswd -n sndapk >>/data/svndata/passwd

  ......

8、nginx配置 配置站点: server {     listen 80;     server_name test.cn;     location ~ \.(ico|xsl|css)$ {         root /data/webroot/svnhtml;     }     location /svn {         proxy_set_header Host $host;         proxy_set_header X-Real-IP $remote_addr;         proxy_set_header X-Forwarded-Proto https;         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_pass http://127.0.0.1:8080/svn/;     } }

下载界面资源文件: cd /data/webroot/svnhtml wget -L -r -np --user guest --password '' http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/svnindex/

注意事项: a、nginx默认限制上传文件不能大于1M,如果大于1M,会产生错误:”413 Request Entity Too Large“,解决:   在http上下文中添加行并重启服务:client_max_body_size 10m;

9、权限配置 vim /data/svndata/authz [groups] sa = sndapk,sndapk3,sndapk5 devel = sndapk2,sndapk4 [svna:/] @sa = rw * = [svn-shopex:/] @sa = rw * = #[/] #如果单独对库指定了权限会覆盖全局的权限配置 #* = r

(完成)

======================================================== 以下是源码安装apache、subversion

源码安装apr apr-util /usr/local/apr-1.5.0 /usr/local/apr-util-1.5.3 apache安装: ./configure \ --prefix=/usr/local/apache-2.2.26 \ --enable-deflate \ --enable-headers \ --enable-so \ --enable-rewrite \ --enable-cgi \ --enable-file-cache \ --enable-cache \ --enable-disk-cache \ --enable-mem-cache \ --enable-dav \ --with-apr=/usr/local/apr-1.5.0/bin/apr-1-config \ --with-apr-util=/usr/local/apr-util-1.5.3/bin/apu-1-config make && make install subversion安装: ./configure \ --prefix=/usr/local/svn-1.7.14 \ --with-apxs=/usr/local/apache-2.2.26/bin/apxs \ --with-apr=/usr/local/apr-1.5.0/bin/apr-1-config \ --with-apr-util=/usr/local/apr-util-1.5.3/bin/apu-1-config \ --with-zlib \ --with-openssl \ --without-berkeley-db 问题: 不实别rpm包安装的apr apr-util 解决:源码安装apr apr-util,并手动指定 configure: error: Subversion requires SQLite 解决:sqlite官网下载最新包,然后拷贝sqllite.c到指定subversion源码目录中,安装1.8.5版本的subversion,提示 sqlite太旧,安装1.7.14解决。 #配置部分同上

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档