Virtuelle Verzeichnisse in Vhosts

Alles, was den Apache betrifft, kann hier besprochen werden.

Virtuelle Verzeichnisse in Vhosts

Postby TigerDragon » 23. February 2015 00:38

Mangels Performance in Sachen MS SQL COMPACT EDITION Datenbanken, da ja alles aus der Festplatte rausgekratzt wird (file basierend DB),
dachte ich mir kurzerhand eine RamDisk 2GB anzulegen. Es ist eine Virtuelles Laufwerk, die Direkt in Hauptspeicher RAM erstellt wird. Ist von Performance her ca. 100x schneller als normale HD.
Diese Laufwerk hat bei mir die Laufwerk Buchstabe S: (Windows Betriebssystem)
Diesen laufwerk S: habe ich mittels symlink an mein Documentroot als unterordner "database" angehängt.

Und tatsächlich kann ich diesen unterordner mit PHP ansprechen.
Ich kann mit fopen und fwrite daten eintragen, und php COPY sachen reinkopieren.
Nur andersrum geht nichts. Kann mit PHP aus diesen unterordner nichts zum lesen öffnen.
Auch wenn cih eine INDEX.PHP reinschreibe erscheint die nicht. Ansonsten erhalte ich eine Fehlermeldung

Zugriff verweigert!

Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich. Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 403..

Ich erhoffe mir mir mit diesen Aktion mehr Performance wegen der Datenbank Geschichte und PHP.
Und muss diesen Laufwerk als http://www.meinedomain.de/virtualordner ansprechen können. Also kann reinschreiben, aber lesen ist nicht möglich ?? ist das normal. Und kennst jemand ne anderen link ausser das SYMLINK funktion von windows.
www.meinedomain.de ist als VHOST eingetragen
TigerDragon
 
Posts: 4
Joined: 23. February 2015 00:19
Operating System: Windows8

Re: Virtuelle Verzeichnisse in Vhosts

Postby Nobbie » 23. February 2015 13:18

TigerDragon wrote:Ich erhoffe mir mir mit diesen Aktion mehr Performance wegen der Datenbank Geschichte und PHP.


Das ist nichts messbares, da kannst Du von ausgehen. Da müßtest Du schon zig Millionen Datensätze anlegen und verwalten, die Daten werden sowieso gecached. Hast Du ein konkretes Problem (dann erkläre uns dieses Problem), oder ist es einfach so aus dem Bauch heraus?

Spätestens wenn der Rechner mal abstürzt und alle Daten aus dem RAM futsch sind, wirst Du den Wert einer Festplatte neu zu schätzen wissen.
Nobbie
 
Posts: 8780
Joined: 09. March 2008 13:04

Re: Virtuelle Verzeichnisse in Vhosts

Postby TigerDragon » 24. February 2015 01:41

Danke für dein Besorgnis, aber die Dtane sind schon noch auf der Festplatte.
Nur wenn der DB Besitzer es bearbeiten will, und die Datenbank mehr als eine Bestimmte größe vorweist, wird es von ram geholt.
Es ist ein Cronjob der die DB im RAM aktuel hält.

Mein Problem ist, ich Arbeite zur zeit mit einen Datenbank, der von PHP nicht so unterstützt wird, wie MySql, Sqlite usw.
ich Arbeite mit MS SQL COMPACT EDITION Datenbanken. Sind File Basierend. SDF Dateien.
Und da diese nicht einmal einen stink normalen SQL LIMIT befehl unterstützen, muss ich die Sache anders angehen.

Meine Frage ist wirklich nur, kann ich diesen im RAM Angelegten Laufwerk nun als unterordner für mein Virtualserver (im Apache Conf angelegt) konfigurieren oder nicht.
Als Virtualserver Document Root funktioniert der RAM laufwerk prächtig. Hab mal eine zusätliche Virtualserver Angelegt, und Die Datenbank Gschichte da reingehaun. Es funktioniert.
Möchte aber nicht dass meine Ganze Website dadrin ist, sondern nur die Datenbanken.
Mein Vorhaben www.meinserver.tld/databases (wobei der unterordner Databases auf meine RamDisk zeigen soll..)
TigerDragon
 
Posts: 4
Joined: 23. February 2015 00:19
Operating System: Windows8

Re: Virtuelle Verzeichnisse in Vhosts

Postby Nobbie » 24. February 2015 11:31

Mit einiger Sicherheit muss Apache neu gestartet werden, nachdem das Laufwerk S: angelegt wurde. Was Apache NICHT kann, ist nachträglich das Laufwerk zu lesen. Das geht eben nicht. Du musst also in jedem Fall erst S: anlegen und dann Apache (neu) starten. Apache kann ja nicht auf Pfade zugreifen, sondern nur via URLs und deswegen muss S: irgendwo im DocumentRoot oder in einem Alias verdrahtet sein - und das prüft Apache beim Start. Man kann ja in URLs keine Laufwerke angeben.

Aber in PHP kann man Laufwerke angeben, PHP macht dieses Prüfungen nicht und greift direkt auf das Dateisystem zu.

Aber eine index.php wird als erstes von Apache geöffnet und dann erst an PHP weitergereicht. Aber Apache kann es nicht finden, wenn S: nicht schon zum Startzeitpunkt vorhanden war. Wenn Du beispielsweise einen VirtualHost anlegst und dort als DocumentRoot "S:/Dabatase" (oder ähnlich) angibst, dann wirst Du im error_log einen Fehler finden, dass Apache den DocumentRoot nicht findet.

TigerDragon wrote:Mein Vorhaben http://www.meinserver.tld/databases (wobei der unterordner Databases auf meine RamDisk zeigen soll..)


Also einen ALIAS definieren: (einfach in dem VirtualHost)

Code: Select all
Alias /databases/ S:/database/


oder auch so:

Code: Select all
Alias /databases/ S:/


Aber (s.o.) S: muss beim Start von Apache bekannt sein. Möglicherweise ist S: auch nicht systemweit bekannt, sondern nur für den eingeloggten User (ich weiß ja nicht, womit das gemacht wird). Das ist bei Laufwerksbuchstaben für Netzwerke der Normalfall. Dann musst Du auch noch darauf achten, dass Apache von diesem User gestartet wird (und nicht als Dienst von "System" oder so). Musst Du ausprobieren.

P.S.: Wie kommt man auf die Idee, so eine ungeeignete Datenbank zu verwenden?? Das ganz Konstrukt ist doch durch und durch Müll. Warum nicht MySQL?

P.P.S.: Dass das mit dem SYMLINK nicht funktioniert, kann auch an fehlenden Optionen liegen. Du musst in jedem Fall versuchen, "Options FollowSymLinks" im VirtualHost anzugeben. Dann kann es auch dynamisch geschehen (ohne Apache neu zu starten). Ich weiß nur nicht, ob Apache das auch im Sinne eines symbolischen Links auflöst. Ausprobieren.
Nobbie
 
Posts: 8780
Joined: 09. March 2008 13:04

Re: Virtuelle Verzeichnisse in Vhosts

Postby TigerDragon » 25. February 2015 11:49

Danke für die Schnelle Antwort,
ich hab das jetzt das mit dem ALIAS gemacht. Und dafür gesorgt dass der Laufwerk S: zur verfügung Steht, bevor mein HTTPD startet. Und das Alte Symlink gelöscht, und es mit mklink /J angebunden, siehe es funktioniert wahnsinnig. Das ist ein Riesen Unterschied von Seitenaufbau und Datenbank Operationen her. Das läuftt jetzt alles ohne Zeitverzögerung. Die ganzen execution time eingaben habe ich weggelassen, weil das nicht mal eine bruchteil der sekunde braucht, um das ergebniss zu sehen.
Es läuft ein zusätliche ChronJob, der überwacht ob der Eingeloggte User Offline geht, sobal das geschieht werden seine Datenbank files zurück auf Festplatte Kopiert. Bin begeistert. Danke für eure Hilfen.
TigerDragon
 
Posts: 4
Joined: 23. February 2015 00:19
Operating System: Windows8

Re: Virtuelle Verzeichnisse in Vhosts

Postby Nobbie » 25. February 2015 11:58

TigerDragon wrote:Es läuft ein zusätliche ChronJob, der überwacht ob der Eingeloggte User Offline geht


Das verstehe ich nicht - HTTP ist ein transaktionierendes Protokoll ohne Zustand. Es gibt unter HTTP keinen Zustand "eingelogged". Ein Browser sendet einen HTTP Request an einen Apachen (macht dazu einen Connect via TCPIP), der antwortet, danach wird die TCPIP Verbindung geschlossen und die Seite im Browser des Clients dargestellt. Da gibt es kein "eingelogged".

Diese ganzen Login Prozeduren in Shops usw. sind lediglich Automatismen, die (meistens auf Cookies basierend) die eigentlich bei jedem Zugriff neu erforderliche Authentifizierung auslagern. Das simuliert eine Art Login, ist aber keines. Technisch ist niemand eingelogged. Was überprüft der Cronjob??
Last edited by Nobbie on 25. February 2015 12:27, edited 1 time in total.
Nobbie
 
Posts: 8780
Joined: 09. March 2008 13:04

Re: Virtuelle Verzeichnisse in Vhosts

Postby TigerDragon » 25. February 2015 12:25

Ajax request, die alle 10 sekunden Zustand (Solange Browser Fenster Offen)User aktualisiert.
ChronJob (Auch ein PHP script in emienm Fall) überprüfft alle user, die Eingellogged sein müssten, und bei einem verstreichen der Zeit über z.B. 30 sec (die zeit wird ja im user fenster dauernd über Ajax request aktualisert) werden seine DB einfach auf die Festplatte gespeichert.
TigerDragon
 
Posts: 4
Joined: 23. February 2015 00:19
Operating System: Windows8

Re: Virtuelle Verzeichnisse in Vhosts

Postby Nobbie » 25. February 2015 12:28

Grauenhaft.... (sorry, aber wirklich grauenhaft).
Nobbie
 
Posts: 8780
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 3 guests