日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > centos >内容正文

centos

Centos6.3下apache+svn部署web版本同步

發布時間:2025/7/14 centos 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Centos6.3下apache+svn部署web版本同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?前段時間一直忙項目,所以項目初期的svn服務就一直沒來得及更新,今天剛好忙完就將自己之前的配置重新總結了下,供大家參考。

? ? ?svn(subversion)作為一款開源的代碼版本管理軟件,目前普遍用在項目開發人員將本地的源代碼上傳到web測試服務器的一種同步軟件。

? ? ?其存儲版本數據有2種方式:BDB(一種事務安全型表類型)和默認的FSFS(一種不需要數據庫的存儲系統)。因為BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式相對安全一些。

? ? ?本篇博文就是為了實現開發人員使用windows下的svn客戶端將源代碼上傳到服務端svn版本庫,并利用svn的hock腳本將庫數據同步到apache目錄,達到實時測試web頁面的功能。


我的博客新站已經建好,更多新的內容即將在新站更新。。

歡迎訪問 ? ? http://www.showerlee.com



解決方案:


一.環境部署


操作系統: ? ? ? ?centos6.3 x64

SVN: ? ? ? ? ? ? ?subversion-1.8.0

apache: ? ? ? ? ? httpd-2.4.4



svn server(centos6.3 x64): 192.168.7.74 ?

svn client(win7 x64): 192.168.7.129 ? ?


1.關閉iptables和SELINUX

# service iptables stop

注:如需開啟防火墻,則添加如下一條規則打開svn 3690端口

# iptables -A INPUT -p tcp ?--dport 3690 -j ACCEPT

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------


2.同步時間

# ntpdate asia.pool.ntp.org


3.安裝apache

傳送門:http://showerlee.blog.51cto.com/2047005/1174141


4.關閉系統自帶svnserve

# service svnserve stop

# chkconfig svnserve off

注:本文檔為了與apache2.4.4配合不發生兼容問題,所以使用了最新編譯版本的svn,這里關閉是為了保證與rpm的版本不沖突.


二.svn安裝配置:

(svn server)


1.下載svn源碼包并安裝

# wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.8.0.tar.bz2

# tar jxvf subversion-1.8.0.tar.bz2

# cd subversion-1.8.0

創建安裝目錄

# mkdir -p /usr/local/svn


2.安裝svn依賴包并解壓模塊到svn根目錄:

# yum install expat* -y

# wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip

# unzip sqlite-amalgamation-3071501.zip

# mv sqlite-amalgamation-3071501 sqlite-amalgamation

之前未安裝apache請看紅字,若安裝apache直接無視:

-------------------------------------------------

注:因為之前已經編譯成功apache,所以apache下面的apr與apr-util組件已成功編譯到系統,如果您的系統未裝apache,則這里需要安裝apr與apr-util組件并在編譯svn時加上此組件的編譯參數

假設apr與apr-util后來單獨編譯到/usr/local/apr與/usr/local/apr-util目錄

安裝apr:

# cd ..

# wget http://apache.fayea.com/apache-mirror//apr/apr-1.5.0.tar.gz

# tar zxvf apr-1.5.0.tar.gz

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install

# cd ..

安裝apr-util:

# wget http://apache.fayea.com/apache-mirror//apr/apr-util-1.5.3.tar.gz

# tar zxvf apr-util-1.5.3

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util

# make && make install

# cd ..

編譯svn:

# cd subversion-1.8.0

# ./configure --prefix=/usr/local/svn -with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/bin/apu-1-config

--------------------------------------------------

編譯安裝

# cd subversion-1.8.0

# ./configure --prefix=/usr/local/svn

# make && make install


測試安裝是否成功

# /usr/local/svn/bin/svnserve --version

-----------------------------

svnserve,版本 1.8.0 (r1490375)

? 編譯于 Jun 29 2013,04:08:41 在 x86_64-unknown-linux-gnu

-----------------------------

注:centos6.3默認裝有svn服務端,版本為為1.6.11,其中svn命令在/usr/bin/svn下被環境變量加載,本文檔編譯的版本為1.8.0,不推薦使用低版本svn指令執行以下操作,可能會有報錯。這里為了區分建議直接全路徑訪問編譯后的高版本svn指令執行以下操作。

之前未安裝svnserve可執行如下命令加載環境變量:

# echo "PATH=$PATH:/usr/local/svn/bin;export PATH" >> /etc/profile

# source /etc/profile


3.配置svn

1).建立版本庫目錄(這個需安裝目錄區分開)

# mkdir -p /data/svndata/www.example.com


2).建立svn版本庫

# svnadmin create /data/svndata/www.example.com

注:執行此命令后svn自動在/data/svndata/目錄下添加必須的配置文件.

# ls /data/svndata/www.example.com

--------------------

conf db format hooks locks README.txt

--------------------

注:版本庫不同于一般的文件夾, 直接在操作系統上新建文件無法被SVN識別, 必須使用import等命令將文件導入版本庫.此為svn內部指令,create用于新建版本庫。請使用svn help查看詳細說明。


3).修改版本庫配置文件

# vi /data/svndata/www.example.com/conf/svnserve.conf

修改如下配置

-------------------------------

[general]

# 使非授權用戶無法訪問

anon-access = none

# 使授權用戶有寫權限

auth-access = write

# 指明密碼文件路徑

password-db = passwd

# 訪問控制文件

authz-db = authz

# 認證命名空間,subversion會在認證提示里顯示,并且作為憑證緩存的關鍵字。

realm = /data/svndata/www.example.com

--------------------------------


4).配置用戶

# vi /data/svndata/www.example.com/conf/passwd

添加如下內容

-----------------

[users]


user01 = 123456

user02 = 123456

-----------------

