Not logged in. · Lost password · Register
Forum: Non-English Discussion German discussion RSS
DokuWiki on a Stick auf Netzlaufwerk
Avatar
da_user #1
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Subject: DokuWiki on a Stick auf Netzlaufwerk
Hi,
ich würde mir gerne ein DokuWiki anlegen. Da ich hier in unserer IT keinen Webserver dafür erhalte, möchte ich dazu DokuWiki on a Stick (für Windows) verwenden nicht auf einen Stick hinterlegen, sondern in einen Netzwerkordner. Dadurch kann ich dann innerhalb der Firma jederzeit und von überallher darauf zugreifen.
Problem ist, dass das wohl dem Apache-Server nicht allzusehr gefällt. Wenn ich DokuWiki on a Stick aus dem Netzwerkordner starte, erhalte ich folgende Fehlermeldung als Dialog:
"mapache.exe" konnte nicht gefunden werden. Stellen Sie sicher, dass Sie den Namen richtig eingegeben haben und wiederholen Sie den Vorgang.

CMD schreibt:
"\\SERVER\[...]\DokuWikiStick"
CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.

UNC-Pfade werden nicht unterstützt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
Das System kann den angegebenen Pfad nicht finden.
Die Datei "mapache.exe" kann nicht gefunden werden.
DokuWiki on a Stick started...

Your web browser will now open http://localhost:8800

To stop DokuWiki on a Stick
Drücken Sie eine beliebige Taste . . .

Ich habe jetzt versucht, den Netzwerkordner als Netzlaufwerk anzusprechen. CMD meldet hier:
DokuWiki on a Stick started...

Your web browser will now open http://localhost:8800

To stop DokuWiki on a Stick
Drücken Sie eine beliebige Taste . . . (20014)Internal error (specific informati
on not available): AH00530: initialisation: bug or getaddrinfo fail

Gibts dafür irgendwelche Lösungen, insbesondere welche die ohne Webserver auskommen?

Meine Alternativlösung, an der ich auch gerade bastel,ist, dass ich das Wiki nach lokal kopiere und die run.cmd anpasse. Die spiegelt dann mit Robocopy die aktuelle Version vom Netzwerk runter, prüft ob es eine Lockfile gibt, wenn nicht wird diese erstellt, als Inhalt den aktuellen Benutzer- und Rechnernamen.
Wird das Programm beendet, wird die aktuelle (evtl. geänderte) lokale Version wieder mit Robocopy ins Netzwerk kopiert, sofern beim starten keine Lockfile existiert hat.
Dürfte funktionieren, ist aber halt nicht wirklich schön.

VG
da_user
Avatar
andi (Administrator) #2
User title: splitbrain
Member since May 2006 · 3358 posts · Location: Berlin Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Quote by da_user:
ich würde mir gerne ein DokuWiki anlegen. Da ich hier in unserer IT keinen Webserver dafür erhalte,

Uhm. Mit welcher Begründung?

Quote by da_user:
möchte ich dazu DokuWiki on a Stick (für Windows) verwenden nicht auf einen Stick hinterlegen, sondern in einen Netzwerkordner.
Dadurch kann ich dann innerhalb der Firma jederzeit und von überallher darauf zugreifen.

Deine IT ist bestimmt begeistert, dass du sie umgehen willst.

Prinzipiell ist das aber so Quatsch. DokuWiki on a Stick startet einen Webserver. Wenn mehrere Leute darauf zugreifen sollen, dann sollte das eben genau über diesen Webserver geschehen und nicht darüber, dass du versuchst das Windows-Netzwerk-Filesharing dafür zu verwenden.
Read this if you don't get any useful answers.
Lies dies wenn du keine hilfreichen Antworten bekommst.
Avatar
da_user #3
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Quote by andi:
Uhm. Mit welcher Begründung?

Du, ganz ehrlich, ich habe da in letzter Zeit genügend rumdiskutiert, ich will hier nicht auch noch darüber diskutieren. Im Moment bekomme ich keinen Webserver für das Wiki, und das war es einfach.

