在linux服務上修改代碼很麻煩,使用個版本工具會節省開發工具,有人說為啥不用Git而是選擇SVN。因為平時寫項目也就兩三個人,代碼量也比較小,本人比較懶,學東西也比較慢,對于Git的了解還比較初級。只需要這兩個文件,在服務器上新搭建一個項目的時候,自動創建SVN服務器。

php代碼:
system("./test.sh testsss 'ltc' 'ltc222' '/var/www/webroot'",$status);
echo $status;
bash腳本:
#!/bin/bash
#1.獲取到傳遞過來的項目名稱
name="$1"
#用戶名
username="$2"
#密碼
password="$3"
#Apache項目目錄(默認的為www)
path="$4"
#2.在svndata目錄下新建一個倉庫對應項目
svnadmin create /var/www/svndata/$name
#3.配置用戶登錄需要的擴展,要修改配置文件,這里是修改文件,用sed命令
cd /var/www/svndata/$name/conf
sed -i.bak 's/# anon-access = read/anon-access=none/' svnserve.conf
sed -i.bak 's/# auth-access = write/auth-access=write/' svnserve.conf
sed -i.bak 's/# password-db = passwd/password-db=passwd/' svnserve.conf
#4添加用戶密碼,這里用的是追加操作,用echo命令
echo "$username=$password" >> passwd
#5.添加執行權限,第一行是文件路徑,第二行是某個用戶有哪些權限
echo "[/var/www/svndata/$name]" >> authz
echo "$username=rw" >> authz
#6關閉svn服務然后重啟
killall svnserve
svnserve -d -r /var/www/svndata
#7.設置和web目錄同步
svn co svn://localhost/"$name" "$path"/"$name"
#8.修改權限為WEB用戶
chown -R apache:apache "$path"/"$name"
#9.建立同步腳本,復制一份post-commit作為配置文件
cd /var/www/svndata/"$name"/hooks/
cp post-commit.tmpl post-commit
#10追加如下內容
BASEPATH=/var/www/webroot/"$name"
$WEBPATH="$BASEPATH/"
echo BASEPATH="$BASEPATH">> post-commit
echo WEBPATH="$BASEPATH/" >> post-commit
echo export LANG=zh_CN.UTF-8 >> post-commit
echo svn update $WEBPATH --username "$username" --password "$password" --no-auth-cache >> post-commit
#11 添加文件的可執行權限
chmod +x post-commit
#12 重啟svn
killall svnserve
svnserve -d -r /var/www/svndata