Hallo zusammen,
ich erstelle des öfteren CMSms-Installationen mit einem lokalen Webserver auf USB-Stick. Je nach HD-Belegung bekommt der USB-Stick immer einen anderen Laufwerksbuchstaben, so dass ich den Pfad bei jedem PC manuell anpassen muss.
Beispiel:
$config['root_path'] = 'D:\Server2Go\htdocs\cms1';
Wird der Stick im nächsten PC als Lfw F erkannt, muss der Pfad in "$config['root_path'] = 'F:\Server2Go\htdocs\cms1';" geändert werden.
Wie kann ich den Laufwerksbuchstaben oder den gesamten Pfad abfragen und in der config.php automatisch einfügen? Hintergrund ist, dass die USB-Stick an diverse Anfänger gehen, welche die manuelle Änderung nicht hinbekommen.
Danke für einen guten Tipp von den PHP-Experten.
Gruß m266
[Gelöst] Serverpfad in config.php automatisch anpassen
-
m266
[Gelöst] Serverpfad in config.php automatisch anpassen
Last edited by m266 on Sun May 24, 2009 8:35 pm, edited 1 time in total.
-
Andiministrator
Re: Serverpfad in config.php automatisch anpassen
Hallo m266,
Ich weiß, dass bei Dir meine modifizierte Version der config.php nicht lief. Inzwischen habe ich sie allerdings noch einige Male verbessert. Probier mal, ob sie jetzt läuft:
http://forum.cmsmadesimple.org/index.php/topic,27619.0.html
Durch meine Änderungen müssen weder Pfad noch URL angegeben werden, lediglich das Unterverzeichnis, wenn CMSms in einem Unterverzeichnis läuft und eben die DB-Zugangsdaten. Ich habe die Konfigurationsvariablen der sich häufig ändernden Variablen nach oben verlegt.
Im Anhang findest Du auch eine Version ohne Abfrage des Entwicklungsservers (Nach Download die Endung .txt entfernen).
Viele Grüße
Andiministrator
Ich weiß, dass bei Dir meine modifizierte Version der config.php nicht lief. Inzwischen habe ich sie allerdings noch einige Male verbessert. Probier mal, ob sie jetzt läuft:
http://forum.cmsmadesimple.org/index.php/topic,27619.0.html
Durch meine Änderungen müssen weder Pfad noch URL angegeben werden, lediglich das Unterverzeichnis, wenn CMSms in einem Unterverzeichnis läuft und eben die DB-Zugangsdaten. Ich habe die Konfigurationsvariablen der sich häufig ändernden Variablen nach oben verlegt.
Im Anhang findest Du auch eine Version ohne Abfrage des Entwicklungsservers (Nach Download die Endung .txt entfernen).
Viele Grüße
Andiministrator
- Attachments
-
[The extension txt has been deactivated and can no longer be displayed.]
-
m266
Re: Serverpfad in config.php automatisch anpassen
Hallo Andimistrator,
habe deine neue config.php eingebaut, doch hat es trotz diverser Anpassungen nicht funktioniert. Ich verwende aktuell zum Testen das Tool "USB Webserver" von Leon de Vries, was im Prinzip vorzüglich funktioniert. Mir fiel bei deiner config.php folgendes auf:
- Der Backslash muss vor dem Namen des Unterordners subdir angegeben werden. Also z. B. "/cms1"
- Mit der Eingabe von server prefix (www.) läuft das CMS nicht
Alternativ habe ich mir etwas aus dem Code abgeschaut und zumindest eine Lösung gefunden, womit der lokale Webserver an beliebigen Laufwerken läuft.
Hier meine Änderungen der config.php:
<?php
# Unterverzeichnis festlegen
$config['subdir'] = '/cms1';
# Docpath ermitteln (Ersatz für d:\...)
# $_SERVER["DOCUMENT_ROOT"].$config['subdir']
Ersetzen folgender Zeilen:
//$config['root_path'] = 'D:\UsbWebserver\Root\cms1';
$config['root_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'];
//$config['previews_path'] = 'D:\UsbWebserver\Root\cms1\tmp\cache';
$config['previews_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\tmp\cache';
//$config['uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads';
$config['uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads';
//$config['image_uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads\images';
$config['image_uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads\images';
Damit habe ich mein wichtigstes Ziel erreicht, indem ich ein Zip-File für USB-Sticks bzw. HD verteilen kann, auf welchem das CMS unabhängig vom Laufwerksbuchstaben funktioniert.
Gerne würde ich auch "deine" config.php verwenden, doch bisher hatte ich damit keinen Erfolg. Vielleicht können wir das mal per PM erledigen, wenn du etwas Zeit hast.
Gruß m266
habe deine neue config.php eingebaut, doch hat es trotz diverser Anpassungen nicht funktioniert. Ich verwende aktuell zum Testen das Tool "USB Webserver" von Leon de Vries, was im Prinzip vorzüglich funktioniert. Mir fiel bei deiner config.php folgendes auf:
- Der Backslash muss vor dem Namen des Unterordners subdir angegeben werden. Also z. B. "/cms1"
- Mit der Eingabe von server prefix (www.) läuft das CMS nicht
Alternativ habe ich mir etwas aus dem Code abgeschaut und zumindest eine Lösung gefunden, womit der lokale Webserver an beliebigen Laufwerken läuft.
Hier meine Änderungen der config.php:
<?php
# Unterverzeichnis festlegen
$config['subdir'] = '/cms1';
# Docpath ermitteln (Ersatz für d:\...)
# $_SERVER["DOCUMENT_ROOT"].$config['subdir']
Ersetzen folgender Zeilen:
//$config['root_path'] = 'D:\UsbWebserver\Root\cms1';
$config['root_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'];
//$config['previews_path'] = 'D:\UsbWebserver\Root\cms1\tmp\cache';
$config['previews_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\tmp\cache';
//$config['uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads';
$config['uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads';
//$config['image_uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads\images';
$config['image_uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads\images';
Damit habe ich mein wichtigstes Ziel erreicht, indem ich ein Zip-File für USB-Sticks bzw. HD verteilen kann, auf welchem das CMS unabhängig vom Laufwerksbuchstaben funktioniert.
Gerne würde ich auch "deine" config.php verwenden, doch bisher hatte ich damit keinen Erfolg. Vielleicht können wir das mal per PM erledigen, wenn du etwas Zeit hast.
Gruß m266
-
Andiministrator
Re: Serverpfad in config.php automatisch anpassen
Hallo m266,
Freut mich, dass ich zumindest Anregungen für Deine Änderungen geben konnte. Gern bringe ich weitere Verbesserungen in die config.php ein, den Rest dann per PM.
Viele Grüße aus dem sonnigen Vogtland
Andiministrator
Freut mich, dass ich zumindest Anregungen für Deine Änderungen geben konnte. Gern bringe ich weitere Verbesserungen in die config.php ein, den Rest dann per PM.
Viele Grüße aus dem sonnigen Vogtland
Andiministrator
-
m266
Re: [Gelöst] Serverpfad in config.php automatisch anpassen
Nachtrag:
Eine Zeile zur automatischen Anpassung hatte ich übersehen.
Hier nun die Ergänzung (Am Ende des Textblocks) der config.php:
<?php
# Unterverzeichnis festlegen
$config['subdir'] = '/cms1';
# Docpath ermitteln (Ersatz für d:\...)
# $_SERVER["DOCUMENT_ROOT"].$config['subdir']
Ersetzen folgender Zeilen:
//$config['root_path'] = 'D:\UsbWebserver\Root\cms1';
$config['root_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'];
//$config['previews_path'] = 'D:\UsbWebserver\Root\cms1\tmp\cache';
$config['previews_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\tmp\cache';
//$config['uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads';
$config['uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads';
//$config['image_uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads\images';
$config['image_uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads\images';
//$config['root_url'] = 'http://localhost:8080/cms1';
$config['root_url'] = 'http://localhost:8080'.$config['subdir'];
Eine Zeile zur automatischen Anpassung hatte ich übersehen.
Hier nun die Ergänzung (Am Ende des Textblocks) der config.php:
<?php
# Unterverzeichnis festlegen
$config['subdir'] = '/cms1';
# Docpath ermitteln (Ersatz für d:\...)
# $_SERVER["DOCUMENT_ROOT"].$config['subdir']
Ersetzen folgender Zeilen:
//$config['root_path'] = 'D:\UsbWebserver\Root\cms1';
$config['root_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'];
//$config['previews_path'] = 'D:\UsbWebserver\Root\cms1\tmp\cache';
$config['previews_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\tmp\cache';
//$config['uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads';
$config['uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads';
//$config['image_uploads_path'] = 'D:\UsbWebserver\Root\cms1\uploads\images';
$config['image_uploads_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'].'\uploads\images';
//$config['root_url'] = 'http://localhost:8080/cms1';
$config['root_url'] = 'http://localhost:8080'.$config['subdir'];
