最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Apache2.2.9/SSL,Subversion1.5.2,Trac0.11.1onopenSUS

来源:动视网 责编:小采 时间:2020-11-09 07:59:22
文档

Apache2.2.9/SSL,Subversion1.5.2,Trac0.11.1onopenSUS

Apache2.2.9/SSL,Subversion1.5.2,Trac0.11.1onopenSUS:This article describes the installation of a subversion Repository server including Trac Project Managment on a open SUSE 11.0 Server. What is Trac Trac is an enhanced wiki and issue tracking system for software development projects. An
推荐度:
导读Apache2.2.9/SSL,Subversion1.5.2,Trac0.11.1onopenSUS:This article describes the installation of a subversion Repository server including Trac Project Managment on a open SUSE 11.0 Server. What is Trac Trac is an enhanced wiki and issue tracking system for software development projects. An


Normally any linux distribution comes with precompiled packages. But if we want to use the Trac Project Managment we must compile the whole thing ourself.

System Description:

Standard openSUSE 11.0 Server, runlevel3.
No graphical system is required because it is a Repository server and nothing more ;-)

Systemrequirements:

Install the follwing packages via openSUSE "YaST"

  • openssl
  • openssl-devel
  • autconf
  • libtool
  • flex
  • bison
  • libapr0
  • gcc-c++
  • gcc, make
  • glibc-devel
  • ctags
  • lzo, lzo-devel
  • gdbm, gdbm-devel
  • libxml2-devel
  • sqlite, sqlite-devel
  • python, python-devel, python-doc, python-setuptools, python-XML
  • Now we start:

    Download, compile and install Apache 2.2.9

    $>cd /usr/local/src
    $>wget http://gd.tuwien.ac.at/infosys/servers/http/apache/dist/httpd/httpd-2.2.9.tar.gz
    ...
    $>tar xzvf httpd-2.2.9.tar.gz
    $>cd httpd-2.2.9
    $>./configure --prefix=/usr/local/apache2 --enable-mods-shared="all ssl dav_lock" --enable-maintainer-mode --enable-dav --enable-dav-fs --enable-dav-lock --enable-cgi --enable-deflate --enable-auth-digest --enable-rewrite --enable-actions --enable-so --enable-ssl=/usr/ssl
    ...
    $>make
    $>make install

    Now we generate an SSL certificate for the Webserver:

    $>cd /usr/local/apache2/conf
    $>mkdir ssl.crt ssl.key
    $>openssl req -new -x509 -days 3650 -keyout ./ssl.key/server.key -out ./ssl.crt/server.crt -subj '/CN=host.domain Certificate'
    ...
    $>cp ssl.key/server.key ssl.key/server.key.org
    $>openssl rsa -in ssl.key/server.key.org -out ssl.key/server.key
    ...
    $>chmod 400 ssl.key/server.key
    $>chmod 400 ssl.key/server.key.org

    Download, compile and install mod_python-3.3.1

    $>cd /usr/local/src
    $>wget http://mirror.deri.at/apache/httpd/modpython/mod_python-3.3.1.tgz
    ...
    $>tar xzvf mod_python-3.3.1.tar.gz
    $>cd mod_python-3.3.1
    $>./configure --with-apxs=/usr/local/apache2/bin/apxs
    ...
    $>make
    $>make install

    Download, compile and install Ruby 1.8.7

    $>cd /usr/local/src
    $>wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz
    ...
    $>tar xzvf ruby-1.8.7.tar.gz
    $>cd ruby-1.8.7
    $>./configure
    ...
    $>make
    $>make install

    Download, compile and install Swig 1.3.36

    $>cd /usr/local/src
    $>wget http://downloads.sourceforge.net/swig/swig-1.3.36.tar.gz?modtime=1214350580&big_mirror=0
    ...
    $>tar xzvf swig-1.3.36.tar.gz
    $>cd swig-1.3.36
    $>./configure --with-python=/usr/bin/python --with-perl=/usr/bin/perl --with-ruby=/usr/local/bin/ruby --without-php4
    ...
    $>make
    $>make check
    $>make install

    Download, compile and install Neon 0.28.3

    $>cd /usr/local/src
    $>wget http://www.webdav.org/neon/neon-0.28.3.tar.gz
    ...
    $>tar xzvf neon-0.28.3.tar.gz
    $>cd neon-0.28.3
    $>./configure --with-expat --with-libxml2 --with-ssl --with-libs=/usr/ssl --enable-shared=yes
    ...
    $>make
    $>make install

    Download, compile and install Pysqlite 2.4.1

    $>cd /usr/local/src
    $>wget http://initd.org/pub/software/pysqlite/releases/2.4/2.4.1/pysqlite-2.4.1.tar.gz
    ...
    $>tar xzvf pysqlite-2.4.1.tar.gz
    $>cd pysqlite-2.4.1
    $>python setup.py build
    $>python setup.py install

    Download, compile and install Subversion 1.5.2

    $>cd /usr/local/src
    $>wget http://subversion.tigris.org/downloads/subversion-1.5.2.tar.gz
    ...
    $>tar xzvf subversion-1.5.2.tar.gz
    $>cd subversion-1.5.2
    $>rm -rf /usr/local/lib/libsvn*
    $>rm -rf /usr/local/lib/svn-python/*
    $>rm -rf /usr/local/lib/libexpat* /lib/libexpat* /usr/lib/libexpat*
    $>sh ./autogen.sh
    $>./configure --with-ssl=/usr/ssl --with-neon=/usr/local --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-apxs=/usr/local/apache2/bin/apxs --with-zlib=/usr/lib --with-swig=/usr/local/bin/swig PYTHON2=/usr/bin/python PERL=/usr/bin/perl --without-jdk --without-jikes --without-junit
    ...
    $>make
    $>make install
    $>make swig-py
    $>make install-swig-py
    $>make swig-pl
    $>make install-swig-pl
    $>echo /usr/local/lib/svn-python > /usr/lib/python/site-packages/svn-python.pth

    Download, compile and install Clearsilver 0.10.5

    $>cd /usr/local/src
    $>wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
    ...
    $>tar xzvf clearsilver-0.10.5
    $>cd clearsilver-0.10.5
    $>vi scripts/document.py (change the first line to "/usr/bin/python" instead of /bin/env python)
    ...
    $>./configure --with-apache=/usr/local/apache2 --with-python=/usr/bin/python --with-ruby=/usr/local/bin/ruby --with-perl=/usr/bin/perl --disable-csharp --disable-java --enable-gettext
    ...
    $>make
    $>make install
    $>cd python
    $>make install #(That should install the Python bindings for ClearSilver)

    Download, compile and install Docutils 0.5

    $>cd /usr/local/src
    $>wget http://prdownloads.sourceforge.net/docutils/docutils-0.5.tar.gz?download
    ...
    $>tar xzvf docutils-0.5.tgz
    $>cd docutils-0.5
    $>python setup.py build
    $>python setup.py install
    $>cd /tools
    $>./buildhtml.py ../

    Download, compile and install Trac 0.11.1

    $>cd /usr/local/src
    $>wget http://ftp.edgewall.com/pub/trac/Trac-0.11.1.tar.gz
    ...
    $>tar xzvf Trac-0.11.1.tar.gz
    $>cd Trac-0.11.1.tar.gz
    $>python ./setup.py install
    ...
    $>cd /usr/local/apache2/htdocs
    $>ln -s /usr/local/share/trac/htdocs trac (we link the trac stuff to apache2 htdocs)
    This will byte-compile the python source code and install it in the site-packages directory of your python installation. The directories cgi-bin, templates, htdocs, wiki-default are all copied to $prefix/share/trac. The script will also install the trac-admin command-line tool, used to create and maintain project environments. "trac-admin" is the command center of Trac.

    Create "user" and "group" for Subversion:

    $>groupadd svn-grp
    $>useradd svn -G svn-grp -s /bin/bash
    $>passwd svn (some password for user svn)

    Now we create a Subversion Repository:

    $>mkdir /data
    $>mkdir /data/repos-new
    $>chown -R svn.svn-grp /data/*
    ...
    $>now login as user "svn" !!! (you are now user svn) !!!
    $>svnadmin create /data/repos-new/MyProject --fs-type fsfs
    $>svn mkdir file:///data/repos-new/MyProject/trunk -m "trunk"
    ...
    $>su root (type password for root, you are now user root) !!!

    Create a Trac Enviorment from the Repository:

    $>trac-admin /data/repos-new/MyProjectTrac initenv
    change: Project Name [My Project]> to MyProject,
    change: Path to Repository [/var/svn/test] to /data/repos-new/MyProject
    $>chgrp -R svn-grp /data/repos-new/
    $>chmod -R 770 /data/repos-new/

    Now enable the Project Enviorment and start Apache2:

    Change and add the following lines to your configuration:
    $>vi /usr/local/apache2/conf/httpd.conf
    (change the Apache user to "svn")
    (change the Apache group to "svn-grp")
    ...
    add the following lines to point to your project:
    ------------------
    SetEnv PYTHON_EGG_CACHE /home/svn
    ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi

    SetEnv TRAC_ENV "/data/repos-new/MyProject"

    ------------------
    (save the configuration and start Apache2 like)
    $>/usr/local/apache2/bin/apachectl start
    Open your webbrowser and type "http://yourip-or-domain/trac". If everything is perfect you can see the welcome message. Also have a look at the "Browse Source" button, there you can see the added subversion "trunk" directory.

    Authentication for user login:

    Change and add the following lines to your configuration:
    $>cd /data/repos-new
    $>touch svn-auth-file
    $>chown svn.svn-grp svn-auth-file
    $>chmod 440 svn-auth-file
    ...
    add all user who should have access to the Repository via:
    $>htpasswd2 -cb /data/repos-new/svn-auth-file user password

    and change the Location settings in httpd.conf:
    ------------------

    DAV svn
    SVNPath /data/repos-new/MyProject
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /data/repos-new/svn-auth-file
    Require valid-user

    ------------------
    (save the configuration and restart Apache2)
    $>/usr/local/apache2/bin/apachectl stop
    $>/usr/local/apache2/bin/apachectl startssl

    Don`t forget to change "ssl.conf" and "httpd.conf" if you use ssl!

    sample ssl.conf:

    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin


    Listen 443

    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl .crl

    SSLPassPhraseDialog builtin
    SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
    SSLSessionCacheTimeout 300
    SSLMutex file:/usr/local/apache2/logs/ssl_mutex


    DocumentRoot "/usr/local/apache2/htdocs"
    ServerName server.domain:443
    ServerAdmin email@domain.com
    ErrorLog /usr/local/apache2/logs/error_log
    TransferLog /usr/local/apache2/logs/access_log

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
    SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key


    SSLOptions +StdEnvVars


    SSLOptions +StdEnvVars

    SetEnvIf User-Agent ".*MSIE.*" /
    nokeepalive ssl-unclean-shutdown /
    downgrade-1.0 force-response-1.0
    CustomLog /usr/local/apache2/logs/ssl_request_log /
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]


    If you get fault messages from Apache2?

    * If you get the following:
    Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server...

    Add to /usr/local/apache2/httpd.conf "LoadModule" lines:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    . And add "/usr/local/lib" to /etc/ld.so.conf and then run /etc/ldconfig.
    ...
    * If you get the following:

    ExtractionError: Can't extract file(s) to egg cache/n/nThe following error
    occurred while trying to extract file(s) to the Python egg/ncache:/n/n
    [Errno 13] Permission denied: '/root/.python-eggs'/n/nThe Python egg cache
    directory is currently set to:/n/n /root/.python-eggs/n/nPerhaps your
    account does not have write access to this directory?
    You can/nchange the cache directory by setting the PYTHON_EGG_CACHE environment/nvariable
    to point to an accessible directory./n.

    Add following line to /usr/local/apache2/bin/envvars:
    export PYTHON_EGG_CACHE=/home/svn

    And start Apache2 now.

    文档

    Apache2.2.9/SSL,Subversion1.5.2,Trac0.11.1onopenSUS

    Apache2.2.9/SSL,Subversion1.5.2,Trac0.11.1onopenSUS:This article describes the installation of a subversion Repository server including Trac Project Managment on a open SUSE 11.0 Server. What is Trac Trac is an enhanced wiki and issue tracking system for software development projects. An
    推荐度:
    标签: 11 1. ssl
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top