Centos 6让SVN提交文件自动更新到nginx的WEB目录

简介:

最近我在centos 6的系统中安装了subversion 的 svn 服务器。同时也安装了 nginx WEB服务器。现在我想让 svn 提交的文件自动更新到nginx所指定的web目录中。这样一来,我就不需要提交之后,再通过FTP将文件上传到nginx的web目录,再通过浏览器去访问这个web目录里面的脚本。所以,就有了本篇文章纪实。

环境介绍:
1)系统centos 6.3 64位。
2)服务器端SVN版本 1.6.11。
3)WEB服务器nginx版本 0.8.46。
4)nginx的WEB目录:/data0/htdocs/wwwroot
5)svn仓库中心目录:/opt/svn/

配置步骤如下:
1、在svn仓库中心下创建一个创建wwwroot,shell命令如下:

svnadmin create /opt/svn/wwwroot/

2、配置wwwroot创建,shell命令如下:

cd /opt/svn/wwwroot/conf/vim svnserve.conf

找到以下的内容,并在行首注释符号#删掉。

[general]anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

为 svntest 项目增加svn用户,并且赋予权限值:

vi authz

在文件中添加如下代码:

[wwwroot:/]wwwroot = rw

代码的意思是:为 wwwroot 项目添加一个wwwroot 的用户,并且,这个用户对于 wwwroot 项目拥有读写权限。

给用户分配密码,执行如下命令:

vi passwd

输入如下内容:

wwwroot =123456

配置好SVN之后,请查看你的 svn 是否启动,如果没有启动,用以下命令启动:

svnserve -d -r /opt/svn/

3、配置项目仓库的钩子配置。
可以把钩子看成是WEB项目与SVN项目仓库之间的一个关联。通过向svn项目仓库提交脚本代码,利用钩子shell脚本可以自动向web项目中将脚本文件更新过去。

进入SVN项目仓库钩子所在目录,shell命令:

cd /opt/svn/wwwroot/hooks/

然后执行如下复制命令:

cp post-commit.tmpl post-commit

然后编辑post-commitshell脚本,shell命令如下:

vi post-commit

将里面的所有代码注释掉,然后输入如下代码:

cd /data0/htdocs/wwwroot
/usr/bin/svn cleanup
/usr/bin/svn up /data0/htdocs/wwwroot/--username "wwwroot"--password "123456"

这个地方需要注意,我们先进入到wwwroot目录下进行SVN清理(cleanup),消除一些隐患。然后再执行将 svn wwwroot项目创建里面的代码同步更新到web项目目录/data0/htdocs/wwwroot/中去。这里的账号wwwroot和密码123456是我们创建SVN wwwroot项目仓库的时候指定的。

这个时候,我们去提交一个文件到svn,这时会发现在/data0/htdocs/wwwroot/目录下同步更新过来了。

如果没有反应,会有两个地方可能出错:
1)配置文件与路径写得不对,可以直接通过手工方式去执行post-commit看看有没有报错。
2)权限不对。即/data0/htdocs/wwwroot权限是否足以满足脚本的读写。




     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1839099,如需转载请自行联系原作者



相关文章
|
4月前
|
Linux
inux CentOS 7 如何进入默认工作目录 [root@localhost ~]
这篇文章讨论了如何在Linux CentOS 7系统中进入默认工作目录。默认工作目录通常是用户的主目录,表示为`[root@localhost ~]`,其中波浪号`~`代表当前用户的主目录。文章可能还包含了如何打开这个默认工作目录的步骤和说明。不过,具体内容没有提供详细信息,通常可以通过打开终端并使用`cd ~`命令来进入默认工作目录。如果需要更详细的步骤或有特定的问题,可能需要查看原文获取更多信息。
|
2月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
|
2月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
163 0
|
2月前
|
Linux 数据安全/隐私保护 Windows
centos 7.2 搭建svn服务器
centos 7.2 搭建svn服务器
53 0
|
4月前
|
应用服务中间件 Linux 网络安全
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
这篇文章提供了在CentOS 7系统上通过源码安装Nginx的详细步骤,包括从官网下载Nginx源码包、上传至虚拟机、解压、删除压缩包、编译安装前的配置、安装PCRE库(因为Nginx使用PCRE库解析正则表达式)、安装zlib和OpenSSL库(用于支持HTTPS协议)、重新编译Nginx、安装后启动Nginx服务、关闭服务、修改默认端口、以及重启服务测试等步骤。文章还提供了相关命令和操作截图,帮助用户更好地理解和执行安装过程。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
|
4月前
|
JavaScript 应用服务中间件 PHP
nginx server 禁止特定目录下的某类文件访问
【8月更文挑战第26天】这段Nginx配置代码旨在保护`/uploads/`目录下的文件,禁止执行任何`.php`, `.html`, `.htm`, 或 `.js`等潜在有害文件,即便被访问也无法运行。取而代之的是重定向到首页。为了实现这一设置,用户需要定位到对应子域名的`.conf`配置文件中进行相应修改。若网站支持多个访问域名,则需确保在正确的`.conf`文件中实施此配置。
100 1
|
4月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
149 1
|
4月前
|
运维 网络协议 Linux
揭秘CentOS 7:系统目录奥秘大起底,网卡配置秒变高手,让你的服务器管理飞一般的感觉!
【8月更文挑战第5天】CentOS 7作为RHEL的社区版本,以其稳定性和丰富功能广受好评。本文通过案例分析介绍其系统目录结构及网卡配置方法。系统目录如/(根)、/bin(基本命令)、/boot(启动文件)、/dev(设备文件)、/etc(配置文件)、/home(用户目录)和/lib(共享库)等各司其职。网卡配置通过编辑/etc/sysconfig/network-scripts/下的ifcfg文件实现,如设置ens33接口的静态IP地址、子网掩码、网关和DNS服务器,并通过重启网络服务使配置生效。这是系统管理员必备的技能之一。
64 2
|
4月前
|
应用服务中间件 Linux nginx
【Azure 应用服务】App Service For Container 配置Nginx,设置/home/site/wwwroot/目录为启动目录,并配置反向代理
【Azure 应用服务】App Service For Container 配置Nginx,设置/home/site/wwwroot/目录为启动目录,并配置反向代理
|
4月前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
804 0