Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
User Journal

Journal toby's Journal: Setting up CollabNet Subversion on Solaris 10, with SMF.

Download the CollabNet Subversion package for Solaris.

Edit Apache configuration, /etc/opt/CollabNet_Subversion/conf/httpd.conf , /etc/opt/CollabNet_Subversion/conf/extra/httpd-vhosts.conf

Fix some permissions:

# chown -R daemon:daemon /pool/YOURDOMAIN/svn/YOURREPO/
  # chown daemon:daemon /var/opt/CollabNet_Subversion/logs/

Set up SMF manifest.
This file is based on the manifest distributed with CoolStack, /opt/coolstack/lib/svc/manifest/cskapache2.xml . For modified text, see bottom of this post.

# svccfg import apache22-svn.xml

To see the configuration of the Apache built with CollabNet Svn,

# /opt/CollabNet_Subversion/bin/httpd -V
Server version: Apache/2.2.8 (Unix)
Server built: Oct 23 2008 15:51:40
Server's Module Magic Number: 20051115:11
Server loaded: APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture: 32-bit
Server MPM: Prefork
  threaded: no
    forked: yes (variable process count)
Server compiled with....
  -D APACHE_MPM_DIR="server/mpm/prefork"
  -D APR_HAS_SENDFILE
  -D APR_HAS_MMAP
  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
  -D APR_USE_FCNTL_SERIALIZE
  -D APR_USE_PTHREAD_SERIALIZE
  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
  -D APR_HAS_OTHER_CHILD
  -D AP_HAVE_RELIABLE_PIPED_LOGS
  -D DYNAMIC_MODULE_LIMIT=128
  -D HTTPD_ROOT="/"
  -D SUEXEC_BIN="//bin/suexec"
  -D DEFAULT_PIDLOG="var/opt/CollabNet_Subversion/run/httpd.pid"
  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
  -D DEFAULT_LOCKFILE="var/opt/CollabNet_Subversion/run/accept.lock"
  -D DEFAULT_ERRORLOG="/var/opt/CollabNet_Subversion/logs/error_log"
  -D AP_TYPES_CONFIG_FILE="etc/opt/CollabNet_Subversion/conf/mime.types"
  -D SERVER_CONFIG_FILE="etc/opt/CollabNet_Subversion/conf/httpd.conf"

conf/extra/httpd-vhosts.conf:

#
# Virtual Hosts
#...
 
Listen 443
 
#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
NameVirtualHost *:443
 
<VirtualHost *:443>
    ServerAdmin sysadmin@YOURDOMAIN.com.au
    DocumentRoot /pool/YOURDOMAIN/www/YOURDOMAIN/htdocs
    ServerName YOURDOMAIN
# ServerAlias www.dummy-host.example.com
    ErrorLog /pool/YOURDOMAIN/www/YOURDOMAIN/logs/error_log
    CustomLog /pool/YOURDOMAIN/www/YOURDOMAIN/logs/access_log combined
 
<Location /svn>
        Dav svn
        SVNParentPath /pool/YOURDOMAIN/svn
        AuthType Basic
        AuthName "Subversion"
        AuthUserFile /pool/YOURDOMAIN/www/YOURDOMAIN/htpasswd
# AuthzSVNAccessFile /pool/YOURDOMAIN/svn/svnpolicy
        Require valid-user
        SSLRequireSSL
                Order allow,deny
                Allow from all
</Location>
 
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
...and the rest of the SSL config
...can be copied from /opt/coolstack/apache2/conf/extra/httpd-ssl.conf

apache22-svn.xml:

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
    Copyright 2006-2007 Sun Microsystems, Inc. All rights reserved.
    CSKapache2 manifest - should reside in /var/svc/manifest/network.
-->
 
<service_bundle type='manifest' name='COLLABNETapache2:apache'>
 
<service
    name='network/http'
    type='service'
    version='1'>
 
    <!--
      Because we may have multiple instances of network/http
      provided by different implementations, we keep dependencies
      and methods within the instance.
    -->
 
    <instance name='apache22-svn' enabled='false'>
    <!--
      Wait for network interfaces to be initialized.
    -->
      <dependency name='network'
          grouping='require_all'
          restart_on='error'
          type='service'>
          <service_fmri value='svc:/milestone/network:default'/>
      </dependency>
 
      <!--
          Wait for all local filesystems to be mounted.
      -->
      <dependency name='filesystem-local'
          grouping='require_all'
          restart_on='none'
          type='service'>
          <service_fmri
              value='svc:/system/filesystem/local:default'/>
      </dependency>
 
      <!--
          Wait for automounting to be available, as we may be
          serving data from home directories or other remote
          filesystems.
      -->
      <dependency name='autofs'
          grouping='optional_all'
          restart_on='error'
          type='service'>
          <service_fmri
              value='svc:/system/filesystem/autofs:default'/>
      </dependency>
 
      <exec_method
          type='method'
          name='start'
          exec='/opt/CollabNet_Subversion/bin/apachectl start'
          timeout_seconds='60'>
      </exec_method>
 
      <exec_method
          type='method'
          name='stop'
          exec='/opt/CollabNet_Subversion/bin/apachectl stop'
          timeout_seconds='60'>
          <method_context />
      </exec_method>
 
      <exec_method
          type='method'
          name='refresh'
          exec='/opt/CollabNet_Subversion/bin/apachectl restart'
          timeout_seconds='60'>
          <method_context />
      </exec_method>
 
        <property_group name='httpd' type='application'>
            <stability value='Evolving' />
            <propval name='ssl' type='boolean' value='true' />
        </property_group>
 
        <property_group name='startd' type='framework'>
            <!-- sub-process core dumps shouldn't restart session -->
            <propval name='ignore_error' type='astring'
                    value='core,signal' />
        </property_group>
        <template>
            <common_name>
                <loctext xml:lang='C'>
                    Apache 2 HTTP server
                </loctext>
            </common_name>
<!--
            <documentation>
                <manpage title='httpd' section='8'
                    manpath='/opt/coolstack/apache2/man' />
                <doc_link name='apache.org'
                    uri='http://httpd.apache.org' />
            </documentation>
-->
        </template>
 
    </instance>
 
    <stability value='Evolving' />
</service>
 
</service_bundle>

This discussion has been archived. No new comments can be posted.

Setting up CollabNet Subversion on Solaris 10, with SMF.

Comments Filter:

Solutions are obvious if one only has the optical power to observe them over the horizon. -- K.A. Arsdall

Working...