Seite 1 von 1

Umbenennen von /contenido/ ?

Verfasst: Do 13. Dez 2007, 02:49
von Contenider
Ich habe gerade die Idee gehabt, das Verzeichnis /contenido/ umzubenennen, müsste ich dann nicht einfach nur die config.php vom Mandanten entsprechend abzuändern. Kommt es dadurch evtl. zu Problemen?

Verfasst: Do 13. Dez 2007, 08:50
von Dodger77
Das könnte man natürlich machen, dafür muss man aber auch mindestens die "contenido/includes/config.php" anpassen. Dabei definitiv folgende Pfade:

Code: Alles auswählen

/* The root server path to the contenido backend */
$cfg['path']['contenido']

/* The server path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg']

/* The server path to all WYSIWYG-Editors */
$cfg['path']['all_wysiwyg']
Außerdem

Code: Alles auswählen

$cfg['path']['contenido_html']
in der "contenido/includes/config.path.php". Wenn das "contenido" aber in irgendwelchen Klassen, Modulen oder Plugins mal direkt angegeben wird, wird dir das einen Strich durch die Rechnung machen. Deshalb: Änderungen auf eigene Gefahr.

Dann besteht natürlich die Frage nach dem Sinn. Wenn es um das "Verstecken" des Backends geht, kann man das mit Domains, die direkt auf die Mandantenordner und auf das Backend zeigen, evtl. einfacher lösen. Z.B.:

Code: Alles auswählen

Mandant 1: http://www.domain1.de
Mandant 2: http://www.domain2.de
Backend: http://meintollesbackend.domain3.de

Verfasst: Fr 14. Dez 2007, 20:30
von HerrA
@Contenider
Die Variante mit dem Hinzufügen von weiteren Servernamen zu einer vorhandenen oder neuen Domain kann ich aus eigener Erfahrung nur empfehlen. Folgende Dinge solltest Du auf jeden Fall im Auge behalten:
1.) Wähle einen Servernamen, der nichts mit contenido zu tun hat (Sicherheitsaspekt)
2.) Platziere in dem Verzeichnis eine robots.txt mit folgendem Inhalt:
  • User-agent: *
    Disallow: /
3.) verlinke nicht (!) aus Deinen Mandanten-Seiten auf dieses Login (die Spider sollen ja nichts finden)
4.) Das nächste Contenido-Update schlägt fehl, da es sich nur teilweise Informationen aus der "config.php" holt

Punkt 4.) kann man Umschiffen, wenn Du ein Backup der Originalpfadangaben als "config.bak.php" (bitte nur php-Dateiendungen benutzen, sonst kann jeder Deine DB-Passwörter beim "Download" lesen) anlegst, die Du dann kurz vor dem Contenido-Update wieder aktivierst. Parallel dazu mußt Du das geänderte Contenidoverzeichnis in das Verzeichnis der ursprünglichen Installation verschieben (auf dem Server kostet das kein Traffic, hängt aber vom FTP-Programm ab, wie es das händelt. Mit Telnet-Console geht es auf jeden Fall effektiv ohne Datentransfer)

Ich habe bisher keine Erweiterungen eingesetzt, die wegen der Änderungen fehlschlugen. Selbstverständlich achte ich persönlich genau deshalb auf die Benutzung der vorhandenen Contenido-Umgebungsvariablen in eigenen Projekten.

Im nachfolgenden Beispiel habe ich alle Pfadangaben aus der "config.php" zitiert, die bei mir auch noch dynamisch aufgebaut werden, weil der Provider schon mal die Mountpoints der Webspacepfade geändert hat. (Ohne mich zu fragen :shock: )
Zusätzlich, und entgegen den Angaben von @Dodger77, ist bei mir und auch bei Dir eine weitere Datei "config.local.php" zu ändern bzw. anzulegen. (Nicht in der Originaldatei "config.path.php" ändern!) Die Datei "config.local.php" wird erst nach der anfänglichen contenido-Initialisierung aufgerufen und kann und soll dort noch Modifikationen der Contenido-Variablen vornehmen.
config.php

Code: Alles auswählen

<?php