Quote by andi:
Prinzipiell ist das aber so Quatsch. DokuWiki on a Stick startet einen Webserver. Wenn mehrere Leute darauf zugreifen sollen, dann sollte das eben genau über diesen Webserver geschehen und nicht darüber, dass du versuchst das Windows-Netzwerk-Filesharing dafür zu verwenden.

Natürlich ist das Quatsch. Aber in manchen Fällen muss man halt Quatsch machen, um zu einem Ergebnis zu kommen.
Mir ist auch klar, dass da ein Webserver gestartet wird, aber solange nur per localhost darauf zugegriffen wird, bleibt der Traffic raus aus dem Netzwerk.
Von anderen Rechnern auf den Server zuzugreifen ist dann schon wieder doof, weil dann der Rechner auf dem DokuWiki läuft immer laufen muss, Wiki on a Stick immer laufen muss, und irgendwie hätte ich dann schon wieder einen Webserver und die IT erst recht umgangen. Da könnte ich mir den Server gleich selbst sauber aufsetzen, und dann evtl. sogar mit einem "großen Wiki" inkl. Datenbank.
Das Wiki ist für das erste sowieso nur für mich bestimmt. Ich will halt von verschiedenen Rechnern aus darauf zugreifen können. Evtl. kommt da irgendwann(TM) mal ein zweiter Nutzer dazu, der dann aber wohl nur gelegentlich darauf zugreift.

Wäre aber natürlich am schönsten, wenn ich den Server direkt von dem Netzlaufwerk starten könnte, denn dann spare ich mir das Quatsch-Gebastel mit Robocopy & Co, und zudem könnten dann, falls doch mal mehrere Benutzer online sind (oder ich von verschiedenen Rechnern), die einzelnen Webserver zumindest auf die DokuWiki eigenen Lockfiles zugreifen und entsprechend handeln.
Avatar
LMS23 #4
Member since Feb 2014 · 156 posts · Location: Bayern, Deutschland
Group memberships: Members
Show profile · Link to this post
Also das wird so nicht einfach funktionieren, denn was du beschreibst wäre ja einen zentralen Dienst (WebServer) zu dezentralisieren (und überall starten zu können), dann hast du aber das Problem, was machst du wenn 2 gleichzeitig den Server starten und auf eine Datei schreiben? Das ist dafür einfach nicht ausgelegt.

Außerdem umgehst du, wie oben schon beschrieben, die IT und das wird ihr sicher nicht gefallen.

Wieso nicht den offiziellen weg gehen, CR stellen und begründen? Normalerweise wird es bei euch schon WebServer für irgendwas geben, eventuell kann man DokuWiki da mit drauf setzen (andere Domain, anderer Port, whatever). Einfach so was basteln ist immer schlecht (vor allem, wenn da was schief geht, wie Sicherheitslücken etc., bist du der, der den Kopf hinhalten muss)
Avatar
da_user #5
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Wieso nicht den offiziellen weg gehen, CR stellen und begründen?

Ich habe doch schon geschrieben, dass ich genügend rumdiskutiert habe. Da kann man doch dann davon ausgehen, dass ich die normalen Wege schon gegangen bin. Auch die ganze Thematiken da gibts doch schon nen Webserver und bla sind schon durch.
Einfach so was basteln ist immer schlecht (vor allem, wenn da was schief geht, wie Sicherheitslücken etc., bist du der, der den Kopf hinhalten muss)

Gegen DokuWiki on a Stick ist nichts einzuwenden. *Schulterzuck*

Fragt nicht nach Details, wieso, weshalb warum. Lasst es bitte einfach bleiben, mich nervt das Thema sowieso schon genügend. Ich hoffe hier bei euch auf Hilfe, und nicht auf noch mehr Diskussionen. Wenn ich hier jetzt auch noch ewig rumdiskutieren muss, drehe ich vollkommen am Rad.

Für mich gibt es im Moment derzeit drei Möglichkeiten, zwei davon mit wenig gebastel, einen mit viel:
1.) ich kriege das ganze aus dem Netzwerkordner her zum laufen
2.) ich kriege das ganze von einem Netzlaufwerk her zum laufen
3.) (viel gebastel) meine Robocopy-Idee

was machst du wenn 2 gleichzeitig den Server starten und auf eine Datei schreiben? Das ist dafür einfach nicht ausgelegt.

