Heim > Datenbank > MySQL-Tutorial > 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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:30:52
Original
1392 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
And start Apache2 now.
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage