Wiki der Access Code Library

Gemeinsam zu mehr Effizienz in der Anwendungserstellung

Access Code Library:Installation der Website

Aus Access Code Library
Version vom 10:59, 6. Dez. 2009 bei Josef Pötzl (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Die Access Code Library besteht aus

  • phpBB 3
  • MediaWiki
  • WebSVN
  • Mantis

Dieser Artikel beschreibt die Installationsschritte und die notwendigen Schritte für das Zusammenspiel der einzelnen Programme.

Inhaltsverzeichnis

phpBB 3

Basisinstallation

website: http://www.phpbb.com/ bzw. http://www.phpbb.de/
Download: http://www.phpbb.de/downloads/ ... dort ist bereits das deutsche Sprachpaket integriert.
Installationsanleitung: http://www.phpbb.de/downloads/dokumentation.php => Schnelleinstieg

Bei der Installation von phpBB gibt es keine besonderen Punkte zu beachten. Die Installation sollte ohne Probleme ablaufen.

  1. Upload der Dateien ins gewünschte Webverzeichnis
  2. Aufruf des phpBB-Verzeichnisses mit dem Browser
  3. Die Installationsroutine von phpBB führt durch die restliche Installation

Anpassungen

Navigation

Links zum Wiki, Bugtracker und WebSVN im Header einfügen.

Header-Datei: overall_header.html

Textgestaltung

Zur Quellcode-Formatierung kann noch ein GeSHi-MOD eingebaut werden.

Anleitung: http://www.phpbb.de/community/viewtopic.php?f=88&t=169688

1. Download von GeSHi: http://qbnz.com/highlighter/

image:icon-info.gif
Die alte Version 1.0.8.4 installieren, da dort mehr Sprachen (z. B. VB) enthalten ist. Außerdem kann diese Version auch für die Wiki-Erweiterung genutzt werden.
--Poet 10:42, 6. Dez. 2009 (UTC)

2. GeSHi-Verzeichnis nach include kopieren

  ../include/
        - geshi/
              - contrib/
              - docs/
              - geshi/
              - geshi.php

3. Dateien bbcode.php und message_parser.php gemäß Anleitung anpassen

  bbcode.php, message_parser.php

mediawiki

Basisinstallation

website: http://www.mediawiki.org/
Download: http://www.mediawiki.org/wiki/Download
Installationsanleitung: http://www.mediawiki.org/wiki/Installation

  1. Upload der Dateien ins gewünschte Webverzeichnis
  2. Aufruf des MediaWiki-Verzeichnisses mit dem Browser
  3. Die Installationsroutine von MediaWiki führt durch die restliche Installation
    Die Datenbank vom phpBB-Forum verwenden und als Präfix mw_ wählen.

Anpassungen

Navigation
  • Links zum Forum, Bugtracker und WebSVN im Header einfügen.
    Anpassen über: .../index.php/MediaWiki:Sidebar

 * navigation
 ** mainpage|mainpage-description
 ** topics-url|topics
 ** randompage-url|randompage
 ** currentevents-url|currentevents
 ** recentchanges-url|recentchanges
 ** helppage|help
 * 
 ** http://forum.access-codelib.net|Forum
 ** http://bug.access-codelib.net|Bugtracker
 ** http://source.access-codelib.net|Subversion
 * SEARCH
 * TOOLBOX
 * LANGUAGES

Textgestaltung

Zur Quellcode-Formatierung kann eine GeSHi-Erweiterung eingebaut werden.

Anleitung + Download: Extension:SyntaxHighlight GeSHi

1. SyntaxHighlight_GeSHi-Verzeichnis in den extensions-Ordner kopieren

  ../extensions/
        - SyntaxHighlight_GeSHi/
              - geshi/ ... kann entfallen, wenn man den geshi-Ordner aus dem Forum verwendet.
              - README
            - SyntaxHighlight_GeSHi.class.php
          - SyntaxHighlight_GeSHi.i18n.php
          - SyntaxHighlight_GeSHi.php

2. LocalSettings.php anpassen

require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php");
Anmeldung über phpBB steuern

Damit sich ein Benutzer nicht mehrmals registrieren muss, werden die Benutzerden aus dem phpBB genutzt. Dafür kann wieder eine Extension verwendet werden. Anleitung + Download: Extension:PHPBB/Users Integration

1. Die php-Dateien aus dem Auth_phpBB-Verzeichnis in den extensions-Ordner kopieren

  ../extensions/
        - Auth_phpBB.php
        - iAuthPlugin.php
        - PasswordHash.php

2. Im phpBB-Forum eine Benutzergruppe Wiki einrichten

3. LocalSettings.php anpassen

// PHPBB User Database Plugin. (Requires MySQL Database)
require_once './extensions/Auth_phpBB.php';
 
$wgAuth_Config = array(); // Clean.
$wgAuth_Config['WikiGroupName'] = 'Wiki';      
$wgAuth_Config['UseWikiGroup'] = true;
$wgAuth_Config['UseExtDatabase'] = false;
 
$wgAuth_Config['UserTB']         = 'phpbb_users';            // Name of your PHPBB user table. (i.e. phpbb_users)
$wgAuth_Config['GroupsTB']       = 'phpbb_groups';           // Name of your PHPBB groups table. (i.e. phpbb_groups)
$wgAuth_Config['User_GroupTB']   = 'phpbb_user_group';       // Name of your PHPBB user_group table. (i.e. phpbb_user_group)
$wgAuth_Config['PathToPHPBB']    = '/pfad-zum-phpbb-forum/'; // Path from this file to your phpBB install.
 
// Local
$wgAuth_Config['LoginMessage']   = '<b>You need a phpBB account to login.</b><br /><a href="' . $wgAuth_Config['PathToPHPBB'] .
                                   'ucp.php?mode=register">Click here to create an account.</a>'; // Localize this message.
$wgAuth_Config['NoWikiError']    = 'You are not a member of the required phpBB group.'; // Localize this message.
 
$wgAuth = new Auth_phpBB($wgAuth_Config);     // Auth_phpBB Plugin.
Schnittstelle zu Subversion

Damit Dateiinformationen aus dem Subversion-Repository im Wiki angezeigt werden können, kann die SVNIntegration-Erweiterung installiert werden. Anleitung + Download: Extension:SVNIntegration

Damit diese Erweiterung funktioniert, muss PEAR und das PEAR-VersionControl_SVN-Paket installiert sein.

Anpassungen in PEAR
  • Patch Info.php.patch in ../PEAR/VersionControl/SVN/Info.php einarbeiten
  • Bei Bedarf den Pfad zu svn in ../PEAR/VersionControl/SVN.php einstellen. (Zeile 212)
var $svn_path = '/usr/local/bin/svn';
Anpassungen für Serverzertifikat

Bei Bedarf den svn-Parameter --config-dir in SVNIntegration.setup.php einstellen. Im Verzeichnis <config-dir>/auth/svn.ssl.server sollte dann die Kennung für den Server liegen, von dem das Zertifikat akzeptiert wurde. Das kann z. B. durch den Aufruf einer svn-Anweisung in einer Shell erfolgen.

// config-dir
$SVNIntegrationSettings['svnParams']['config-dir'] = "/pfad-zum-subversion-config-dir";

Notfalls könnten auch die svn-Parameter --trust-server-cert und --non-interactive ergänzt werden (diese müssen aber in SVNIntegration.body.php eingearbeitet werden).
Flexibler ist die Lösung mit dem Config-Verzeichnis, in dem die Server-Kennung gespeichert ist.

WebSVN

Basisinstallation

website: http://websvn.tigris.org/ und http://www.websvn.info/ Download: http://websvn.tigris.org/servlets/ProjectDocumentList

1. Upload ins Zielverzeichnis des Webservers

2. distconfig.php im Verzeichnis include auf config.php umbenennen

3. Parameter in config.php einstellen

  • Config-Dir einstellen
$config->setConfigPath('/pfad-zum-subversion-config-dir');
  • Repository anfügen
$config->addRepository('ClodeLib', 'https://svn.access-codelib.net/svn/codelib');
  • Bei Bedarf Text-Encoding einstellen
$config->setContentEncoding('ANSI');

4. Schreibrechte prüfen

  • Im Verzeichnis /cache/ benötigt der webserver Schreibzugriff, falls RSS genutzt werden soll.

5. Layout

Der angezeigte Text auf den WebSVN-Seiten kann über die Vorlagendateien eingestellt werden.
  • directory.tmpl
  • compare.tmpl
  • index.tmpl
  • diff.tmpl
  • header.tmpl
  • footer.tmpl
  • revision.tmpl
  • file.tmpl
  • blame.tmpl
  • log.tmpl

Anpassungen

Bug-Kennunng in WebSVN-Logdateien zum Wechsel in den Bug-Bericht aus Mantis verwenden

Dafür muss nur in der Konfigurationsdatei config.php folgende Zeile auskommentiert werden:

$config->useBugtraqProperties();

In den SVN-Bugtraq-Eigenschaften sind folgende Einstellungen vorzunehmen:

bugtraq:url gibt die URL zum jeweiligen Eintrag an. %BUGIG% wird automatisch mit den jeweiligen Nummern ersetzt. Damit die Bug/Issue-Nummer erkannt wird, ist die Eigenschaft bugtraq:logregex mit einem passenen regex-Ausdruck zu versehen. Der Wert in bugtraq:logregex besteht aus zwei Zeilen. In der ersten Zeile ist der Ausdruck zum Auffinden der Bug-Kennung. Die zweite Zeile ist zum Auslesen der Zahl aus dem gefundenen Text. Mit bugtraq:warnifnoissue wird eingestellt, ob eine Warnung angezeigt werden soll, wenn im Commit-Test kein Text enthalten ist. Diese Einstellung ist sinnvoll, da damit eine irrtümliche Commit-Anweisung ohne Kommentar verhindert wird.

Diese Eigenschaften können z. B. vom Windows-Client mittels TortoiseSVN eingestellt werden.

Mantis

Basisinstallation

website: http://www.mantisbt.org/
Download: http://www.mantisbt.org/download.php
Installationsanleitung: http://www.mediawiki.org/wiki/Installation

  1. Upload der Dateien ins gewünschte Webverzeichnis
  2. Aufruf des Mantis-Verzeichnisses mit dem Browser
  3. Die Installationsroutine von Mantis führt durch die restliche Installation
  4. Bei Bedarf die config_inc.php.sample nach config_inc.php umbenennen und die Parameter manuell einstellen.

Anpassungen

Links:

http://alt-tag.com/blog/archives/2006/11/integrating-mantis-and-subversion/
http://www.unitz.com/u-notez/2009/10/subversion-svn-integration-mantisbt/
http://www.mantisbt.org/wiki/doku.php/mantisbt:mantis_recipies
Mantis-Berichte über post-commit von Subversion versorgen

Das ist eine etwas umfangreichere Integration. Zusätzlich zu den Mantis-Dateien muss auch noch ein svn-Hook eingerichtet werden.

1. Parameter für checkin.php in config_inc.php einstellen

# --- SubVersion - commit (svn-hook: post-commit) ---
#
$g_source_control_account           = 'svn';
$g_source_control_notes_view_status = 'VS_PUBLIC';
$g_source_control_regexp            = '/\b(?:[Bb]ug|[Ii]ssue|[Bb]ugtracker)\s*[#]{0,1}(\d+)\b/i';
$g_source_control_set_status_to     = RESOLVED;
$g_source_control_set_resolution_to = FIXED;
$g_source_control_fixed_regexp 	    = '/\bfix(?:ed|es)\s+(?:bug|issue)?\s*[#]{0,1}(\d+)\b/i';

2. post-commit einstellen Beispiele:

file: <subversion-verzeichnis>/<Repository-Verzeichnis>/hooks/post-commit

#!/bin/bash
 
REPOS="$1"
REV="$2"
 
#Variante mit Bezug zum SVN-Verzeichnis in Mantis
# siehe: http://www.mantisbt.org/bugs/view.php?id=8070
COMMIT_MSG=$(svnlook log -r $REV $REPOS)
CHANGED_FILES=$(svnlook changed -r $REV $REPOS | sed s/^/SVN:$REV:/)
AUTHOR=$(svnlook author -r $REV $REPOS)
DATE=$(svnlook date -r $REV $REPOS)
 
/usr/bin/php -f /pfad-zum-mantis-ordner/scripts/checkin.php <<zzzMantiszzz
$COMMIT_MSG
 
--- Changeset ---
$DATE, $AUTHOR
SVN:Revision: $REV
$CHANGED_FILES
zzzMantiszzz
WebSVN-Seiten aus Mantis-Seiten auffrufen

[1] http://www.mantisbt.org/bugs/view.php?id=8070
[2] http://ascendwiki.cheme.cmu.edu/Automatic_URL_linking_to_ViewVC_from_Mantis

  • In config_defaults_inc.php am Ende folgenden Code einfügen:
/*
 * Subversion
 */
# --- SVN linking ---------------
# Converts SVN filenames into URLs pointing to your WebSVN server
# (e.g.: 'SVN:513:trunk/myproject/readme.txt')
# 
# insert the URL to your WebSVN server
# eg: http://www.mydomain.org/WebSVN/
# (include trailing slash, no php filename)
$g_svn_web					= 'http://source.access-codelib.net/';
 
# the WebSVN name of the repository
# (WebSVNs $config->addRepository())
$g_svn_web_repname      = 'codelib';
 
# when showing a file, WebSVN can either display
# a diff with the previous version (ON) or
# the whole file contents (OFF).
$g_svn_web_showdiff      = ON;


  • ../core/string_api.php den patch aus [1] bzw. [2] einarbeiten.
Unterschiede in WebSVN ansehen
Wiki-Schnittstelle zu Subversion einrichten
von Mantis zum Wiki wechseln

In die folgenden Code ergänzen:

# --- Wiki Integration ---
#
# Wiki Integration Enabled?
$g_wiki_enable = ON;
 
# Wiki Engine
$g_wiki_engine = 'mediawiki';
 
# Wiki namespace to be used as root for all pages relating to this mantis installation.
$g_wiki_root_namespace = 'mantis';
 
# URL under which the wiki engine is hosted. Must be on the same server.
# $g_wiki_engine_url = $t_protocol . '://' . $t_host . '/%wiki_engine%/';
$g_wiki_engine_url = $t_protocol . '://wiki.access-codelib.net/';
vom Wiki zum Mantis-Eintrag (Bug/Issue) wechseln

Dafür müsste ein Wiki-Vorlage ausreichen.

Beispiel: Bug #5

Mantis-Login an phpBB-Login binden
image:icon-note.gif
Eine in Mantis integrierte Lösung konnte ich nicht finden. Daher wurde als Notlösung direkt in den Quellcode von Mantis eingegriffen und die phpBB-Benutzer-Tabelle verwendet.
--Poet 10:40, 6. Dez. 2009 (UTC)
  • Die Tabelle phpbb_users um die fehlenden Felder ergänzen
  • Eine Sicht erstellen, die die Felder mit gemeinsamen Inhalt aber anderen Feldnamen in die Struktur der mantis_user_table überführt.
Damit diese Sicht statt der Mantis-User-Tabelle als Datenquelle verwendet wird, ist $g_db_table['mantis_user_table'] entsprechend anpassen.
  • Da phpBB und Mantis unterschiedliche Methoden zur Passworterzeugung verwenden, muss die Prüfung des Passworts auf die phpBB-Methode umgestellt werden.
Dazu ist die Klasse PasswordHash in der Datei PasswordHash.php hilfreichen. Sie ist in der MediaWiki-Erweiterung Auth_phpBB enthalten.
Damit die Mantis-Prüfung mit PasswordHash erfolgt, ist die Funktion auth_does_password_match in authentication_api.php anzupassen.
function auth_does_password_match( $p_user_id, $p_test_password ) {
	$t_configured_login_method = config_get( 'login_method' );
 
	if( LDAP == $t_configured_login_method ) {
		return ldap_authenticate( $p_user_id, $p_test_password );
	}
 
	$t_password = user_get_field( $p_user_id, 'password' );
	$t_login_methods = Array(
		MD5,
		CRYPT,
		PLAIN,
	);
	foreach( $t_login_methods as $t_login_method ) {
 
		// --- Passwort von phpBB verwenden
		if (!class_exists('PasswordHash'))
		{
			require_once './core/PasswordHash.php';
		}
		$PasswordHasher = new PasswordHash(8, TRUE);
 
		if ($PasswordHasher->CheckPassword($p_test_password, $t_password))
		{
			return true;
		}
	}
 
	return false;
}
  • Als nächstes muss noch die Passwortänderung in Mantis deaktiviert werden. Das wird durch Ändern der Funktion custom_function_default_auth_can_change_password in custom_function_api.php erreicht.
function custom_function_default_auth_can_change_password() {
	return false;
}
  • Als nächstes sollten noch die Datei signup_page.php und der Text in $s_no_password_request den Sprachdateien-Dateien angepasst werden, damit ein Benutzer zum Login des phpBB umgeleitet wird.

Sollte keine Sicht erstellt werden können, musst alle Select-Anweisungen, die auf die phpBB-Felder zugreifen, angepasst werden. Auch die SQL-Anweisungen mit Select * in user_api.php müssen geändert werden.

Zusammenfassung

Die Änderungen sind im Subversion-Repository access-codelib-website zu finden.