Also m.W. werden seitens DokuWiki Beiträge/Abschnitt die gerade bearbeitet werden mithilfe einer Lockfile gesperrt. Ich wüsste nicht, warum die nur ein lokaler Apache-Server zur gleichen Zeit auswerten können sollte. Bei meiner Robocopy-Lösung müsste ich mich selbst drum kümmern,

Mir fällt dabei gerade noch eine weitere Variante ein:

Probleme macht ja irgendwie hauptsächlich der Apache-Server:
Den Apache-Server lokal starten, aber dessen Arbeits/www-Verzeichnis auf einen Netzwerkordner/-laufwerk umbiegen. Geht das?
This post was edited on 2018-10-05, 20:21 by da_user.
Avatar
da_user #6
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Hi,
ich bin mitterweile einen guten Schwung weiter.
Unter DokuWikiStick\server\conf gibt es eine Datei httpd.conf in der man das DocumentRoot für den MicroApache einstellen kann. Hierzu habe ich jetzt einfach meinen DokuWiki-Ordner in das Netzlaufwerk Z: verbunden und als DocumentRoot DocumentRoot "Z:\dokuwiki" angegeben.
Wichtig ist hierbei, dass der Apache-Server leider noch voll lokal laufen muss. Den kann ich leider nicht aus dem Netzlaufwerk, ActiveDirectory oder so herausstarten.
Hat den großen Vorteil, dass ich mir den ganzen Geraffel mit Robocopy spare, was sowieso schon wieder eine wacklige Geschichte war und die ins DokuWiki eingebauten Lockfiles jetzt die Editiersperren übernehmen. Man könnte damit also sogar mit mehreren Benutzern gleichzeitig arbeiten.

Damit kann ich dann schonmal an meinem Wiki arbeiten.

Für die weitere Luxuslösung will ich dann noch herausfinden, ob ich den MicroApache den DocumentRoot als Startparameter mitgeben kann. Dann würde ich versuchen die Funktion der run.cmd in ein C#-Progrämmchen abzubilden und dieses Programm dann die Erkennung "ich starte von einem Netzwerkverzeichnis", Netzlaufwerk verbinden und alles zu integrieren.

VG
da_user
Avatar
da_user #7
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Hi,
ich habe mittlerweile ein fertiges Batch-Skript mit dem das ganze echt gut funktioniert.
Hierzu muss in der bereits genannte Datei '\DokuWikiStick\server\conf\httpd.conf' ab Zeile 7 folgendermaßen geändert werden:
#DocumentRoot ./../dokuwiki
DocumentRoot ${DOKUWIKI_ROOT}\dokuwiki

In der abgeänderten run.cmd muss in Zeile 36 noch der Pfad zum Server angepasst werden:
@echo off
REM abgeändertes DokuWiki on a Stick Orignal-run.cmd-Skript für Netzwerkinstallationen
goto begin
 