// Ausschnitt aus config.php (HerrA)
global $cfg;
//'/mnt/web1/52/30/12345678/htdocs';
$provider_root_dir = $_SERVER["DOCUMENT_ROOT"].'/';
// servername.domain1.de
$my_contenido_hostname = 'http://'.$_SERVER["HTTP_HOST"].'/';
/* The root server path to the contenido backend */
$cfg['path']['contenido']				= $provider_root_dir.'contenido/';
/* The web server path to the contenido backend */
$cfg['path']['contenido_fullhtml']	= $my_contenido_hostname;
/* The root server path where all (?) frontends reside */
$cfg['path']['frontend']				= $provider_root_dir.'de.domain1/cms/';
/* The root server path to the conlib directory */
$cfg['path']['phplib']					= $provider_root_dir.'contenido/conlib/';
/* The root server path to the pear directory */
$cfg['path']['pear']						= $provider_root_dir.'contenido/pear/';
/* The server path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg']					= $provider_root_dir.'contenido/external/wysiwyg/tinymce2/';
/* The web path to the desired WYSIWYG-Editor */
$cfg['path']['wysiwyg_html']			= $my_contenido_hostname.'external/wysiwyg/tinymce2/';
/* The server path to all WYSIWYG-Editors */
$cfg['path']['all_wysiwyg']			= $provider_root_dir.'contenido/external/wysiwyg/';
/* The web path to all WYSIWYG-Editors */
$cfg['path']['all_wysiwyg_html']		= $my_contenido_hostname.'external/wysiwyg/';

// DB-Config u. weitere

unset($provider_root_dir);
unset($my_contenido_hostname);
?>
config.local.php

Code: Alles auswählen

<?php
/******************************************
/* File:				config.local.php
/* Project:			Contenido 4.6.23
/* Description:	.
/* 					.
/*
/* Author:			HerrA
/* Created:			Fri Aug 17 2007 19:48:34 GMT+0100
/* Modified:		Fri Aug 17 2007 19:55:30 GMT+0100
/*
******************************************/

global $cfg;

/* IMPORTANT! Put your modifications into the file "config.local.php"
   to prevent that your changes are overwritten during a system update. */

$cfg['path']['contenido_html']			= '/';

?>
Serverpfade

Code: Alles auswählen

*Serverpfade
/mnt/web1/52/30/12345678/htdocs/contenido
*conlib wurde unterhalb von contenido-Stamm verschoben
/mnt/web1/52/30/12345678/htdocs/contenido/conlib/
/mnt/web1/52/30/12345678/htdocs/contenido/external/wysiwyg/
/mnt/web1/52/30/12345678/htdocs/contenido/external/wysiwyg/tinymce2/
/mnt/web1/52/30/12345678/htdocs/contenido/pear/
*Mandantenpfad
/mnt/web1/52/30/12345678/htdocs/de.domain1/cms/

*Contenido Backend Login
http://servername.domain1.de/
*Verweis auf contenido-Bibliotheken
http://servername.domain1.de/external/wysiwyg/tinymce2/
http://servername.domain1.de/external/wysiwyg/
Ich hoffe die Ausführungen helfen, ein wenig Licht in die Verwendung der Servervariablen zu bringen.

Verfasst: Sa 15. Dez 2007, 18:42
von Contenider
die bei mir auch noch dynamisch aufgebaut werden, weil der Provider schon mal die Mountpoints der Webspacepfade geändert hat. (Ohne mich zu fragen Shocked )
Gut dass Du das erwähnst, 1und1 plant nämlich ein Serverupdate und möglicherweise passiert mir dann das Gleiche.

Danke für Die ausführliche Beschreibung.

Verfasst: Sa 15. Dez 2007, 19:42
von HerrA
Gern geschehen!
Noch ein Nachsatz zum Konstrukt: "$_SERVER["HTTP_HOST"]". Die Servervariable liefert die Hostdomain der aufgerufenen Seite und sollte mit der Domain übereinstimmen, in der das Backend läuft. Wenn man mehrere Mandanten in verschiedenen Domains hat, wird diese Variable mit deren Domain besetzt. Die Nebenwirkungen habe ich noch nicht getestet. Da der Mandant aber keine "HTTP"-Aufrufe in das Contenido-Backend machen sollte (er müßte sich bei PHP auch authentifizieren, bei Images aber nicht), rechne ich nicht mit Nebenwirkungen.
Auf der anderen Seite kann man eine "config.php" dadurch recht problemlos auf unterschiedliche getrennte Installationen loslassen. (DB-Connection anpassen)

Verfasst: Sa 15. Dez 2007, 21:27
von HerrA
Sorry contenider, eine Nebenwirkung ist mir eingefallen, weil ich die Funktion selten benutze, leider zu spät. Die "$_SERVER["HTTP_HOST"]"-Variable mußt Du doch durch eine Konstante ersetzen. Sämtliche Insite-Editing-Komponenten greifen über die URL auf die "include.backendedit.php" zu. Seltsamerweise ist die beim Aufruf aus dem /external/backendedit/front_content.php aber leer und schlägt fehl.

Code: Alles auswählen

$form = new UI_Table_Form("editcontent", $cfg["path"]["contenido_fullhtml"].$cfg["path"]["includes"]."include.backendedit.php");