Intermediary transaction http://www.aliyun.com/zixun/aggregation/6858.html ">seo diagnose Taobao guest cloud host technology Hall
Install SVN and implement Nginx Web Sync update on the basis of WDCP one-click installation package
I. Installation
1. See if CVS are installed
Rpm-qa | grep subversion
2. Installation
Yum Install Subversion
3. Test Installation Success
/usr/bin/svnserve--version
If you are prompted with the following, you have successfully installed
--------------------------------------
Svnserve, Version 1.6.11 (r934486)
Compiled in Apr 11 2013,17:28:04
Copyright (C) 2000-2009 collabnet.
Subversion is open source software, see the http://subversion.tigris.org/site.
This product contains software developed by CollabNet (http://www.Collab.Net/).
The following version of the Library backend (FS) module is available:
* Fs_base: module can only operate BDB version library.
* FS_FS: module works with the text file (FSFS) version Library.
Cyrus SASL certification is available.
--------------------------------------------------------------
II. Configuration
1, create a new directory: Repos can be used to store svn all files
Mkdir-p/opt/svndata/repos
Note that the directory (project name) path here can be changed in the following format:
Mkdir-p directory path (such as: Mkdir-p/www/svn/project)
2, create a new version of the warehouse (using the Svnadmin Create directory warehouse path with the new directory to be consistent)
Svnadmin Create/opt/svndata/repos
3, modify the SVN version of the library profile
Vi/opt/svndata/repos/conf/svnserve.conf
Modified in the following format, where the realm value is the project name, in this case repos.
[General]
Anon-access = None
auth-access = Write
Password-db =/opt/svndata/project/conf/passwd
Authz-db =/opt/svndata/project/conf/authz
Realm = Repos
Note: Changes to user profiles take effect immediately and do not need to reboot SVN.
4, add Users
vi/opt/svndata/repos/conf/passwd
Adding an SVN user is very simple, just add a "Username=password" entry to the/opt/svn/project/conf/passwd file.
To test, I added the following:
[Users]
# Harry = Harryssecret
# sally = Sallyssecret
PM = PM_PW
Server_group = SERVER_PW
Client_group = CLIENT_PW
Test_group = TEST_PW
5. Modify User Access Policy
Vi/opt/svndata/repos/conf/authz
To record the user's access policy, the following are references:
[Groups]
project_p = PM
project_s = Server_group
Project_c = Client_group
project_t = Test_group
[project:/]
@project_p = RW
* =
[Project:/server]
@project_p = RW
@project_s = RW
* =
[Project:/client]
@project_p = RW
@project_c = RW
* =
[Project:/doc]
@project_p = RW
@project_s = RW
@project_c = RW
@project_t = RW
* =
The above information indicates that only PM has the right to read and write the root directory, Server_group can access the server directory, Client_group can access the client directory, everyone can access the doc directory.
Of course, the above is more complex permissions control, if only testing, can be simpler. Set up a user group, put all users into a user group, as follows:
[Groups]
admin = Pm,server_group,client_group,test_group
[/]
@admin = RW
On the control of the rights, this article does not describe the details, we can go to consult Niang.
5. Start SVN service
svnserve-d--listen-port 3690-r/opt/svndata/repos (run as Root)
If more than one project is being developed at the same time, you can open multiple SVN services via different ports, and remember to add the port number when using the TORTOISESVN operation.
6. Test SVN server
Go to Site root directory
Cd/www/web/repos/public_html
SVN co svn://127.0.0.1:3690/www/web/repos/public_html--username pm--password PM_PW
The following authentication prompts appear
-----------------------------------------------------------------------
Note! Your password, for the authentication domain:
Repos
Can only be saved in plaintext on disk! If possible, consider configuring your system to allow subversion
You can save the encrypted password. See the documentation for more information.
You can set the option "Store-plaintext-passwords" to "yes" or "no" in "/root/.subversion/servers".
To prevent this warning from appearing again.
-----------------------------------------------------------------------
Save unencrypted password (yes)?
Enter the "Yes" carriage because the version warehouse has not added any files, so take out the version 0, as follows:
Remove version 0.
Third, configure Post-commit, implement automatic synchronization svn version library files to the Web directory
To allow the Web server to synchronize directly after the modified code has been submitted to the SVN server. You need to configure SVN hooks to enter the hooks directory,
Cd/opt/svndata/repos/hooks
ls
You can see that there is a Post-commit.tmpl file, which is a template file that copies a copy in this directory, named Post-commit, and sets its user group to WWW and set it to executable:
CP Post-commit.tmpl Post-commit
Chown www:www Post-commit
chmod +x Post-commit
This will have access to the WWW directory.
The original code is all commented out. You can execute the shell command, which is invoked every time a commit completes.
The contents of the file refer to the following:
VI Post-commit
#!/bin/sh
Export LANG=ZH_CN. UTF-8
Repos= "$"
rev= "$"
Svn_path=/usr/bin/svn
Web_path=/web/web/repos/public_html
Log_path=/tmp/svn_update.log
#/usr/bin/svn Update--username user--password password $WEB _path--no-auth-cache
echo "nnn######### #开始提交" "Date" +%y-%m-%d%h:%m:%s "' ################## ' >> $LOG _path
Echo ' WhoAmI ', $REPOS, $REV >> $LOG _path
$SVN _path update--username user--password password $WEB _path--no-auth-cache >> $LOG _path
Chown-r www:www $WEB _path
Description:
1, #!/bin/sh description is to execute the shell command/* Set environment variables, if not set may appear update error
2, Export LANG=ZH_CN. UTF-8 is to resolve the SVN post commit Chinese garbled.
If you are GBK encoding may be prompted: Error output could not is translated from the native locale to UTF-8
This is a client-and server-encoded issue, by default Utf-8, which you can try to set up export LANG=ZH_CN. GBK or export Lang=en_us. UTF-8
#执行更新操作
3, SVN update–username your version of the library's username –password username password svn://Your IP address: port/web/web/repos/public_html
4. Chown-r www:www $WEB _path Change the folder owner to fit the WEB server
The original code is all commented out. You can execute the shell command, which is invoked every time a commit completes.
This article is excerpted from the Wdlinux Forum, reproduced please specify ~