注:可以添加多個svn賬戶,=前后為用戶名和密碼


5).配置權限

# vi /data/svndata/www.example.com/conf/authz

添加以下內容

-------------

[/]

user01 = rw

user02 = r

------------

注:列出對各用戶的授權。包括只讀r,讀寫rw。沒有列出的用戶,則不允許訪問


6).啟動svn服務

# /usr/local/svn/bin/svnserve -d -r /data/svndata/


注:此指令用于啟動svn服務,-d指明以守護模式運行,svn自動在3690端口監聽。3690是默認端口,可以使用“--listen-port=”或者“--listen-host=”來指定其它端口以及非本地主機。-r選項用來指定svn服務的根目錄,這樣用戶就可以使用相對路徑訪問,而不用提供完整路徑。


7).檢查端口

# lsof -i:3690

----------------------------

COMMAND ? ?PID USER ? FD ? TYPE DEVICE SIZE/OFF NODE NAME

svnserve 65371 root ? ?3u ?IPv4 ?82329 ? ? ?0t0 ?TCP *:svn (LISTEN)

----------------------------


8).設置開機啟動

# echo "/usr/local/svn/bin/svnserve -d -r /data/svndata/" >> /etc/rc.local


到此svn初步搭建完畢


三.svn同步apache配置:

1.添加apache的svn模塊

# cd ~/subversion-1.8.0

# cp ./subversion/mod_dav_svn/.libs/mod_dav_svn.so ?/usr/local/apache2/modules/

# cp ./subversion/mod_authz_svn/.libs/mod_authz_svn.so ?/usr/local/apache2/modules/

# vi /usr/local/apache2/conf/httpd.conf

末行添加如下內容:

---------------------

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

---------------------

重啟apache服務:

# /usr/local/apache2/bin/apachectl restart


2.設置svn同步腳本

創建apache虛擬目錄

# mkdir -p /usr/local/apache2/htdocs/www.example.com ? ?

設置apache默認用戶為該虛擬目錄宿主

# chown -R daemon.daemon /usr/local/apache2/htdocs/www.example.com

創建腳本,將svn該版本庫數據同步到apache虛擬目錄

# cd /data/svndata/www.example.com/

# vi post-commit

------------------------

#!/bin/sh

export LANG=zh_CN.UTF-8

SVN=/usr/local/svn/bin/svn

WEB=/usr/local/apache2/htdocs/www.example.com

#默認無需輸入賬號密碼

#USERNAME=user01

#PASSWORD=123456

# SVN update $WEB --username $USERNAME --password $PASSWORD --no-auth-cache

$SVN update $WEB

------------------------

注:該腳本會在客戶端執行svn commit同時被觸發,從而將版本庫的數據同步到apache虛擬目錄

設置腳本可執行權限

# chmod a+x post-commit


使用checkout建立一個工作復本

# /usr/local/svn/bin/svn co svn://localhost/www.example.com ? ?/usr/local/apache2/htdocs/www.example.com/

按照提示操作

==============================================

認證領域: <svn://localhost:3690> /data/svndata/www.example.com/

“root”的密碼: 123456

認證領域: <svn://localhost:3690> /data/svndata/www.example.com/

“user01”的密碼: 123456


-----------------------------------------------------------------------

注意! ?你的密碼,對于認證域:


? <svn://localhost:3690> /data/svndata/www.example.com/


只能明文保存在磁盤上! ?如果可能的話,請考慮配置你的系統,讓 Subversion

可以保存加密后的密碼。請參閱文檔以獲得詳細信息。


你可以通過在“/root/.subversion/servers”中設置選項“store-plaintext-


passwords”為“yes”或“no”,

來避免再次出現此警告。

-----------------------------------------------------------------------

保存未加密的密碼(yes/no)?yes

A ? ?/usr/local/apache2/htdocs/www.example.com/1.txt

A ? ?/usr/local/apache2/htdocs/www.example.com/2.txt

A ? ?/usr/local/apache2/htdocs/www.example.com/3.txt

取出版本 3。


==============================================

svn認證成功,同步認證信息會保存在apache虛擬目錄 ./www.example.com/.svn/

注:這里同步的3個txt文件為版本庫已保存數據


3.重啟svn服務:

# killall svnserve

# /usr/local/svn/bin/svnserve -d -r /data/svndata/


四.svn客戶端配置

(svn client)

1.下載TortoiseSVN,并默認安裝

http://sourceforge.net/projects/tortoisesvn/files/latest/download?source=dlp

2.創建版本庫:

例如:

1).在F盤創建work文件夾并右鍵選擇SVN Checkout,創建svn客戶端版本庫


2).輸入svn遠程版本庫URL,以及本地版本庫存放路徑


3).輸入該版本庫用戶名密碼,默認該賬戶信息明文保存在/data/svndata/www.example.com/conf/passwd內


4).創建版本庫完成,顯示為第一個版本

3.同步版本庫

例如:在windows客戶端版本庫里有新的文件更新,如何將數據同步到web端

1).首先,右鍵該版本庫www.example.com目錄,選擇svn Update

相當于將svn服務器端的數據同步更新到本地,即獲取數據。


2).顯示更新到第四個版本

3).右鍵該版本庫www.example.com目錄,選擇svn Commit

相當于將本地客戶端的數據同步提交到svn服務端,即推送數據。


4).將需要推送的數據打鉤,OK即可完成操作.

5).顯示目前為第五個版本

查看是否成功將文件推送到apache虛擬目錄

# cd /usr/local/apache/htdocs

# pwd

# ls -l


---------大功告成-----------


轉載于:https://blog.51cto.com/showerlee/1240955

總結

以上是生活随笔為你收集整理的Centos6.3下apache+svn部署web版本同步的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。