svn配置php
1.安裝svn服務器端web
yum install subversion 從鏡像下載安裝svn服務器端服務器
cd /usr/local/ //進入目錄,準備建立svn目錄tcp
mkdir svn //建立一個svn目錄svn
chmod -R 777 svn //修改目錄權限爲777post
svnadmin create /usr/local/svn/sunny //建立一個svn版本倉庫sunny(sunny能夠隨便起名字)spa
cd svn/sunny/conf //進入sunny版本倉庫下的配置文件目錄.net
下面要修改這個目錄下的三個配置文件rest
(1)vi svnserve.conf //配置版本庫信息和用戶文件和用戶密碼文件的路徑、版本庫路徑blog
[
把
# anon-access = read
# auth-access = write
# password-db = passwd
//這四行,前面的#號和空格去掉(注意去掉#要頂格寫,不要留有多餘空格),變成
anon-access = none //改爲none
auth-access = write
password-db = passwd
realm = sunny //改爲本身的版本庫
保存
(2)vi authz //文件,建立svn組和組用戶的權限
[group]
sunny = gep,wce //建立一個sunny的組,並指定兩個用戶gep和wce
[/] //制定根目錄下的權限
@sunny = rw //sunny組用戶權限爲讀寫
* = r //其餘用戶只有讀權限
保存退出
(3) vi passwd //建立或修改用戶密碼
[users]
gep = 123456 //用戶名爲gep的用戶的密碼爲123456
wce = 123456 //。。。
保存退出
啓動svn:
svnserve -d -r /usr/local/svn/ //這裏採用多版本庫的方式啓動 若是是單版本庫 能夠svnserve -d -r /usr/local/svn/sunny
添加一行
而後要設置自啓動
vi /etc/rc.local 打開自啓動文件添加
/usr/bin/svnserve -d -r /usr/local/svn/
svn命令:
netstat -tnlp|grep 3690 查看svn是否啓動
ps aux |grep 'svn' 查找全部svn啓動的進程
kill -9 2505 殺死2505這個查找到的svn進程
svn checkout svn://172.19.5.2/sunny /data0/htdocs/blog //檢出一份版本庫文件到指定目錄
svn up //更新文件
自動更新
在vi /usr/local/svn/sunny/hooks/post-commit中加入
#!/bin/sh
#設置一些變量
SVN=/usr/bin/svn
WEB=/home/testsvn #要更新的目錄
export.UTF-8
$SVN update $WEB --username xxx --password xxx
其中SVN=右邊改爲 svn 命令位置 通常默認爲/usr/bin/svn
WEB=右邊改爲你實際的web目錄
賦予可執行權限
chmod 777 /usr/local/svn/sunny/hooks/post-commit
=========================================================================
其餘
#svn commit -m "註釋" xxx.php //提交文件
svn ci -m'aaa' test.php //提交文件
#svn add file //新建文件並添加到svn
svn add *.php //(添加當前目錄下全部的php文件)
svn delete test.php //刪除test.php
svn log test.php //查看test文件的log信息
svn cleanup //清理當前目錄
svn switch --relocate svn://192.168.1.253 svn://172.19.10.250 //從新定位SVN版本庫地址
// SVN版本庫起動方式,如今SVN下面有 sunny、test 兩個版本庫
1:單版本庫起動 svnserve -d -r /usr/local/svn/sunny
2:多版本庫起動 svnserve -d -r /usr/local/svn
區別在於起動svn時候的命令中的啓動參數-r指定的目錄。
限制不一樣的用戶對不一樣的版本庫操做權限,修改版本庫中的conf目錄下的 authz文件
以配置 sunny 版本庫爲例
vi authz
[groups]
teacher = sunny,sunny1
[sunny:/] //指定版本庫跟目錄下的權限
@teacher = rw //teacher組用戶權限爲讀寫
* = r //其餘用戶只有讀權限
保存退出
vi passwd 設置組中用戶的帳號和密碼
[users]
sunny = 123456
sunny1 = 123456
ps:
如發現svn進程已經打開,但遠程沒法鏈接,最多見解決方案:
分析:問題很是多是因爲防火牆形成,須要修改iptables:
1. 打開修改iptables:
vi /etc/sysconfig/iptables
該文件內容不過幾行,瀏覽一遍,找下有沒有3690端口(svn默認3690端口),如沒有,那麼添加一行;
2.在其中相似格式添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
格式與前幾行基本相同,惟獨端口爲3690,若是懶且怕出錯,能夠直接複製一行,並修改端口爲3690便可;
以後用vi的wq命令保存並推出;
3.重啓iptables使之生效(不重啓等於沒改);
/sbin/service iptables restart
如此這般,90%的機率上你的svn已經能夠遠程鏈接了。
如還有問題歡迎提出交流。