在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
【Linux下配置SVN的bash脚本封装】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
推荐阅读
- 用PHP实现遍历删除目录及此目录下存放的所有文件
- 胎停体温会立马下降吗
- |人在职场,求人帮忙不用总低声下气,三招轻松搞定
- 谷雨|清明到谷雨,这4处“绝佳钓位”才是大板鲫的藏身处,下竿就中鱼
- 附下载地址 50款免费VR游戏倾情奉上
- 花了七天,写下一份超全重庆游玩攻略,热辣霸道有它足矣
- 俄罗斯小学生零下50度顶暴风雪回家 俄小学生顶暴风雪放学回家
- 仲夏时节最好享受下风
- 做梦梦见下大雨路上都是水 梦见下大雨路上都是水我在水里走回家
- 2022武汉三月份下雨多吗,武汉三月份降雨量怎么样