CentOS 安裝SVN Trac

  1. #!/bin/sh
  2.  
  3. yum install -y wget gcc gcc-c++ make sqlite sqlite-devel zlib zlib-devel perl perl-devel libxml2 libxml2-devel openssl openssl-devel expat expat-devel python python-devel swig
  4. yum remove -y apr apr-devel apr-util apr-util-devel
  5.  
  6. mkdir install
  7. cd install
  8.  
  9. wget http://apache.etoak.com//apr/apr-1.4.6.tar.gz
  10. wget http://apache.etoak.com//apr/apr-util-1.5.1.tar.gz
  11. wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.tar.gz
  12. wget http://mirrors.cnnic.cn/apache//httpd/httpd-2.2.24.tar.gz
  13. wget http://subversion.tigris.org/downloads/subversion-1.6.20.tar.gz
  14. wget http://subversion.tigris.org/downloads/subversion-deps-1.6.20.tar.gz
  15. wget http://peak.telecommunity.com/dist/ez_setup.py
  16. wget http://download.edgewall.org/trac/Trac-0.12.5.tar.gz
  17. wget http://ftp.edgewall.com/pub/genshi/Genshi-0.6.1-py2.6.egg
  18. wget https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
  19.  
  20. mkdir /apt
  21. mkdir -p /data/svn
  22.  
  23. tar zxf apr-1.4.6.tar.gz
  24. cd apr-1.4.6
  25. ./configure
  26. make && make install
  27. cd ../
  28.  
  29. tar zxf apr-util-1.5.1.tar.gz
  30. cd apr-util-1.5.1
  31. ./configure --with-apr=/usr/local/apr/bin/apr-1-config
  32. make && make install
  33. cd ../
  34.  
  35. tar zxf pcre-8.32.tar.gz
  36. cd pcre-8.32
  37. ./configure
  38. make && make install
  39. cd ../
  40.  
  41. tar zxf httpd-2.2.24.tar.gz
  42. cd httpd-2.2.24
  43. ./configure --prefix=/apt/apache2 --enable-dav --enable-so --enable-rewrite --enable-maintainer-mode --enable-modules=all --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
  44. make && make install
  45. cd ../
  46.  
  47. tar zxf subversion-1.6.20.tar.gz
  48. tar zxf subversion-deps-1.6.20.tar.gz
  49. cd subversion-1.6.20
  50. ./configure --prefix=/apt/subversion --with-apxs=/apt/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --without-berkeley-db --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python
  51. make && make install
  52.  
  53. make swig-py
  54. make check-swig-py
  55. make install-swig-py
  56. echo /apt/subversion/lib/svn-python > /usr/lib64/python2.6/site-packages/subversion.pth
  57.  
  58. ln -s /apt/subversion/bin/svn /usr/bin/svn
  59.  
  60. cd ../
  61.  
  62. python ez_setup.py
  63. easy_install Genshi-0.6.1-py2.6.egg
  64. easy_install pysqlite
  65. easy_install babel
  66.  
  67. tar zxf Trac-0.12.5.tar.gz
  68. cd Trac-0.12.5
  69. python setup.py extract_messages
  70. python setup.py update_catalog
  71. ./setup.py compile_catalog -f
  72. python ./setup.py install
  73. cd ../
  74.  
  75. tar zxf mod_wsgi-3.4.tar.gz
  76. cd mod_wsgi-3.4
  77. ./configure --with-apxs=/apt/apache2/bin/apxs --with-python=/usr/bin/python
  78. make && make install
  79.  
  80. echo "LoadModule wsgi_module modules/mod_wsgi.so" >> /apt/apache2/conf/httpd.conf
  81. echo "AddType text/html .py" >> /apt/apache2/conf/httpd.conf
  82.  
  83. echo "export PATH=/apt/subversion/bin:\$PATH" >> /etc/profile
  84.  
  85. mkdir /data/svn/conf
  86. mkdir /data/svn/repository
  87.  
  88. /apt/subversion/bin/svnadmin create /data/svn/repository/ultimate
  89.  
  90. /apt/apache2/bin/htpasswd -bc /data/svn/conf/passwd admin admin888
  91.  
  92. echo "[groups]" > /data/svn/conf/authz
  93. echo "admin = admin" >> /data/svn/conf/authz
  94. echo "[ultimate:/]" >> /data/svn/conf/authz
  95. echo "@admin = rw" >> /data/svn/conf/authz
  96.  
  97. chown -R daemon:daemon /data/svn
  98.  
  99. echo "" >> /apt/apache2/conf/httpd.conf
  100. echo "    DAV svn" >> /apt/apache2/conf/httpd.conf
  101. echo "    SVNParentPath /data/svn/repository" >> /apt/apache2/conf/httpd.conf
  102. echo "    SVNListParentPath On" >> /apt/apache2/conf/httpd.conf
  103. echo "    AuthType Basic" >> /apt/apache2/conf/httpd.conf
  104. echo "    AuthName \"Subversion\"" >> /apt/apache2/conf/httpd.conf
  105. echo "    AuthUserFile /data/svn/conf/passwd" >> /apt/apache2/conf/httpd.conf
  106. echo "    AuthzSVNAccessFile /data/svn/conf/authz" >> /apt/apache2/conf/httpd.conf
  107. echo "    Require valid-user" >> /apt/apache2/conf/httpd.conf
  108. echo "" >> /apt/apache2/conf/httpd.conf
  109.  
  110. sed -i 's/#ServerName www.example.com:80/ServerName 127.0.0.1:80/g' /apt/apache2/conf/httpd.conf
  111.  
  112. /apt/apache2/bin/apachectl start
  113.  
  114. cp /apt/apache2/bin/apachectl /etc/rc.d/init.d/httpd
  115. ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
  116. echo "# chkconfig: 345 85 15" >> /etc/rc.d/init.d/httpd
  117. echo "# description: Apache" >> /etc/rc.d/init.d/httpd
  118. chkconfig --add httpd
  119. chkconfig httpd on
  120.  
  121. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  122. service iptables save
  123.  
  124. mkdir /data/trac
  125. trac-admin /data/trac initenv
  126. # init trac env
  127. chown -R daemon.daemon /data/trac
  128. cp trac.wsgi /data/trac
  129.  
  130. echo "WSGIScriptAlias /trac /data/trac/trac.wsgi" >> /apt/apache2/conf/httpd.conf
  131. echo "" >> /apt/apache2/conf/httpd.conf
  132. echo "    WSGIApplicationGroup %{GLOBAL}" >> /apt/apache2/conf/httpd.conf
  133. echo "    Order deny,allow" >> /apt/apache2/conf/httpd.conf
  134. echo "    Allow from all" >> /apt/apache2/conf/httpd.conf
  135. echo "" >> /apt/apache2/conf/httpd.conf
  136.  
  137. easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11
  138. easy_install http://trac-hacks.org/svn/svnauthzadminplugin/0.12
  139.  
  140. trac-admin /data/trac permission add admin TRAC_ADMIN
  141.  
  142. echo "[components]" >> /data/trac/conf/trac.ini
  143. echo "trac.web.auth.loginmodule = disabled" >> /data/trac/conf/trac.ini
  144. echo "acct_mgr.admin.* = enabled" >> /data/trac/conf/trac.ini
  145. echo "acct_mgr.api.* = enabled" >> /data/trac/conf/trac.ini
  146. echo "acct_mgr.db.sessionstore = disabled" >> /data/trac/conf/trac.ini
  147. echo "acct_mgr.htfile.htdigeststore = disabled" >> /data/trac/conf/trac.ini
  148. echo "acct_mgr.htfile.htpasswdstore = enabled" >> /data/trac/conf/trac.ini
  149. echo "acct_mgr.http.* = disabled" >> /data/trac/conf/trac.ini
  150. echo "acct_mgr.notification.* = enabled" >> /data/trac/conf/trac.ini
  151. echo "acct_mgr.pwhash.* = disabled" >> /data/trac/conf/trac.ini
  152. echo "acct_mgr.register.* = disabled" >> /data/trac/conf/trac.ini
  153. echo "acct_mgr.svnserve.svnservepasswordstore = disabled" >> /data/trac/conf/trac.ini
  154. echo "acct_mgr.web_ui.* = enabled" >> /data/trac/conf/trac.ini
  155. echo "acct_mgr.web_ui.resetpwstore = disabled" >> /data/trac/conf/trac.ini
  156. echo "svnauthz.* = enabled" >> /data/trac/conf/trac.ini
  157.  
  158. echo "[account-manager]" >> /data/trac/conf/trac.ini
  159. echo "password_store = HtPasswdStore" >> /data/trac/conf/trac.ini
  160. echo "htpasswd_hash_type = md5" >> /data/trac/conf/trac.ini
  161. echo "htpasswd_file = /data/svn/conf/passwd" >> /data/trac/conf/trac.ini
  162. echo "reset_password = false" >> /data/trac/conf/trac.ini
  163. echo "login_attempt_max_count = 4" >> /data/trac/conf/trac.ini
  164. echo "user_lock_time = 10" >> /data/trac/conf/trac.ini
  165. echo "user_lock_max_time = 86400" >> /data/trac/conf/trac.ini
  166. echo "user_lock_time_progression = 5" >> /data/trac/conf/trac.ini
  167. echo "[svnauthzadmin]" >> /data/trac/conf/trac.ini
  168. echo "show_all_repos = true" >> /data/trac/conf/trac.ini
  169. echo "read_only_display = false" >> /data/trac/conf/trac.ini
  170.  
  171. sed -i 's#authz_file = #authz_file = /data/svn/conf/authz#' /data/trac/conf/trac.ini
  172.  
  173. /apt/apache2/bin/apachectl restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章