:usage
echo Usage: %~n0
echo.
echo Starts DokuWiki on a Stick (http://www.dokuwiki.org/dokuwiki_on_a_stick)
echo and waits for user to press a key to stop.
goto end
 
:begin
if not "%1"=="" goto usage

REM Netzlaufwerk verbinden
REM https://www.heise.de/ct/hotline/Freien-Laufwerksbuchstaben-finden-322906.html
if not "%OS%"=="Windows_NT" exit /b
setlocal
REM set ll=V T R Q P O N M K J I W X Y Z L U S H G F E D
set ll=Z Y X W V U T S R Q P O N M L K J I H G F E D
for %%l in (%ll%) do (
 set LW=%%l
 mountvol %%l: /L >nul
 if errorlevel 1 (
  subst | findstr /B "%%l:" > nul
  if errorlevel 1 (
   net use %%l: >nul 2>&1
   if errorlevel 1 goto gotone
   )
  )
)
echo Kein Laufwerksbuchstabe frei
pause
exit /b
:gotone
net use %LW%: \\Server\Verzeichnisse\DokuWikiStick
net use %LW%:\server
echo DokuWikiNetzlaufwerk verbunden mit %LW%

setx DOKUWIKI_ROOT %LW%:

cd server
start "Apache server" /B mapache.exe
echo DokuWiki on a Stick started...
echo.
 
:runbrowser
echo Your web browser will now open http://localhost:8800
echo.
REM if exist ..\dokuwiki\conf\local.php (
    start http://localhost:8800/
REM ) else (
REM    start http://localhost:8800/install.php
REM )
 
:wait
echo To stop DokuWiki on a Stick
pause
 
:stop
ApacheKill.exe
net use %LW%: /delete /yes
echo ... DokuWiki on a Stick stopped.
echo You can close this window now.
 
:end

In dem Netzwerksverzeichnis muss sich der Inhalt von "DokuWiki on a Stick" befinden, also:
\\Server\Verzeichnisse\DokuWikiStick\dokuwiki\
\\Server\Verzeichnisse\DokuWikiStick\server\
\\Server\Verzeichnisse\DokuWikiStick\run.cmd

Die mit obigen Skript versehene Datei '\\Server\Verzeichnisse\DokuWikiStick\dokuwiki' und der Ordner '\\Server\Verzeichnisse\DokuWikiStick\server\' müssen dann in ein lokales Verzeichnis aus dem ausgeführt werden darf, verschoben werden.

Das geänderte Run-Skript bindet dann den Ordner '\\Server\Verzeichnisse\DokuWikiStick' mit einem Laufwerksbuchstaben als Netzlaufwerk ein, speichert den Laufwerksbuchstaben in der Umgebungsvariable 'DOKUWIKI_ROOT' welche in der Registy für den aktuellen Benutzer gespeichert wird. Mit dem Parameter /m könnte man diese Variable übrigens auch für die komplette Maschine, also alle Benutzer setzen.
Mit dem korrekten Beenden wird das Netzlaufwerk nach dem Beenden des Apache-Servers getrennt und die Umgebungsvariable auf "" gesetzt.

Dadurch dass jetzt der Apache-Server, oder auch mehrere Apache-Server auf das gleiche Dokumentroot zugreifen, sind jetzt wieder die ins DokuWiki eingebauten "Editiersperrenmechamismen" am laufen. Somit wäre damit wohl sogar ein Mehrbenutzerbetrieb möglich, auch wenn ich den weder getestet habe, noch empfehlen würde.

Was zudem auffallen dürfte, ist dass ich die Abfrage nach '\dokuwiki\conf\local.php' auskommentiert habe. Hätte man auch auf das Netzlaufwerk umbiegen können, man wird die install.php allerdings wohl nur einmal brauchen, dann kann man da auch mal selbst "hinsurfen".

Wie gesagt würde ich das ganze irgendwann gerne noch in ein C#-Programm einbauen, welches es mir dann ermöglichen sollte, das eine oder andere weitere Extra zu verbasteln. Z.B. ist es da dann sehr einfach, mit Schließen des Programmes das DokuWiki on a Stick korrekt zu beenden, also nix mehr mit "To stop DokuWiki on a Stick press any Key".

Ach ja - Disclaimer, nix großartiges, eigentlich normaler Menschenverstand für solche Skripte:
Das geänderte Skript ist natürlich OpenSource, macht damit was ihr wollt solange ihr es nicht verkauft. Macht aber auf keinen Fall mich dafür verantwortlich, wenn da irgendwas schiefgeht, nicht funktioniert und/oder Datenverlust auftritt oder ähnliches.
Auch wenn ich eine Namensnennung nur als "wäre nett" fordern würde, gebt es nicht als eure eigene Arbeit aus.
Was natürlich auch schön wäre: Änderungen hier oder irgendwo anders bekannt machen, damit evtl. andere davon profitieren können.

Edit:
Mit ist aufgefallen, dass sich das Skript hin und wieder verschluckt. Warum weiß ich leider (noch) nicht, bis dato hat aber immer ein zweiter Versuch geklappt. Man muss hier aber manchmal in zuviel verbundenes Netzlaufwerk manuell trennen.
This post was edited on 2018-10-26, 17:01 by da_user.
Avatar
LMS23 #8
Member since Feb 2014 · 156 posts · Location: Bayern, Deutschland
Group memberships: Members
Show profile · Link to this post
Kannst deinen Script doch auch hier hinpacken https://www.dokuwiki.org/install:dokuwiki_on_a_stick
Avatar
da_user #9
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Hi,
im Moment gerade Zeitlich schwer das ordentlich da rüber zu packen.
Darf sich aber jeder gerne so frei fühlen das zu machen, dann ist auch sicherlich das Englisch besser ;-)

VG
Avatar
GTownGangsta #10
Member for a month · 2 posts
Group memberships: Members
Show profile · Link to this post
Hallo da_user,

bin soeben mal deinem Rat gefolgt und habe DokuWiki on a Stick versucht. Für 5 Personen in unserer Abteilung mache ich mir nicht nochmal die Mühe und gehe über einen ApacheServer der auf einer VM läuft. ( Hatten das bis letzte Woche und kommen zum verr....n nicht mehr drauf.

Wir haben jetzt von verschiedenen Clients und verschiedenen User auf das DokuWiki on a Stick drauf zu gegriffen und einige Änderungen gemacht. Das hat alles gut gefunzt. Beim Schließen des Wikis gibt er mir aber einen Fehler aus.

Zuerst einmal kann man es erst beim zweiten Mal schließen, weil es beim ersten Mal automatisch nochmal öffnet.

Dann kommt in der CMD folgendes Fehlerbild.

F..k. Wie kann ich denn hier ein Screenshot einstellen? :#:

Das Fehlerbild zeigt:

... DokuWiki on a Stick stopped.
You can close this window now
Systemfehler 67 aufgetreten

Der Netzwerkname wurde nicht gefunden

DokuWikiNetzlaufwerk verbunden mit Z

ERFOLGREICH: Angegebener Wert wurde gespeichert.
Das System kann den angegebenen Pfad nicht finden
DokuWiki on a Stick started...

Your web browser will now open http://localhost:8800
This post was edited 2 times, last on 2018-11-07, 13:11 by GTownGangsta.
Avatar
da_user #11
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Hi,

kann es sein, dass du die Fehlermeldungen durcheinander gebracht hast? Die von dir genannte Ausgabe scheint nämlich erst zu trennen ("...DokuWiki on a Stick stopped") und dann zu verbinden ("DokuWikiNetlaufwerk verbunden mit Z").

Systemfehler 67 steht, wie der Text auch meldet für "Der Netzwerkname wurde nicht gefunden". Was dafür spricht, dass du den Servernamen nicht korrekt angegeben hast. Versuche den mal manuell über die CMD anzupingen. Alternativ kannst du zum Start des Skripts auch mal das
@echo off
mit
REM
auskommentieren. Dann erzählt dir das Skript mehr.

Und wie gesagt: Mit Mehrbenutzer solltest du vorher erst ausführlich testen, das kann ich nämlich nicht.

Zuerst einmal kann man es erst beim zweiten Mal schließen, weil es beim ersten Mal automatisch nochmal öffnet.

Schließen? Du solltest die CMD nicht einfach schließen, sondern erst "press any Key".
Avatar
Michaelsy #12
Member since Jun 2015 · 569 posts · Location: Düsseldorf, Germany
Group memberships: Members
Show profile · Link to this post
In reply to post #10
Wie kann ich denn hier ein Screenshot einstellen?
Beim Erstellen einer Antwort unten, unter "Beitragsoptionen".
By Patreon.com a few eurons can be fed into the code phasers of
the DokuWiki engine. Besides, Andi's posts are worth reading.
Avatar
GTownGangsta #13
Member for a month · 2 posts
Group memberships: Members
Show profile · Link to this post
OK. Danke Michaelsy

@da_user

Hier der Screenshot zum besseren Verständnis
The author has attached one file to this post:
DokuWiki.png 98.4 kBytes
You have no permission to open this file.
Avatar
da_user #14
Member for 2 months · 14 posts
Group memberships: Members
Show profile · Link to this post
Das sieht so aus, als würde das Skript, aus welchem Grund auch immer, nochmal gestartet werden nachdem du es beendet hast.

Warum entzieht sich jetzt aber auch meiner Kenntnis.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Imprint
This board is powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2015 by Yves Goergen
Current time: 2018-12-16, 07:08:02 (UTC +01:00)