Heim  >  Artikel  >  Datenbank  >  Apache 2.2.9 / SSL, Subversion 1.5.2, Trac 0.11.1 on openSUS

Apache 2.2.9 / SSL, Subversion 1.5.2, Trac 0.11.1 on openSUS

WBOY
WBOYOriginal
2016-06-07 15:30:521328Durchsuche

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

This article describes the installation of a subversion Repository server including Trac Project Managment on a openSUSE 11.0 Server.

What is Trac?

  • Trac is an enhanced wiki and issue tracking system for software development projects.
  • An integrated system for managing software projects.
  • An enhanced wiki.
  • A flexible web-based issue tracker.
  • An interface to the Subversion revision control system.

Have a look at their homepage:Trac Project Managment.

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<br>$>wget http://gd.tuwien.ac.at/infosys/servers/http/apache/dist/httpd/httpd-2.2.9.tar.gz<br>...<br>$>tar xzvf httpd-2.2.9.tar.gz<br>$>cd httpd-2.2.9<br>$>./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<br>...<br>$>make<br>$>make install<br>

Now we generate an SSL certificate for the Webserver:

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

Download, compile and install mod_python-3.3.1

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

Download, compile and install Ruby 1.8.7

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

Download, compile and install Swig 1.3.36

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

Download, compile and install Neon 0.28.3

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

Download, compile and install Pysqlite 2.4.1

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

Download, compile and install Subversion 1.5.2

$>cd /usr/local/src<br>$>wget http://subversion.tigris.org/downloads/subversion-1.5.2.tar.gz<br>...<br>$>tar xzvf subversion-1.5.2.tar.gz<br>$>cd subversion-1.5.2<br>$>rm -rf /usr/local/lib/libsvn*<br>$>rm -rf /usr/local/lib/svn-python/*<br>$>rm -rf /usr/local/lib/libexpat* /lib/libexpat* /usr/lib/libexpat*<br>$>sh ./autogen.sh<br>$>./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<br>...<br>$>make<br>$>make install<br>$>make swig-py<br>$>make install-swig-py<br>$>make swig-pl<br>$>make install-swig-pl<br>$>echo /usr/local/lib/svn-python > /usr/lib/python/site-packages/svn-python.pth<br>

Download, compile and install Clearsilver 0.10.5

$>cd /usr/local/src<br>$>wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz<br>...<br>$>tar xzvf clearsilver-0.10.5<br>$>cd clearsilver-0.10.5<br>$>vi scripts/document.py (change the first line to "/usr/bin/python" instead of /bin/env python)<br>...<br>$>./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<br>...<br>$>make<br>$>make install<br>$>cd python<br>$>make install #(That should install the Python bindings for ClearSilver)<br>

Download, compile and install Docutils 0.5

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

Download, compile and install Trac 0.11.1

$>cd /usr/local/src<br>$>wget http://ftp.edgewall.com/pub/trac/Trac-0.11.1.tar.gz<br>...<br>$>tar xzvf  Trac-0.11.1.tar.gz<br>$>cd Trac-0.11.1.tar.gz<br>$>python ./setup.py install<br>...<br>$>cd /usr/local/apache2/htdocs<br>$>ln -s /usr/local/share/trac/htdocs trac (we link the trac stuff to apache2 htdocs)<br>
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<br>$>useradd svn -G svn-grp -s /bin/bash<br>$>passwd svn  (some password for user svn)<br>

Now we create a Subversion Repository:

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

Create a Trac Enviorment from the Repository:

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

Now enable the Project Enviorment and start Apache2:

Change and add the following lines to your configuration:
$>vi /usr/local/apache2/conf/httpd.conf<br>  (change the Apache user to "svn")<br>  (change the Apache group to "svn-grp")<br>...<br>add the following lines to point to your project:<br>------------------<br>SetEnv PYTHON_EGG_CACHE /home/svn<br>ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi<br><location><br>	SetEnv TRAC_ENV "/data/repos-new/MyProject"<br></location><br>------------------<br>  (save the configuration and start Apache2 like)<br>$>/usr/local/apache2/bin/apachectl start<br>
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<br>$>touch svn-auth-file<br>$>chown svn.svn-grp svn-auth-file<br>$>chmod 440 svn-auth-file<br>...<br>add all user who should have access to the Repository via:<br>$>htpasswd2 -cb /data/repos-new/svn-auth-file user password<br><br>and change the Location settings in httpd.conf:<br>------------------<br><location><br>  DAV svn<br>  SVNPath       /data/repos-new/MyProject<br>  AuthType Basic<br>  AuthName "Subversion Repository"<br>  AuthUserFile /data/repos-new/svn-auth-file<br>  Require valid-user<br></location><br>------------------<br>  (save the configuration and restart Apache2)<br>$>/usr/local/apache2/bin/apachectl stop<br>$>/usr/local/apache2/bin/apachectl startssl<br>
Don`t forget to change "ssl.conf" and "httpd.conf" if you use ssl!

sample ssl.conf:

SSLRandomSeed startup builtin<br>SSLRandomSeed connect builtin<br><br><ifdefine ssl><br>Listen 443<br><br>AddType application/x-x509-ca-cert .crt<br>AddType application/x-pkcs7-crl    .crl<br><br>SSLPassPhraseDialog  builtin<br>SSLSessionCache         dbm:/usr/local/apache2/logs/ssl_scache<br>SSLSessionCacheTimeout  300<br>SSLMutex  file:/usr/local/apache2/logs/ssl_mutex<br><br><virtualhost _default_:443><br>DocumentRoot "/usr/local/apache2/htdocs"<br>ServerName server.domain:443<br>ServerAdmin email@domain.com<br>ErrorLog /usr/local/apache2/logs/error_log<br>TransferLog /usr/local/apache2/logs/access_log<br><br>SSLEngine on<br>SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL<br>SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt<br>SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key<br><br><filesmatch><br>    SSLOptions +StdEnvVars<br></filesmatch><br><directory><br>    SSLOptions +StdEnvVars<br></directory><br>SetEnvIf User-Agent ".*MSIE.*" /<br>         nokeepalive ssl-unclean-shutdown /<br>         downgrade-1.0 force-response-1.0<br>CustomLog /usr/local/apache2/logs/ssl_request_log /<br>          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"<br>    RewriteEngine on<br>    RewriteCond   %{REQUEST_METHOD} ^(TRACE|TRACK)<br>    RewriteRule   .* - [F]<br></virtualhost><br><br></ifdefine><br>

If you get fault messages from Apache2?

* If you get the following:<br><em>Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server...</em><br><br>Add to /usr/local/apache2/httpd.conf "LoadModule" lines:<br>LoadModule dav_svn_module modules/mod_dav_svn.so<br>LoadModule authz_svn_module modules/mod_authz_svn.so<br>. And add "/usr/local/lib" to /etc/ld.so.conf and then run /etc/ldconfig.<br>...<br>* If you get the following:<br><br>ExtractionError: Can't extract file(s) to egg cache/n/nThe following error<br>occurred while trying to extract file(s) to the Python egg/ncache:/n/n  <br>[Errno 13] Permission denied: '/root/.python-eggs'/n/nThe Python egg cache <br>directory is currently set to:/n/n  /root/.python-eggs/n/nPerhaps your <br>account does not have write access to this directory?  <br>You can/nchange the cache directory by setting the PYTHON_EGG_CACHE environment/nvariable<br>to point to an accessible directory./n.<br><br>Add following line to /usr/local/apache2/bin/envvars:<br>export PYTHON_EGG_CACHE=/home/svn<br><br>
And start Apache2 now.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Akka2使用探索5(Typed Actors)Nächster Artikel:Oracle数据泵的使用