设为首页 收藏本站
查看: 1099|回复: 0

[经验分享] 如何在linux下配置apache+svn

[复制链接]

尚未签到

发表于 2018-11-28 10:36:32 | 显示全部楼层 |阅读模式
  网络上关于这种的手册和说明很多很多,我这个也是根据网上的说明加上自己的实践整理出来的,适合初学者。同时,各位自己使用的时候,请注意各自的版本和环境。
  要求:能够允许通过http协议访问版本库,并能统一管理各个仓库的用户和权限。
  环境:
  RedHat 5.4
  jdk 1.6
  软件:
  subversion-1.6.17.tar.gz
  下载地址:http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
  subversion-deps-1.6.17.tar.gz
  下载地址:http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.gz
  httpd-2.2.19.tar.gz
  下载地址:http://httpd.apache.org/download.cgi
  sqlite-3.6.17
  安装步骤:
  注意:安装之前,最好检查一下操作系统中是否有expat的包,主要是用来解析xml用得,如果有,要确认一下是否是2.x的包,如果是1.x的包,最好去下载一个2.x的包进行安装后,再进行下面的安装。
  将这四个软件上传到linux服务器的/tmp目录下新建的svn目录。
  使用root用户登录系统,在/tmp/svn目录下,将三个包解开:
  tar zxvf subversion-1.6.17.tar.gz
  tar zxvf subversion-deps-1.6.17.tar.gz
  tar zxvf httpd-2.2.19.tar.gz
  得到两个文件夹:httpd-2.2.19和subversion-1.6.17
  在安装之前,要先确保jdk已经安装完成,我这里使用的是jdk1.6:jdk-6u2-linux-i586-rpm.bin,安装在/usr/java目录中。
  设置环境变量,编辑/etc/profile文件,在其中增加:


  • export JAVA_HOME=/usr/java/jdk1.6.0_02

  使用root用户执行httpd和svn的安装工作。
  因为都是源码包安装,所以要先进行编译和安装,首先进入httpd-2.2.19目录,执行


  • # ./configure --prefix=/usr/local/apache2 --enable-so --enable-dav --enable-dav-fs --enable-maintainer-mode
  • # make
  • # make install

  注意:执行make和make install前,一定要查看前一步的执行结果是否存在error之类的错误,如果存在,先找到原因,然后再重新执行前一步操作,都成功后,再进行一步操作。
  执行完了之后,/usr/local/apache2下面的目录结果如下:


  • bin    cgi-bin  error   icons    lib   man     modules
  • build  conf     htdocs  include  logs  manual

  为了便于管理,所以,需要将apache2交给apache用户管理,所以,先创建apache组和apache用户。
  创建完成后,将/usr/local/apache2目录下所有文件的属组改为apache
  执行:


  • # chown -R apache:apache apache2

  为了便于apache组用户的访问,建议,将这些目录属性改为755.
  因为安装svn需要用到sqlite3库,所以,先到sqlit3目录下编译出sqlite3.c文件。在sqlite-3.6.17目录下执行:


  • # ./configure
  • # make  
  • # make install

  编译成功,会生成一个sqlite3.c文件,将该文件拷贝到
  /tmp/svn/subversion-1.6.17/sqlite-amalgamation目录下即可。
  在subversion-1.6.17目录下执行:


  • # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2/bin/apr-1-config --with-apr-util=/usr/local/apache2/bin/apu-1-config
  • # make
  • # make install

  注意:编译的时候,可能会提示


  • configure: error: no XML parser was found: expat or libxml 2.x required

  此时,需要安装libxml2-2.6.32,具体版本可以任意,但是必须是2.0以上的。先将libxml2-2.6.32编译安装,然后重新执行./configure --....命令
  编译的时候,如果提示/usr/bin/m4之类的错误,可能是redhat 系统自带的 autoconf 版本低,需要执行


  • aclocal  
  • autoconf  
  • automake --add-missing  
  • autoconf

  然后再次至此那个libxml的编译安装即可。
  执行成功后,在/usr/local/svn目录下其结构如下:


  • bin  include  lib  man  share

  编辑apache的配置文件httpd.conf中的一些内容,如果安装正常的话,在该文件中村中如下的内容:


  • LoadModule dav_svn_module     modules/mod_dav_svn.so
  • LoadModule authz_svn_module   modules/mod_authz_svn.so

  如果没有这两条,则手工添加。
  继续:添加如下代码到httpd.conf文件中



  • DAV svn                     //定义需要管理的服务
  • SVNListParentPath On        //允许查看父目录列表
  • SVNParentPath /home/svn     //指定父目录
  • Satisfy Any            
  • AuthType Basic
  • AuthName "SVN REPOS"
  • AuthUserFile /usr/local/svn/svn_passwdfile   //定义用户密码文件
  • AuthzSVNAccessFile /usr/local/svn/svn_accessfile  //定义用户访问权限文件
  • Require valid-user                   //需要验证用户,设置后不允许匿名访问


  修改apahce管理的用户名和组:


  • User svn
  • Group apache

  保存httpdb.conf文件并退出。
  添加用户和密码及权限分配,修改之前定义的文件
  #/usr/local/apache2/bin//htpasswd -c svn_passwdfile test
  添加一个test用户到文件中,同时需要在提示下输入密码。
  注意,第一次需要用到-c参数,之后,使用时,只需要加-m参数即可。
  为了便于管理,我们创建一个svn用户,将所有仓库都建立在这个用户下,执行


  • # useradd -g apache -d /home/svn svn

  设置svn目录的权限为775.
  使用svn用户登录,执行


  • $svnadmin create test

  创建一个test的仓库。
  添加test用户的访问权限,使用root用户,编辑svn_accessfile文件。
  类似于原来svn目录下,authz的格式。
  [/]表示仓库的根目录,这里可以指的是父目录。
  [test:/]表示的是test仓库的根目录。
  test = rw  表示test用户对该仓库有读写的权限。
  设置好了之后,启动apache。
  #/usr/local/apache2/bin/httpd -k start
  在浏览器中,使用http://ip地址/svn/访问
  问题的处理:
  不管是浏览器还是svn工具访问仓库,提示svn: Could not open the requested SVN filesystem的信息,可能存在这几个方面的原因,大家可以参考一下。
  一个是你创建版本库的工具比svn服务器的版本高;
  一个是你本机上得卡巴斯基的问题,可以尝试关闭后连接;
  一个是你存放仓库的主目录对apache用户组没有可执行的权限,可以尝试对仓库的主目录执行chmod g+x 命令。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-640642-1-1.html 上篇帖子: Solaris上利用pkgutil工具安装Apache、MySQL和PHP 下篇帖子: 基于ssl的apache服务器的配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表