openSUS 上的 Apache 2.2.9 / SSL、Subversion 1.5.2、Trac 0.11.1

WBOY
发布: 2016-06-07 15:30:52
原创
1326 人浏览过

本文介绍了在开放的 SUSE 11.0 服务器上安装 Subversion 存储库服务器(包括 Trac 项目管理)。什么是特拉克? Trac 是一个用于软件开发项目的增强型 wiki 和问题跟踪系统。一个

本文介绍了在开放的SUSE 11.0 服务器上安装包含 Trac 项目 管理 的 Subversion 存储库服务器。

什么是Trac

  • Trac 是用于软件开发项目的增强型 wiki 和问题跟踪系统。
  • 用于管理软件项目的集成系统。
  • 增强型 wiki。
  • 灵活的基于 Web 的问题跟踪器。
  • Subversion 版本控制系统的接口。

看看他们的主页:Trac Project Managment。

通常任何 Linux 发行版都附带预编译的软件包。但 如果我们想使用 Trac 项目管理,我们必须编译整个项目 事情我们自己。

系统说明:

标准 openSUSE 11.0 服务器,运行级别3。
不需要图形系统,因为它只是一个存储库服务器,仅此而已;-)

系统要求:

通过 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

现在我们开始:

下载、编译并安装 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>
登录后复制

现在我们为 Web 服务器生成 SSL 证书:

$>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>
登录后复制

下载、编译并安装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>
登录后复制

下载、编译并安装 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>
登录后复制

下载、编译并安装 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>
登录后复制

下载、编译并安装 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>
登录后复制

下载、编译并安装 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>
登录后复制

下载、编译并安装 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>
登录后复制

下载、编译并安装 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>
登录后复制

下载、编译并安装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>
登录后复制

下载、编译并安装 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>
登录后复制
这将对 python 源代码进行字节编译并将其安装在 python 安装的 site-packages 目录。目录 cgi-bin、templates、htdocs、wiki-default 全部复制到 $prefix/share/trac。 该脚本还将安装 trac-admin 命令行工具,用于创建 并维护项目环境。 “trac-admin”是 Trac 的指挥中心。

为 Subversion 创建“用户”和“组”:

$>groupadd svn-grp<br>$>useradd svn -G svn-grp -s /bin/bash<br>$>passwd svn  (some password for user svn)<br>
登录后复制

现在我们创建一个 Subversion 存储库:

$>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>
登录后复制

从存储库创建 Trac 环境:

$>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>
登录后复制

现在启用项目环境并启动 Apache2:

更改以下行并将其添加到您的配置中:
$>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 "/trac"><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>
登录后复制
打开您的网络浏览器并输入 “http://yourip-or-domain/trac”。 如果一切顺利,您可以看到欢迎消息。还可以看看 “浏览源”按钮,您可以看到添加的subversion “trunk”目录。

用户登录验证:

更改以下行并将其添加到您的配置中:
$>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 /trac><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>
登录后复制
如果您使用 ssl,请不要忘记更改“ssl.conf”和“httpd.conf”!

示例 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 "/.(cgi|shtml|phtml|php3?)$"><br>    SSLOptions +StdEnvVars<br></FilesMatch><br><Directory "/usr/local/apache2/cgi-bin"><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>
登录后复制

如果您收到来自 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>
登录后复制
现在启动 Apache2。
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板