Google
 

SVN中文论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
免费的桌面便签、记事、快捷方式管理工具TutuTools提问的智慧SVN版 - 提问者必读
查看: 5536|回复: 10

[原创] 在RHEL5上安装subversion 1.6.9详细步骤,PHP用户管理、权限管理 [复制链接]

Rank: 1

发表于 10-4-1 12:24:49 |显示全部楼层

本帖最后由 tjz2000 于 10-5-20 09:41 编辑

详细步骤,是自己一步一步写下来,有PHP简单写的在线用户管理、权限管理,可添加删除用户,随意修改权限
在RHEL5上安装subversion 1.6.9
http://www.800190.com/?action-viewnews-itemid-83730



1、在机器上安装RHEL 5

2
、安装Apache2.0.63
http://httpd.apache.org上找到2.0.63下载下来安装
tar -zxvf httpd-2.0.63.tar.gz


./configure --prefix=/usr/local/apache --enable-so --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share --enable-dav=share --enable-dav-fs --enable-module=most --enable-shared=max


然后make


再make install


安装apache完成!


安装php(安装PHP主要是用于运行简单的在线SVN用户、权限管理)
tar xfz php-5.2.9.tar.gz
cd php-5.2.9
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs


make


make test


make install


cp php.ini-dist /usr/local/lib/php.ini   \\将php.ini-dist复制到/usr/local/lib/,并重命名为php.ini
为了让Apache能够直接解析php,我们还要进行一些配置.
vi /usr/local/apache/conf/httpd.conf
在httpd.conf文件中,添加
AddType application/x-httpd-php .php


AddType application/x-httpd-php-source .phps


应该将以上两句添加在其他AddType之后。
确保文件中有以下一句话,没有就自己添加在所有LoadModule之后。
LoadModule php5_module modules/libphp5.so
好了,在vi中使用":wq"保存httpd.conf文件,退出vi。


启动apache server: /usr/local/apache/bin/apachectl start



启动apache时报错:


cannot restore segment prot after reloc: Permission denied……



cannot restore segment prot after reloc: Permission denied解决方法 收藏


编辑/etc/selinux/config,找到这段:


# This file controls the state of SELinux on the system.


# SELINUX= can take one of these three values:


# enforcing - SELinux security policy is enforced.


# permissive - SELinux prints warnings instead of enforcing.


# disabled - SELinux is fully disabled.


SELINUX=enforcing



把SELINUX=enforcing注释掉:#SELINUX=enforcing,然后新加一行为:


SELINUX=disabled


保存,关闭。


......



编辑/etc/sysconfig/selinux,找到:


# This file controls the state of SELinux on the system.


# SELINUX= can take one of these three values:


# enforcing - SELinux security policy is enforced.


# permissive - SELinux prints warnings instead of enforcing.


# disabled - SELinux is fully disabled.


SELINUX=enforcing



如果SELINUX已经是SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing注释掉,新加一行:


SELINUX=disabled


保存,退出。



如果你碰到其他类似提示:


cannot restore segment prot after reloc: Permission denied


哪应该是SELinux的问题,可以考虑把它关闭。


-------------------------------------------------------------------------------------


郁闷的是.我把SELinux关闭后还是不行.于是到google上search.发现这个很有用.


在你保证SElinux被disable后.还执行下


chcon -t texrel_shlib_t


如: chcon -t texrel_shlib_t /路径/路径/名字.so
(这个文件视具体执行文件.)



以上两步.已经解决了很多server的问题了.



修改之后要重启一下机器!



再次启动apache后,测试一下看apache能否运行
/usr/local/apache/bin/apachectl start
用浏览器访问,看到it works字样,说明apache成功了




3、安装subversion1.6.9


下载的是subversion1.6.9.tar.gz
解压
tar -zxvf subversion-1.6.9.tar.gz
cd subversion-1.6.9


./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache


编译时报错:


An appropriate version of sqlite could not be found.  We recommmend
3.6.13, but require at least 3.4.0.
Please either install a newer sqlite on this system
or
get the sqlite 3.6.13 amalgamation from:
    http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/home/user/svn/subversion-1.6.9/sqlite-amalgamation/sqlite3.c
This file also ships as part of the subversion-deps distribution.



通过以下方法解决


subversion-1.6.9目录下创建sqlite-amalgamation文件夹;


下载最新版本的sqlite-3.6.22.tar.gz(在此我下载的是这个版本),并解压编译不需要安装,只要把sqlite3.c文件编译出来就行,./configure之后再make就可以了;


再把编译出来的sqlite3.c文件拷贝到刚创建的sqlite-amalgamation文件夹;


再次重新编译svn即可;



然后make


再make install

再看apache的配置文件,已经自动加上了如下两行
LoadModule dav_svn_module
modules/mod_dav_svn.so
LoadModule authz_svn_module
modules/mod_authz_svn.so
这两个.so文件也被拷贝到相应的modules目录了。


现在apache和subversion都成功了,接下来就是建立配置文件


之后建个资料库测试一下


svnadmin create --fs-type fsfs /home/svnroot/database


创建成功,启动svn服务
svnserve -d -r /home/svnroot (重启机器后此命令启动svn)



4
权限配置
创建svnroot用户
useradd svnroot
创建用户
passwd svnroot
设置密码


我在/home/svnroot下建了个conf文件夹,专门用于存放用户信息、权限配置信息
mkdir /home/svnroot/conf
建立一个用户名、密码文件
/usr/local/apache/bin/htpasswd -cm /home/svnroot/conf/passwd yourname
(第一次创建用户时要加参数c,之后就不用)


根据屏幕提示输入两次密码
在conf目录下再建database资料库的权限文件
vi /home/svnroot/conf/authz


注:如果权限目录包含有中文目录的话,authz文件需要保存成UTF-8无BOM格式,这样对中文目录的权限控制方可生效)


输入如下配置信息,最简单的权限配置


[groups]


g_supperman = svnroot


g_admin = svnroot,luminji,tujianzhao


g_cet = luminji,tujianzhao,zhangsan,lisi


g_tk = luminji,tujianzhao,wangwu


g_others = luminji,tujianzhao,zhaoliu,wuyou



[/]


@g_supperman = rw


@g_admin = r



[/CET]


@g_admin = rw



[/CET/dy/123]


@g_admin = r



[/TK]


@g_admin = rw



[/Others]


@g_admin = rw

保存退出
编辑/usr/local/apache/conf/httpd.conf文件
把user daemon和group daemon中的daemon换成svnroot


在文件尾部输入和此项目配置库的访问信息
第一种方式:
<Location /cet>


DAV svn


SVNPath /home/svnroot/cet


AuthType Basic


AuthName "Subversion"


AuthUserFile /home/svnroot/conf/passwd
#
验证的用户名密码


AuthzSVNAccessFile /home/svnroot/conf/authz
#
验证的权限文件


Require valid-user


</Location>



第二种方式:


<Location /svn>


DAV svn


SVNListParentPath on


SVNParentPath /home/svnroot


AuthType Basic


AuthName "Subversion"


AuthUserFile /home/svnroot/conf/passwd


AuthzSVNAccessFile /home/svnroot/conf/authz


Require valid-user


</Location>



至于建几个库,每个库是否是单独一个访问路径,每个库是否都使用同一个用户文件及权限文件,都由自己按需而定。
注意,还要把/home/svnroot整个目录的属主设为svnroot用户
chown -R svnroot:svnroot /home/svnroot

重新启动apache,到此一个SVN项目就完成了。


5、环境变量及开机启动apache、svn设置


vi /etc/profile


在最后添加以下信息:


export LC_ALL=C


PATH=$PATH:/usr/local/svn/bin


export PATH


PATH=$PATH:/usr/local/apache/bin


export PATH



vi /etc/rc.local
或vi /etc/rc.d/rc.local


在最后添加以下信息:


/usr/local/apache/bin/apachectl start


/usr/local/svn/bin/svnserve -d -r /home/svnroot



Ok,收工!重启系统reboot查看apache和svn是否自动启动……



接下来是额外的SVN辅助功能,不过很实用哦……



6、通过PHP编写实现在线添加用户、删除用户、编辑权限及在线修改密码功能(这就是之前装PHP的用意)


注意,除了在线修改密码功能是对任何人员开放外,别的都是需要特定管理员才可登陆修改,在此,通过Apache虚拟目录登陆用户验证方式实现。


(1)
在/home/svnroot创建下tools目录,并创建四个文件


cd /home/svnroot


mkdir tools


cd tools


vi authz.php
添加相应代码并保存,相应代码见附件
//实现在线编辑权限功能


vi useradd.php
添加相应代码并保存,相应代码见附件
//实现在线添加用户功能


vi userdel.php
添加相应代码并保存,相应代码见附件
//实现在线删除用户功能


在/home/svnroot/tools目录创建下passwd目录,并创建一个文件


mkdir passwd


vi passwd.php
添加相应代码并保存,相应代码见附件
//实现在线修改密码功能


注:为什么要放在两个不同的目录下呢?主要是通过不同用户验证登陆,如果放在同一个目录下只能通一个用户验证文件来验证用户;


(2)
在apache配置文件中,添加别名虚拟目录,并创建一管理员用户验证文件


/usr/local/apache/bin/htpasswd
-cm /home/svnroot/conf/passwdadmin svnroot


创建成功后,第二次再添加管理员用户时不需要参数-c



vi /usr/local/apache/conf/httpd.conf



Alias /useradd "/home/svnroot/tools/useradd.php"


<Directory "/home/svnroot/tools/">


Require valid-user


AuthType Basic


AuthName "Subversion Tools"


AuthUserFile /home/svnroot/conf/passwdadmin


</Directory>




附件下载(下载的附件是.php.txt的文件,把.txt去掉就可以了):


userdel(svn在线删除用户).php.txt(3.59 KB)
useradd(svn在线添加用户).php.txt(3.68 KB)
passwd(svn在线修改密码程序).php.txt(3.54 KB)
authz(svn在线编辑权限)-UTF-8.php.txt(2.89 KB)


详见:http://www.800190.com/?action-viewnews-itemid-83730

Rank: 1

发表于 10-4-21 23:30:19 |显示全部楼层

好东西 顶起

使用道具 举报

Rank: 1

发表于 10-5-6 13:13:30 |显示全部楼层

mark记录收藏之。

使用道具 举报

Rank: 1

发表于 10-5-7 16:19:52 |显示全部楼层

提取码不存在或已过期。怎么办

使用道具 举报

Rank: 1

发表于 10-5-20 09:39:46 |显示全部楼层

提取码不存在或已过期。怎么办
summer 发表于 10-5-7 16:19

不好意思,已更新下载,现在可以下载了

使用道具 举报

Rank: 1

发表于 10-6-2 16:17:11 |显示全部楼层

请教一下楼主:
通过WEB去访问SVN,目录及文件可以出来,但是没有显示版本信息。能不能在WEB中将文件的版本信息显示出来,谢谢!!!

使用道具 举报

Rank: 1

发表于 10-6-8 14:17:24 |显示全部楼层
请教一下楼主:
通过WEB去访问SVN,目录及文件可以出来,但是没有显示版本信息。能不能在WEB中将文件的版本信息显示出来,谢谢!!!

使用道具 举报

Rank: 1

发表于 10-6-8 14:42:27 |显示全部楼层
楼主,不可以下载呀,说没有权限!!!

使用道具 举报

Rank: 1

发表于 10-6-10 09:06:14 |显示全部楼层

楼主有才啊
谢谢分享
支持了








air jordan 8 retro
nike air jordan 8
air jordan 8 fusion
air jordan 9

使用道具 举报

Rank: 1

发表于 16-6-12 21:10:33 |显示全部楼层
这几个脚本都没法下载了。。谁有帮忙share一个?多谢。。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|我用Subversion ( 闽ICP备05014653号 )

GMT+8, 18-7-17 03:49 , Processed in 0.222125 second(s), 13 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部