在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