- #!/bin/sh
-
- 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 - yum remove -y apr apr-devel apr-util apr-util-devel
-
- mkdir install
- cd install
-
- wget
http://apache.etoak.com//apr/apr-1.4.6.tar.gz - wget
http://apache.etoak.com//apr/apr-util-1.5.1.tar.gz - wget
http://nchc.dl.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.tar.gz - wget
http://mirrors.cnnic.cn/apache//httpd/httpd-2.2.24.tar.gz - wget
http://subversion.tigris.org/downloads/subversion-1.6.20.tar.gz - wget
http://subversion.tigris.org/downloads/subversion-deps-1.6.20.tar.gz - wget
http://peak.telecommunity.com/dist/ez_setup.py - wget
http://download.edgewall.org/trac/Trac-0.12.5.tar.gz - wget
http://ftp.edgewall.com/pub/genshi/Genshi-0.6.1-py2.6.egg - wget
https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz -
- mkdir /apt
- mkdir -p /data/svn
-
- tar zxf apr-1.4.6.tar.gz
- cd apr-1.4.6
- ./configure
- make && make install
- cd ../
-
- tar zxf apr-util-1.5.1.tar.gz
- cd apr-util-1.5.1
- ./configure --with-apr=/usr/local/apr/bin/apr-1-config
- make && make install
- cd ../
-
- tar zxf pcre-8.32.tar.gz
- cd pcre-8.32
- ./configure
- make && make install
- cd ../
-
- tar zxf httpd-2.2.24.tar.gz
- cd httpd-2.2.24
- ./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
- make && make install
- cd ../
-
- tar zxf subversion-1.6.20.tar.gz
- tar zxf subversion-deps-1.6.20.tar.gz
- cd subversion-1.6.20
- ./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
- make && make install
-
- make swig-py
- make check-swig-py
- make install-swig-py
- echo /apt/subversion/lib/svn-python > /usr/lib64/python2.6/site-packages/subversion.pth
-
- ln -s /apt/subversion/bin/svn /usr/bin/svn
-
- cd ../
-
- python ez_setup.py
- easy_install Genshi-0.6.1-py2.6.egg
- easy_install pysqlite
- easy_install babel
-
- tar zxf Trac-0.12.5.tar.gz
- cd Trac-0.12.5
- python setup.py extract_messages
- python setup.py update_catalog
- ./setup.py compile_catalog -f
- python ./setup.py install
- cd ../
-
- tar zxf mod_wsgi-3.4.tar.gz
- cd mod_wsgi-3.4
- ./configure --with-apxs=/apt/apache2/bin/apxs --with-python=/usr/bin/python
- make && make install
-
- echo "LoadModule wsgi_module modules/mod_wsgi.so" >> /apt/apache2/conf/httpd.conf
- echo "AddType text/html .py" >> /apt/apache2/conf/httpd.conf
-
- echo "export PATH=/apt/subversion/bin:\$PATH" >> /etc/profile
-
- mkdir /data/svn/conf
- mkdir /data/svn/repository
-
- /apt/subversion/bin/svnadmin create /data/svn/repository/ultimate
-
- /apt/apache2/bin/htpasswd -bc /data/svn/conf/passwd admin admin888
-
- echo "[groups]" > /data/svn/conf/authz
- echo "admin = admin" >> /data/svn/conf/authz
- echo "[ultimate:/]" >> /data/svn/conf/authz
- echo "@admin = rw" >> /data/svn/conf/authz
-
- chown -R daemon:daemon /data/svn
-
- echo "" >> /apt/apache2/conf/httpd.conf
- echo "
DAV svn" >> /apt/apache2/conf/httpd.conf - echo "
SVNParentPath /data/svn/repository" >> /apt/apache2/conf/httpd.conf - echo "
SVNListParentPath On" >> /apt/apache2/conf/httpd.conf - echo "
AuthType Basic" >> /apt/apache2/conf/httpd.conf - echo "
AuthName \"Subversion\"" >> /apt/apache2/conf/httpd.conf - echo "
AuthUserFile /data/svn/conf/passwd" >> /apt/apache2/conf/httpd.conf - echo "
AuthzSVNAccessFile /data/svn/conf/authz" >> /apt/apache2/conf/httpd.conf - echo "
Require valid-user" >> /apt/apache2/conf/httpd.conf - echo "" >> /apt/apache2/conf/httpd.conf
-
- sed -i 's/#ServerName
www.example.com:80/ServerName 127.0.0.1:80/g' /apt/apache2/conf/httpd.conf -
- /apt/apache2/bin/apachectl start
-
- cp /apt/apache2/bin/apachectl /etc/rc.d/init.d/httpd
- ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
- echo "# chkconfig: 345 85 15" >> /etc/rc.d/init.d/httpd
- echo "# description: Apache" >> /etc/rc.d/init.d/httpd
- chkconfig --add httpd
- chkconfig httpd on
-
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- service iptables save
-
- mkdir /data/trac
- trac-admin /data/trac initenv
- # init trac env
- chown -R daemon.daemon /data/trac
- cp trac.wsgi /data/trac
-
- echo "WSGIScriptAlias /trac /data/trac/trac.wsgi" >> /apt/apache2/conf/httpd.conf
- echo "" >> /apt/apache2/conf/httpd.conf
- echo "
WSGIApplicationGroup %{GLOBAL}" >> /apt/apache2/conf/httpd.conf - echo "
Order deny,allow" >> /apt/apache2/conf/httpd.conf - echo "
Allow from all" >> /apt/apache2/conf/httpd.conf - echo "" >> /apt/apache2/conf/httpd.conf
-
- easy_install
http://trac-hacks.org/svn/accountmanagerplugin/0.11 - easy_install
http://trac-hacks.org/svn/svnauthzadminplugin/0.12 -
- trac-admin /data/trac permission add admin TRAC_ADMIN
-
- echo "[components]" >> /data/trac/conf/trac.ini
- echo "trac.web.auth.loginmodule = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.admin.* = enabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.api.* = enabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.db.sessionstore = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.htfile.htdigeststore = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.htfile.htpasswdstore = enabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.http.* = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.notification.* = enabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.pwhash.* = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.register.* = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.svnserve.svnservepasswordstore = disabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.web_ui.* = enabled" >> /data/trac/conf/trac.ini
- echo "acct_mgr.web_ui.resetpwstore = disabled" >> /data/trac/conf/trac.ini
- echo "svnauthz.* = enabled" >> /data/trac/conf/trac.ini
-
- echo "[account-manager]" >> /data/trac/conf/trac.ini
- echo "password_store = HtPasswdStore" >> /data/trac/conf/trac.ini
- echo "htpasswd_hash_type = md5" >> /data/trac/conf/trac.ini
- echo "htpasswd_file = /data/svn/conf/passwd" >> /data/trac/conf/trac.ini
- echo "reset_password = false" >> /data/trac/conf/trac.ini
- echo "login_attempt_max_count = 4" >> /data/trac/conf/trac.ini
- echo "user_lock_time = 10" >> /data/trac/conf/trac.ini
- echo "user_lock_max_time = 86400" >> /data/trac/conf/trac.ini
- echo "user_lock_time_progression = 5" >> /data/trac/conf/trac.ini
- echo "[svnauthzadmin]" >> /data/trac/conf/trac.ini
- echo "show_all_repos = true" >> /data/trac/conf/trac.ini
- echo "read_only_display = false" >> /data/trac/conf/trac.ini
-
- sed -i 's#authz_file = #authz_file = /data/svn/conf/authz#' /data/trac/conf/trac.ini
-
- /apt/apache2/bin/apachectl restart