Installation
VuFind 2.x unter Windows (Aug.
2014/Jan. 2015/März 2016)
(Beruht auf der
Anleitung
von vufind/org)
Die englische
Fassung wurde gestrafft, präzisiert und wo
nötig ergänzt. Zu den einzelnen Abschnitten wurden
jeweils während der Arbeiten Notizen geschrieben, die im zweiten
Teil gesammelt sind und auf die vom ersten Teil verlinkt
wird. Viele Stolpersteine konnten in Korrespondenz mit dem
VuFind-Entwickler, Demian Katz, beseitigt werden, dem hiermit
ausdrücklich gedankt sei, wie auch verschiedenen Kollegen in
Deutschland, die mit ihren Erfahrungen geholfen haben.
Praktisch durchgeführt wurde alles am Beispiel der
Katalogdaten des Deutschen
Historischen Instituts Warschau (Anwender seit 20 Jahren), wo
man diesen
Katalog inzwischen als
Ablösung des bisherigen PHPAC in Betrieb hat. Zudem wurde, neben
weiteren Modifikationen, auch der VuFind-Index des GBV (sog. "findex")
angebunden.
Die Dokumentation
zur Vorversion kann evtl. mit herangezogen werden, obwohl
für einen Neubeginn nur die aktuelle Version zu empfehlen ist.
Für die Version 2.x wurde bewußt ein neuer,
ballastfreier Anfang gemacht und hierbei nur so knapp wie
möglich genau das protokolliert, was zum Erstellen einer
funktionsfähigen Instanz gebraucht wird. Für
weitergehende lokale Anpassungen kann die alte Doku immer noch Hilfe
bieten.
Normdaten sind noch nicht einbezogen, obwohl diese Möglichkeit besteht.
Tip:
Die offizielle
Doku (englisch) ist ein Wiki mit Suchfunktion.
Wichtiger Hinweis:
Die Umwandlung der allegro-Daten
(s. 10.) und ihre Bereitstellung für VuFind ist das geringste
Problem,
auch das regelmäßige Updating ist einfach und geht
schnell.
Die notwendigen Parameter (Wandlung allegro-Daten -> MARC-Daten)
sind vorhanden und bei Bedarf leicht anzupassen.
Der sog "Index"
des VuFind-Systems ist in keiner Weise mit einem allegro-Index
vergleichbar. Er besteht aus einer Anzahl Dateien, darunter eine, in
der die kompletten komprimierten MARC-Datensätze stehen, die man
in VuFind dann in der
Intern-Anzeige zu sehen bekommt, s.a. 11a. Direktes Bearbeiten in den
Solr-Daten ist nicht möglich, jedoch kann man Datensätze auch
einzeln neu einspeisen und ältere dadurch ersetzen.
VuFind kann nur in einem Solr-Index suchen, auch
nicht z.B. in einem Pica-Index. Daher ist das Umwandeln und "Indexieren"
in jeder Umgebung erforderlich, und das bedeutet auch, daß
ein
VuFind-Index nicht ständig aktuell sein kann. Ein Updating ist
daher in jedem Fall notwendig. Mit allegro
ist es gelöst: Jederzeit kann man die allegro-Logdatei umwandeln und einspeisen. Nur die Anzeige von Statusdaten ("verliehen"
etc.)
würde noch zusätzliche PHP-Skripte erfordern (eine
sog.
DAIA-Schnittstelle). Für Präsenzbibliotheken ist dies
kein
Thema.
ERSTER TEIL :
Installation und Konfiguration der Komponenten
0.
Erfordernisse
Sehr wichtig:
MySQL auf derselben Maschine
Die
Seite requirements beachten
für die Fremdpakete! Andere Versionen auf eigenes Risiko...
Installation
mit Xampp ist etwas einfacher, aber nicht für
Produktionsumgebung empfohlen.
Hier
wird angenommen, daß das VuFind-Paket in c:\vufind liegt und
Apache 2.4 in c:\apache24. Das ist nicht
zwingend.
1.
Download VuFind
-->Notizen
Von:
http://vufind.org/downloads.php.
Das .zip-Paket ist für Windows zu empfehlen. Alles entpacken
in c:/vufind.
Eingriffe werden nötig in den Ordnern [und um diese muß man sich bei Versionswechsel kümmern, d.h. die Eingriffe nachvollziehen]
local:
Lokale
Versionen gewisser Dateien, z.B. die httpd-vufind.conf für
Apache, und aus
config die vufind/config.ini
import: wichtig: marc.properties.
(Hier
auch die jetty-Dateien, diese aber ohne Änderungsbedarf)
public: Nur die
Startdatei
index.php! (Wird
automatisch erstellt)
solr: in biblio/index liegen die
Solr-Indexdaten
module:
z.B.
VuFind/src/VuFind/RecordDriver/SolrDefault.php sog.
getter-Funktionen für MARC
oder .../SolrMarc.php
(ist umfassender! "extends SolrDefault")
themes: in bootstrap3/templates/RecordDriver/SolrDefault
sind
die Datenanzeige-Templates
bis Version 2.3: blueprint statt bootstrap3, nun aber obsolet.
Achtung: In config nichts
ändern, sondern zu ändernde Dateien nach local kopieren, in
den jeweils entsprechende Unterordner dort.
Am allerwichtigsten ist local\config\vufind\config.ini mit
sehr vielen, z.T. unverzichtbaren lokalen Einstellungen, z.B. auch theme.
Nach Änderung: Apache
neu starten, nicht VuFind, das liest diese Datei gar nicht!!! Sie ist
nur für Solr
wichtig.
Das
gesamte Paket (ohne Apache und MySQL, PHP und Java) hat gut 6000
Dateien in gut 3400 Verzeichnissen. Die meisten werden wohl nicht
wirklich gebraucht, und nur um sehr wenige muß man sich
kümmern - diese werden nachfolgend behandelt.
2.
Webserver: Apache 2.4 -->
Notizen
Von:
http://httpd.apache.org/download.cgi.
Die typischen Optionen des Installationsassistenten sollten ok sein.
Oder: http://www.apachehaus.com/cgi-bin/download.plx
Apache als
Dienst installieren, damit es beim Hochfahren des Rechners
automatisch startet.
In
der Konfig-Datei conf\httpd.conf das
# vor dieser Zeile wegnehmen:
LoadModule rewrite_module modules/mod_rewrite.so
(d.h. den mod_rewrite Modul aktivieren)
Und
auch diese Zeile muß sein: (index.php
heißt die Startdatei)
DirectoryIndex index.html index.php
Fehlersuche: Wenn z.B. ein
ganz leeres Ergebnis im Browser ankommt, dann im Apache-Ordner
in logs/error.log
nachsehen
Hinweis: Im
Apache-Bereich liegen keine Dateien für VuFind, die liegen
alle unter c:\vufind
Anm.:
Wenn es Datensätze gibt mit '/' in der Idnr, dann AllowEncodedSlashes
on
im Abschnitt <VirtualHost> der httpd.conf !
3. MySQL
5.6 -->
Notizen
Von:
http://dev.mysql.com/downloads/mysql/5.0.html#downloads.
Typische Optionen des Install-Assistenten übernehmen. Wenn man
ein root-Paßwort setzt, (keine schlechte Idee),
dieses unbedingt notieren.
In der MySQL-Datenbank liegen keine Katalogdaten, sondern die Daten registrierter Nutzer, deren "Tags" u.a.
Wichtige
Datei: libmysql.dll
Das library
file libmysql.dll ist
nötig. Fehler wie "missing database driver" kommen, wenn
Windows es nicht finden kann. Wenn es solchen Ärger gibt,
dann:
1.)
libmysql.dll in
den PHP Ordner legen und diesen in den Systempfad eintragen
(wie unten beschrieben beim Java JDK ).
2.)
Wenn libmysql.dll nicht im
PHP-Ordner, könnte es im MySQL-Ordner sein (z.B. C:\Program
Files\MySQL\MySQL Server 5.0\bin). Es kann helfen, diesen
Ordner in den PATH zu setzen. Warnung: Wenn die
Datei im PHP- und im MySQL-Ordner ist,
dann ist die PHP-Version wahrscheinlich die korrekte und die von MySQL
macht Probleme. Evtl. den MySQL-Ordner aus dem PATH
herausnehmen, damit's läuft.
4. PHP
5.5 -->
Notizen
Download
von http://windows.php.net/download/.
Die "thread safe" Version wählen, wenn man nicht gute
Gründe dagegen hat.
Empfehlung: Den Ordner php
an den Apache-Ordner hängen. (Nicht zwingend)
Wichtig: PHP und Apache
kooperieren nur, wenn sie beide
für 32-bit bzw. 64-bit sind und vom selben
Compiler, z.B. VC9.
Geeignete
Version von Apache wählen, starten und den Konfig-Pfad angeben (z.B. c:\Apache24\conf\); Keine Panik
bei Fehlermeldung – Man kann später manuell
korrigieren (siehe unter 7. VuFind konfigurieren
weiter unten).
Im
Abschnitt "Choose Items to Install" : PEAR
installieren lassen (unter Extras) und folgende extensions (unter PHP /
Extensions):
- GD2 (optional,
empfohlen wegen besserer Anzeige der Covers)
- intl (Internationalization)
- LDAP (optional)
- Multi-Byte
String (optional, aber empfohlen)
- MySQL
- MySQLi
- PDO (mit MySQL)
- XSL (zur Handhabung von XML-Daten)
Environment
Die
PATH-Variable ergänzen um PHP : z.B. an PATH die
Angabe ;c:\www\apache24\php
anhängen. Dann ist überall der Befehl php
möglich, um PHP-Skripte zu starten. Zu Environment-Variablen
siehe Umgebungsvariablen
ändern.
Anm.
- Wenn
Komponenten bei der ersten Installation vergessen wurden, einfach den
Installer nochmal starten für die betr. Module.
- PHP installiert
u.U. Erweiterungen ohne die nötigen library files. Start von
PHP wird dann pop-up-Fehlermeldungen bringen. Dann
die php.ini
editieren (in c:\...\PHP\, auch über die Start
Menu-Abkürzung) und auskommentieren (; davorsetzen) was
stört (zu finden in Zeilen mit =php_*.dll). Wenn man davon
tatsächlich was braucht, dann diese Dateien per Google
ausfindig machen.
5. Java
7 -->
Notizen
JDK
von: http://java.sun.com/javase/downloads/?intcmp=1281.
Die Default installation options kann man alle nehmen.
Eine
System-Environment-Variable namens JAVA_HOME setzen auf den Pfad zur
Java Installation, wo bin\java.exe
liegt, z.B.
z.B.
JAVA_HOME=c:\programme\java\jre1.7.0_21
(oder
z.B. c:\Program
Files (x86)\Java\jdk1.x.y_z). Siehe dazu Umgebungsvariablen
ändern.
6.
VuFind initialisieren : Das Install Script
-->
Notizen
- cmd
(DOS-Fenster).
- In Windows 7
einfach cmd in das Suchfeld ganz unten links eingeben.
U.U. rechtsklicken auf den "cmd"-Befehl und "Als Administrator
starten", damit alles mit den richtigen Berechtigungen versehen wird.
- Weiter im
DOS-Fenster: cd c:\vufind
- Das Skript
starten:
php install.php
eingeben und Enter.
Die
Fragen mit den Defaults beantworten (Enter und sonst nichts)
– Man kann das sonst auch später wiederholen, um
Änderungen zu machen.
7. VuFind
konfigurieren
--> Notizen
7.1
Environment-Variablen
setzen
VUFIND_HOME und VUFIND_LOCAL_DIR setzen. Bei
Unklarheiten siehe Umgebungsvariablen
ändern.
7.2
VuFind
mit Apache verbinden
Die
httpd.conf
bearbeiten. Folgendes muß rein:
Include
c:/vufind/local/httpd-vufind.conf (Ändern,
wenn die Datei woanders liegt).
Apache
nach Änderungen neu starten.
Gegen
Netz-Timeouts folgende Einträge in php.ini machen oder in
der http-vufind.conf :
php_value default_socket_timeout 25
php_value max_execution_time 30
Kleinere
oder größere Werte einstellen (beide in Sekunden),
abhängig vom Environment. Das socket timeout sollte kleiner
sein als die max execution time. Das ist 100%
Windows-spezifisch – auf
*nix-Plattformen unnötig.
7.3
Troubleshooting
Apache
Debugging-Tips
gegen "Forbidden"-Meldungen u.ä.:
Wenn
die PHP-Installation nicht automatisch PHP zur Apache Konfiguration
ergänzt hat, dann in der httpd.conf
folgende Zeilen einfügen, oberhalb der "Include"-zeile
für http-vufind.conf:
LoadModule php5_module "c:\Program Files\PHP\php5apache2_4.dll" ... oder 2_2.dll, je nach Apache-Version!
AddType application/x-httpd-php .php
PHPIniDir "c:\...\PHP\"
(Pfadangabe
für PHP muß natürlich stimmen)
Die
Apache logs können helfen - zu finden im
Windows-Startmenü unter Apache
HTTP Server / Review Server
Log Files
mike_beccaria
(Jun 09) : Add
“Options All” to the httpd-vufind.conf file if you
are getting an “access Denied” on the homepage and
a “Directory index forbidden by option directive”
error in the apache error.log.
demiankatz
(Jul 09) : if the
PHP
install added multiple PHPIniDir and LoadModule entries to the bottom
of httpd.conf and this is preventing Apache from starting, comment out
the duplicate ones and leave only the first pair intact.
7.4
Solr
konfigurieren
Die komplette, in Java geschriebene Solr-Software von Apache ist im VuFind-Paket enthalten. Darum braucht man sich nur sehr wenig zu kümmern:
Die
config files für jeden Solr Index sind u.U. auf relative Pfade
gesetzt. Unter Windows kann Solr u.U. die Indexdateien nicht
finden. Dann gibt's keine Ergebnisse. Solr dann umkonfigurieren mit den
expliziten Pfaden für die Indexe:
In
diesen Dateien stehen alle Einstellungen für Solr:
c:/vufind/solr/biblio/conf/solrconfig.xml
c:/vufind/solr/authority/conf/solrconfig.xml
c:/vufind/solr/stats/conf/solrconfig.xml
Darin diese
Zeilen finden:
<dataDir>...
Darin
evtl. die relativen Pfade ändern auf:
c:/vufind/solr/biblio hier liegen die Indexdaten!
c:/vufind/solr/authority
c:/vufind/solr/stats
Beispiel:
<dataDir>${solr.data.dir:./solr/biblio}</dataDir>
ändern
in:
<dataDir>c:/vufind/solr/biblio</dataDir>
7.5
Solr testen
Doku:
https://wiki.apache.org/solr/CommonQueryParameters
Damit kann man per Browser direkte Abfragen machen, z.B. http://vufind...:8080/solr/biblio/select/?q=SUCHWORT&rows=20&start=0&indent=yes&qf=allfields&qt=dismax&fl=*%2Cscore&wt=json
oder den Teil ab q=... in die Solr-query-Konsole eingeben, --> Notizen 9a. Auf dem "Dashboard" (...:8080/solr/# ) kann man unter "Logging" evtl. Fehlermeldungen finden, wenn Abfragen nicht oder falsch laufen,
8.
VuFind starten
Normalerweise:
vufind start
eingeben in c:\vufind. Dieses
Fenster dann nicht schließen! Man sieht dort ständig
die protokollarische Anzeige der Aktivitäten.
Wenn man's in einem Remote Desktop macht, dann den RDT "Trennen", nicht
"Schließen".
Leider kann man es nicht als Dienst starten. (In Linux dagegen geht es
als Daemon)
9.
Abschließendes Checking --> Notizen
Nach
erfolgreicher Installation sieht man eine Seite mit dem Titel "Auto
Configure"
Sonst
in einem Browser zu dieser URL gehen:
http://your-server-name/vufind/Install/Home
(Hier
statt your-server-name die
Startadresse, die man für VuFind vorgesehen hat;
statt vufind den
eigenen Pfad, wenn man beim Installieren einen anderen gewählt
hat).
z.B.
http://vufind.allegro-c.de:81/vufind/Install/Home
Dann
erscheint Basic configuration... OK usw., u.U.
"Fehlgeschlagen" statt "OK", dahinter dann repariert
: da drauf klicken (es müßte
eigentlich "reparieren" lauten!
Troubleshooting (Debugging)
(s.a. unten 1b.)
Wenn
nur leerer weißer Schirm oder "Es ist ein Fehler aufgetreten", dann
- Apache error
log checken – siehe oben Troubleshooting Apache .
- Wenn's nicht
hilft: in c:/vufind/local/httpd-vufind.conf
diese
Zeile aktivieren
SetEnv VUFIND_ENV development
Apache-Restart :
Entwicklermodus, der hilfreiche Fehlermeldungen liefern
könnte, aber auch Hinweise wie
Notice: Undefined index:
title_sub in
C:\vufind\module\VZG\src\VZG\RecordDriver\SolrVZGRecord.php
on line 79
was keinen Fehler darstellt - im aktuellen Satz fehlt hier das Feld
title_sub
- Noch dazu kann man debug = true
setzen in der config.ini (s.u. 1.b). Dann werden DEBUG-Meldungen
sichtbar. Wenn das dann eine URL ist, die an Solr gerichtet ist, dann
diese kopieren und direkt in den Browser eingeben. Aus den Meldungen
von Solr kann man u.U. was entnehmen.
- PHP-Fehler sichtbar machen? In
php.ini setzen:
display_errors
= On
Noch
kein Erfolg? Dann --> support page.
Hinweis:
- Um die VuFind
MySQL-Datenbank zu setzen, braucht man das root Passwort, das bei der
MySQL-Installation gegeben wurde.
Konfiguration
festschreiben
Sobald
alle Einstellungen stimmen, sieht man einen Link "Disable Auto
Configuration" auf der Seite "Auto Configure". Darauf klicken, um das
Installskript zu blockieren. Falls es doch nochmal gebraucht wird,
manuell in der config.ini
ändern.
10.
Import Records
-->
Notizen
MARCEDIT downloaden und installieren von http://marcedit.reeset.net
(Unter "Download from oregonstate.edu"
Latest Version 32bit DOWNLOAD - Keine
anderen Buttons klicken)
Siehe dazu auch: http://www.allegro-c.de/doku/vufind/marcedit.htm
Ab Version 6.0
hat MARCEDIT auch ein Konsolprogramm namens cmarcedit.exe.
Um damit z.B. eine Datei daten.mrk in eine echte MARC-Datei
namens daten.mrc zu wandeln, startet man es so: cmarcedit
-make -s daten.mrk -d daten.mrc .
Mit cmarcedit
-h erhält man Hilfe.
Zum
eigentlichen Importieren im Sinne von "Einspeisen" (Schritt 3.)
muß VuFind
in einem eigenen Fenster gestartet sein! Siehe 8.
a)
Daten erstmals importieren
- Daten aus allegro-Datenbank
als MARC-Datei daten.mrk
exportieren mit marctxt.apr
- Befehl
daten.mrk
geben und "File / Compile file into MARC".
Ergebnis: daten.mrc (Daten im
echten MARC-Format)
Oder
ab Version 6.0 wahlweise so: cmarcedit
-make -utf8 -s daten.mrk -d daten.mrc
- Diese Datei
verschieben nach c:\vufind und
dann dort in einem eigenen DOS-Fenster :
import-marc daten.mrc
- Der Vorgang
läuft dann automatisch ab, man sieht Zwischenmeldungen auch in
dem DOS-Fenster, wo VuFind gestartet wurde
Wenn
dabei Fehler kommen, dann den Befehl mit Option --test-only
geben, um genauere Fehlermeldungen zu erhalten.
b)
Updating
- Die Log-Datei
mit log2alg in eine .alg verwandeln:
log2alg cat im
Datenordner geben, dann wird aus cat.log die Datei
cat.alg
- Die cat.alg mit
marctxt.apr in log.mrk
exportieren: srch
-dcat.alg -emarctxt=log.mrk
- log.mrk in log.mrc wandeln (siehe
a.2) mit cmarcedit
-make -s log.mrk -d log.mrc
- Dann diese mit
import-marc log.mrc
einspeisen
11. Anzeige und Indexierung anpassen : Siehe dazu
die -->Notizen
12.
Logo, Standorte, Sprachen : Siehe dazu
die -->Notizen
Hinweis
Wenn
VuFind's "Wikipedia author information module" genutzt wird (das ist
aktiviert in config.ini), dann bei
Problemen Apache's "heap size setting" erhöhen in httpd.conf: (For
more details, see the VUFIND-630
JIRA ticket.)
<IfModule
mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>
Appendix:
Umgebungsvariablen ändern bei Win'7
- "Start"
Menü
- Rechtsklick auf
“Computer”
- "Eigenschaften"
- "Erweiterte
Systemeinstellungen"
- Button
"Umgebungsvariablen"
- Neue Variable:
"Systemvariablen" / "Neu"
- Eine
Variable ändern: darauf
doppelklicken
******************************************************************************
ZWEITER TEIL :
Notizen (konkrete Erfahrungen)
Wichtig: Alle Dateien notieren, in denen man Änderungen gemacht hat.
1.
Download VuFind:
Entpacken in c:\vufind
Dann zuerst einige weitere Voraussetzungen schaffen, s. 2.-5.
Danach
Initialisieren: s. 6. (einige Dateien automatisch
vorbereiten etc.)
Wichtig f. Datenimport: ./import/marc.properties +
marc_local.properties
Darin (marc_local) auch Bibliotheksname und Adresse!!!
Änderung wird nur wirksam, wenn man die Daten alle neu
importiert!!!
1a.
System-Umgebungsvariable setzen:
Systemvariablen (!)
Neu: VUFIND_HOME=c:\vufind
Neu: PHP_HOME=c:\apache24\php
1b. Viele wichtige
Einstellungen in
C:\vufind\local\config\vufind\config.ini
(ACHTUNG: local! Denn c:\vufind\config ... enthält
nur die gelieferten Standardversionen)
Nach Änderungen: Apache neu starten
Einige wichtige Sachen darin:
autoConfigure = false
after auto-configuration is complete
[Site]
email =
name@abc.xyz.de
language = de
timezone = "Europe/Berlin"
[Database]
database
= mysql://root@localhost/vufind/
Falls man
eine DAIA-Schnittstelle hat:
driver
= "DAIA"
wenn ILS offline, gelbe Meldungsbox beim Start:
"Wegen Wartungsarbeiten ..."
(in
themes/bootstrap3/templates/search/home.phtml)
Ohne driver
keine Statusabfrage beim ILS:
driver = "noILS"
(der wird als default geladen, wenn der
erstgenannte nicht existiert!)
(Es kommt dann nur auf dem Startbild eine
Wartungs-Warnmeldung, s.o.)
Verhindern: in config/NoILS.ini
den Wert mode = ils-none setzen)
Die Drivers liegen in
module/VuFind/src/VuFind/ILS/Driver
GBV hat dafür den driver DAIA.php
entwickelt
Ein Driver allegro.php
wäre noch zu entwickeln ...
Fuer Logging: diese Zeilen und zugehörige
aktivieren, wenn MySQL zur Speicherung gewünscht
; CREATE TABLE log_table ( id INT NOT NULL AUTO_INCREMENT,
; [Logging
Sonst: Wenn eine Datei vufind.log
entstehen soll:
[Logging]
file
= /vufind/vufind.log:alert,error,notice,debug
[Spelling]
enabled = false statt "true" falls sonst Fehler von Solr kommen
Link resolver
...
[OpenURL]
;url
= "http://openurl.myuniversity.edu/sfx_local"
resolver
= EZB
; für Covers:
[Content]
coverimages = Google,OpenLibrary
[System]
debug = true nur setzen, um Testmeldungen
zu kriegen
insbes. die Suchbefehle, die zu Solr gehen und Fehler verursachen
[Site]
defaultRecordTab= Description
Dann
wird der Tab "Beschreibung" automatisch geöffnet, unter der
Satzanzeige, statt "Exemplare"
[Languages]
alle gewünschten aktivieren, Reihenfolge nach Wunsch
ändern
------------------------------------------------
2. Apache
// Download: http://www.apachehaus.com/cgi-bin/download.plx
//
Version 2.4.x VC9 , httpd-2.4.10-x86.zip
// requires Microsoft Visual C++ 2008 SP1 Redistributable
Package (x86)
// oder Visual C++
Redistributable for Visual Studio 2012 Update 4
// download from
http://www.microsoft.com/en-us/download/details.aspx?id=5582
// ODER zum Testen: c:\xampp\apache\bin\httpd.exe
//
Wichtigste Datei:
c:\Apache24\conf\httpd.conf
darin aktivieren:
LoadModule rewrite_module modules/mod_rewrite.so
Neue Zeile:
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
index.php hier einfügen:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Define SRVROOT "/Apache24"
ServerRoot "${SRVROOT}"
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
...
<Directory "c:/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
LoadModule php5_module C:/Apache24/php/php5apache2_4.dll
and
PHPIniDir "C:/Apache24/php"
<IfModule php5_module>
AddHandler
application/x-httpd-php .php
PHPIniDir "c:/Apache24/php/"
</IfModule>
Erst wenn das alles
stimmt, kann folgendes auch klappen:
Include C:/vufind/local/httpd-vufind.conf
Darin steht ein Alias fuer das eigentliche Startverz.,
z.B. c:\vufind\public
Firewall:
Programm Apache... / Eigenschaften // Aktion: Zulassen
für Web
------------------------------------------------
3. MySQL server. Muß als Dienst
laufen, wird nicht von VuFind selber gestartet
Dienst-Startbefehl z.B.:
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
--defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56
Zum Installieren:
mysql-installer-web-community-5.6.19.0.msi
Empf.: www.softpedia.com
Man muss einen account bei Oracle einrichten, kostenlos
Option "Server only" wählen
Root password wählen und sorgfältig
aufbewahren!!
Dienstname: Default MySQL56
Wird dann automatisch als Dienst eingerichtet und gestartet
Prüfen mit sc query mysql56
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
--defaults-file="C:\ProgramData\MySQL\MySQL Server
5.6\my.ini" MySQL56
Evtl.:
C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysql.dll
copy to
Und in der /vufind/local/config/vufind/config.ini muss stehen:
[Database]
database = "mysql://vufind:password@127.0.0.1/vufind"
ACHTUNG: Das wirkt sich sofort aus! Wird bei jedem Zugriff gelesen.
Um das Passwort des Nutzers vufind zu ändern:
Am mysql prompt:
GRANT SELECT,INSERT,UPDATE,DELETE ON vufind.* TO 'vufind'@'localhost'
IDENTIFIED BY 'your-desired-password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
und das Pw auch eintragen in vufind/local/.../config.ini
------------------------------------------------
4. PHP 5.5
from:
http://windows.php.net/downloads/releases
Paket: php-5.5.13-Win32-VC11-x86.zip
Entpacken nach c:\Apache24\php
Achtung:
rename php.ini-production to php.ini
Systemeigenschaften/Systemvariablen:
Hier zuerst Punkt
6: php
install.php
PEAR installieren:
get http://pear.php.net/go-pear.phar to c:\Apache24\php
then
php go-pear.phar
dazu muß vorhanden sein:
msvcr110.dll auf \windows\system32 oder im PHP-Ordner.
(Win64: msvcr110.dll 875.472 Bytes von 2014)
Wichtig: korrekter include_path, z.B.
include_path = ".:/www/php/includes"
Installierte Module checken: php -m
In php.ini
aktivieren: (Pfad evtl. ändern!)
extension=c:/apache24/php/ext/php_mysqli.dll
oder
extension=php_mysqli.dll
zend.multibyte
= On
extension=php_gd2.dll
extension=php_xsl.dll
extension=php_mbstring.dll
extension=php_exif.dll
; Must be after mbstring as it depends on it
------------------------------------------------
5. Java 7 (nur für Solr
wichtig)
Java wird von VuFind selber gestartet, wie auch
Solr
z.B kann es auch liegen in
c:\program files(x86)\java\jre7
darunter jedenfalls Ordner "bin" und darin java.exe
EnvironmentVariable PATH : JAVA_HOME ergaenzen
------------------------------------------------
6. VuFind initialisieren:
php
install.php (in c:\vufind)
Base path: z.B. "/vufind" (das ist default)
Es wird dann ein Alias eingerichtet: Alias /vufind
C:/vufind/public
aber in ./public liegt nur das Startfile
index.php!
Dann kommt dieser output:
Apache configuration written to C:/vufind/local/httpd-vufind.conf
Diese .conf muß Apache zusätzlich laden. Damit es
das tut:
Windows Start Menü -> Apache HTTP Server -> Edit
the Apache httpd.conf
Dann diese Zeile zur httpd.conf
ergänzen:
Include
C:/vufind/local/httpd-vufind.conf
Außerdem diese Zeile einbauen:
Alias /vufind /c:/vufind/public
Nach dieser Aktion: Apache neu starten. Damit wird VuFind
zum Testen zugänglich unter der URL
http://localhost/vufind
Im Fehlerfall: Systemereignisprotokoll einsehen:
eventvwr.msc
dann Windows-Protokolle
/ System, auf !Fehler doppelklicken
Schuld ist evtl. die Zeile Include
C:/vufind/local/httpd-vufind.conf
Damit Befehlszeilen-Tools funktionieren, diese Umgebungsvariablen
setzen:
VUFIND_HOME=c:/vufind
VUFIND_LOCAL_DIR=C:/vufind/local
-----------------------------------------
7. VuFind starten
Dazu muss JAVA_HOME gesetzt sein
und jvm.dll vorhanden (z.B. in
c:\Program Files (x86)\Java\jre7\bin\client )
Startbefehl: vufind start
in c:\vufind
Startet auch Java und Solr!
Wenn Start nicht gelingt mit einer Java-Fehlermeldung, ist evtl.
java.exe
schon am Laufen. Dann zuerst killen, z.B. mit procexp.exe
(Download:
http://www.heise.de/download/process-explorer.html)
--------------------------------------------
9. Abschließendes Checking (im Browser):
http://localhost/vufind/Install/Home
Und Fehlermeldungen untersuchen! MySQL Passwort wird
gebraucht!
Wenn
irgendwo "Reparieren" dransteht, jeweils klicken, dann wird das gemacht.
9a.
Solr Diagnose (im Browser):
http://localhost:8080/solr/#/
Diagnose-Tool. ist Solr am Laufen?
Wichtig:
unter "Core selector": Biblio / Schema pruefen.
Ist es das richtige Schema? Oder "Authority", also
vertauscht?
Die Zuordnung steht in solr/solr.xml. Dort
ändern
Unter "biblio" dann
Overview: Statistics-Seite erscheint,
darauf ein Button "Optimize" -
komprimiert die Indexdaten
und zwar die Verz.
vufind/solr/biblio/index,
sowie spellchecker
und spellShingle (was immer die machen)
Zu empfehlen:
Jeweils nach einem Update wieder "Optimize" machen
--------------------------------------------
10. Daten einspeisen, Typ .mrc
Daten aus Katalog exportieren in daten.mrk mit
marctxt.apr
dann Befehl: daten.mrk startet MARCEDIT, Menue
"File / Compile File into MARC"
erzeugt data.mrc
Daten importieren:
-- Zuerst den Index (d.h. die gesamten Solr-Daten!) löschen:
(Dies immer, wenn man den Index ganz neu aufsetzen
will:
Unter Win: Inhalt von
\vufind\solr\biblio\index löschen
(--> https://vufind.org/wiki/re-indexing)
-- Dann die neu umgewandelten Daten indexieren: (--> https://vufind.org/wiki/importing_records)
Windows: in \vufind: import-marc.bat data.mrc
ACHTUNG: Dazu muß in einem anderen
Fenster vufind gestartet sein,
siehe
7., weil sonst solr nicht läuft
LOG-Dateien einspeisen: Umwandeln in log.mrk mit marctxt.apr,
dann Befehl: log.mrk startet MARCEDIT,
Menue "File / Compile File into MARC"
Erzeugung von log.mrc
dann in \vufind den Befehl import-marc log.mrc
Dabei können Fehlermeldungen auftreten, wenn die MARC-Daten
fehlerhaft sind:
D.Katz, 12.8.14:
"Bad request" : means there's some sort of invalid data in the record
--
for example, multiple values in a single-valued field.
Usually there is more detailed error information displayed on the Solr
side
than on the SolrMarc import side. If you can isolate a bad record and
index
it while watching the console output from Solr, you can see which field
is
causing the issue.
You can use the JETTY_LOG environment variable to log the Solr output
to a file, which might help in tracking this down if you can't easily
isolate a bad record. When starting Solr from the command line,
just do something like:
set JETTY_CONSOLE=c:\jetty.log
vufind.bat start
Then you can look through jetty.log for detailed messages.
----------------------------------------------------
Lokale
Anpassungen
Zuerst ein Tip für den Fall des Versionswechsels: (z.B. von 2.3 nach 2.5)
Die neue Version in ein neues Verzeichnis kopieren, z.B. vufind-neu.
Den Index-Ordner aus dem bisherigen in das neue Verzeichnis kopieren (Ordner vufind/solr/biblio/index)
Dann in den neuen Dateien die Änderungen nachvollziehen, die man in der bisherigen Version gemacht hat.
Danach VuFind stoppen (Strg+c), die Ordner umbenennen: vufind in vufind-alt, vufind-neu in vufind
und in vufind wieder starten: vufind start
Dann wieder starten, ausprobieren, Mängel notieren, und zurück das Ganze; Mängel beheben, und von vorn.
Alle Dateien notieren, in denen man Änderungen gemacht hat.
11a. Datensatz-Anzeige anpassen
see also:
https://vufind.org/wiki/vufind2:record_drivers
https://vufind.org/wiki/vufind2:record_driver_method_master_list
Die zuständigen .phtml-Dateien:
(quasi
Anzeige-Parameter)
==>
\vufind\themes\bootstrap3\templates\RecordDriver\SolrDefault
.css:
==>
\vufind\themes\bootstrap3\css
core.phtml
= Template, Vorlage für die Einzeltitel-Vollanzeige
result-list.phtml
= Templ. für die Kurzlistenanzeige
genutzt wird:
SolrDefault.php : getter functions
(holen MARC-Feldinhalte aus den Solr_Daten)
==>
\vufind\module\VuFind\src\VuFind\RecordDriver\SolrDefault.php
z.B. getCallNumber() (für die
Formatierung der Signatur)
s. dazu im Wiki die
Liste der
getter-Funktionen:
==>
https://vufind.org/wiki/vufind2:record_driver_method_master_list
Feldnamen in /vufind/import: (braucht
man f.d. getter-Funktionen)
marc.properties:
Definitionen von Feldnamen: zB 'edition', 'callnumber-a'
oder in marc_local.properties: die lokal abweichenden Angaben; Diese haben
dann höhere Priorität als gleichnamige in marc.properties.
==>
\vufind\import
ABER:
Template für Tab "Beschreibung" (z.B. "physical" =
Seitenzahl = MARC 300)
steht in dieser Datei:
\vufind\themes\bootstrap3\templates\RecordTab\description.phtml
Darin kann evtl. ein Fehler sein: Abschnitt am Ende (mit
"videoclips") rausnehmen.
ACHTUNG: Nach Änderungen an .properties: vufind
neu starten!
nur die .phtml werden sofort
wirksam.
11b.
Solr-Indexierung anpassen
also quasi die Index-Parameter:
/vufind/solr/biblio/conf/schema.xml
beruht auf marc.properties
Signaturen-Indexierung: import/index_scripts/callnumber.bsh
(Achtung: activate it in import/marc_local.properties!)
siehe auch: https://vufind.org/wiki/indexing:solrmarc#customizing_format_determination
für Möglichkeiten, die Indexierung mit Hilfe von "Bean Shells" (.bsh) individuell anzupassen,
z.B. auch für die automatische Bestimmung des Dokumenttyps aus den MARC-Daten: format.bsh.
11c. Optionen für
das Suchen
findet man in searches.ini
z.B. unter [Sorting]:
"relevance" oder "year". Default : "default_sort=..."
und im Falle von sharding, wenn auf einen bestimmten Bestand zu filtern ist:
default_filters[] = "institution:DHI Warschau"
11d. Signaturgruppen
Liste in
/vufind/import/translation_maps/callnumber_map.properties
Muss vor dem Import vorliegen, sonst kein Browsing
nach Signaturen!
Default ist LC-Liste A - Z
11e. Neues Datenfeld
Um ein neues MARC-Feld einzuführen, das Solr noch nicht kennt:
solr/biblio/conf/schema.xml aktualisieren und Daten neu indexieren!
Dann die nötigen Ergänzungen in
.\import\marc_local.properties
.\module\VuFind\src\VuFind\RecordDriver\SolrDefault.php
.\themes\bootstrap3\templates\RecordDriver\SolrDefault\core.phtml und result-list.phtml
--------------------------------------------------------------------
12. Logo (erscheint
ganz oben)
vufind_logo.jpg
in \vufind\themes\bootstrap3\images
ersetzen durch
eigenes Signet der Bibl.
Herzchen für "Favorites" (wenn
man das albern findet):
heart.png
auf \vufind\themes\bootprint\images\silk
13. Standorte
Die Default-Meldung "3rd Floor Main
Library" steht in
\vufind\module\VuFind\src\VuFind\ILS\Driver\Sample.php
14. Sprache der Oberfläche
\vufind\languages:
de.ini deutsche Texte
Nach Änderung:
Verzeichnis /vufind/local/cache/languages löschen!
Wird neu erzeugt ...
Die Reihenfolge im Sprachauswahlfeld steht in der
config.ini. Nach Änderung Apache-Neustart.
15. Facetten
(angezeigt auf der rechten Seite)
Auswahl und Reihenfolge in
\vufind\config\vufind\facets.ini (Kopie nach local!)
16. Export-Funktionen
export.ini nach local kopieren (wie config.ini
und facets.ini)
und z.B. Reihenfolge ändern
Zusätzlich
in config.ini Abschnitt [Export]
anpassen
Achtung:
Nicht die Bezeichnungen "Endnote" etc. in diesen Dateien
ändern!
Falls aber doch nötig, d.h. z.B.
EndNote/Citavi" gewünscht, dann in toolbar.phtml
diese Zeile einsetzen statt der vorhandenen:
<li><a <? if
($this->export()->needsRedirect($exportFormat)):
?>target="<?=$this->escapeHtmlAttr($exportFormat)?>Main"
<? endif;
?>href="<?=$this->recordLink()->getActionUrl($this->driver,
'Export')?>?style=<?=$this->escapeHtmlAttr($exportFormat)?>"><?=$this->transEsc('Export
to')?> <?=$this->escapeHtml($exportFormat ==
'EndNote' ?
'Endnote/Citavi' :
$exportFormat)?></a></li>
17. GBV einbinden (zunächst
beim GBV Berechtigung geben lassen)
1. in local/httpd-vufind.conf
einfügen und Apache neu starten:
SetEnv
VUFIND_LOCAL_MODULES VZG
2. Ordner VZG (vom GBV, in GitHub zu finden) unter
module anhängen
https://github.com/gbv/vufind/tree/master/module
Darin ist
SolrVZGRecord.php besonders wichtig,
ergänzt
module/.../SolrDefault.php
Korrekte Fassung s. Anhang (korr. von
D. Katz, 8.1.15)
Das Index-Schema vom GBV ist hier:
https://github.com/gbv/findex-config/blob/master/SolrCloud/solr_config/schema.xml
3. In config.ini bzw. searches.ini:
(siehe: https://vufind.org/wiki/using_solr_shards?s[]=sharding
)
Normaler Abschnitt lautet so:
// This section requires no changes for most
installations
[Index]
engine
= Solr
url
= http://127.0.0.1:8080/solr
default_core = biblio
Statt dessen:
drei Abschnitte:
Vorsicht:
Kein Spatium vor [...
[Index] in config.ini
engine
= Solr
url
= http://findex.gbv.de/index
local
= /home/vufind/solr
default_core = XYZ
[Das ist der eigene Berechtigungscode beim GBV]
und 2 Abschnitte in searches.ini:
[IndexShards]
Lokal = vufind.dhi.waw.pl:8080/solr/biblio
GBV =
shard1,shard2,shard3,shard4,shard5,shard6,shard7,shard8,shard9,shard10
[ShardPreferences]
showCheckboxes = true
defaultChecked[] = "Lokal"
defaultChecked[] = "GBV"
Die zwei Checkboxes werden unter dem Eingabe-Suchschlitz zur Auswahl
gezeigt
Achtung: In einem Fremd-Index sind u.U. MARC-Felder, die man im eigenen
Index nicht hat.
Für GBV siehe:
siehe
https://github.com/gbv/findex-config/blob/master/SolrCloud/solrmarc_config/VZG_index.properties
Darin ein Abschnitt, der mit # GBV beginnt
Dann
braucht man einen Abschnitt
[StripFields]
Kinstler:
Zu der Fehlermeldung
Warning:
strlen() expects parameter 1 to be string, array given in
C:\vufind\module\VuFind\src\VuFind\View\Helper\Root\AddEllipsis.php on
line 61
... gut möglich, dass es an Anpassungen in
SolrDefault.php liegt. Denn das ist die Klasse, die die Daten, die aus
findex kommen verarbeitet.
Die Fehlermeldung tritt prinzipiell dann auf, wenn eine Funktion in
VuFind eine Zeichenkette erwartet, aber mehrere Zeichenketten (als
array) übergeben bekommt. Das Modul VZG überschreibt
deswegen ein paar wenige Funktionen genau aus dieser Klasse SolrDefault
mit Anpassungen, die in der Klasse SolrVZGRecord implementiert sind
(und sowohl mit Zeichenkette als auch mit arrays als Eingabe umgehen
können): die Funktionen getShortTitle(), getTitle() und
getSubtitle().
Wenn Sie nun wiederum ein eigenen getSubtitle() implementieren, sollten
Sie darauf achten, dass das ebenfalls mit arrays umgehen kann. Wenn Sie
allerdings getSubtitle() in SolrDefault direkt ändern und das
Modul VZG korrekt geladen und verwendet wird, sollte ein getSubtitle()
in SolrDefault immer von der Implementierung in SolrVZGRecord
überschrieben werden, Ihre Anpassungen also gar nicht
ausgeführt werden.
Ich würde Ihnen deswegen empfehlen, bei Ihren eigenen
Anpassungen enbenso vorzugehen: Implementieren Sie sie in einem eigenen
Modul, in einer eigenen Klasse, in der Sie (nur) die notwendigen
Änderungen überschreiben oder ergänzen und
stellen Sie sicher. Durch Vererbung können diese Anpassungen
dann den Code in VuFind ersetzen. Das ist der Mechanismus, der in
VuFind 2 vorgesehen ist, um eigene Anpassungen getrennt vom "Stammcode"
von VuFind zu halten. Das ganze basiert auf dem Modul-Konzept des Zend
Framework 2: http://framework.zend.com/manual/current/en/modules/zend.module-manager.intro.html
Anhang: SolrVZGRecord.php korrigiert von D. Katz 8.1.15
class SolrVZGRecord extends VuFindSolrMarc
{
/**
* Get the short (pre-subtitle)
title of the record.
*
* @return string
*/
public function getShortTitle()
{
return $this->getBestField('title_short');
}
/**
* Get the full title of the
record.
*
* @return string
*/
public function getTitle()
{
return $this->getBestField('title');
}
/**
* Get the subtitle of the
record.
*
* @return string
*/
public function getSubtitle()
{
return $this->getBestField('title_sub');
}
/**
* Get the best available value
from a field that may or may not be an array.
Liefert '', wenn es das Feld nicht gibt, weder als normales oder als array
sonst wird der einzige oder erste Feldinhalt geliefert
*
* @param string $field Name of
field to check.
*
* @return string
*/
protected function getBestField($field)
{
if (!isset($this->fields[$field]) ||
empty($this->fields[$field])) {
return '';
}
return is_array($this->fields[$field])
? $this->fields[$field][0] : $this->fields[$field];
}
}
|