eXtplorer via SSL und ohne Login

eXtplorer ist ein in PHP geschriebener Dateimanager mit einer komfortablen AJAX-Oberfläche. Er kann als Plugin im CMS Joomla oder „standalone“ verwendet werden. Besonders praktisch kann dieses Tool sein um das „wwwrun-Problem“ zu beheben. In diesem Artikel soll beschrieben werden, wie sich eXtplorer über den SSL-Proxy von all-inkl.com nutzen lässt. Zusätzlich werden Änderungen gezeigt, die es ermöglichen, das das Skript im „standalone“-Modus ohne den skripteigenen Loginmechanismus genutzt werden kann.

Die Nutzung via SSL

Um eXtplorer über eine SSL-verschlüsselte Verbindung benutzen zu können, ist normalerweise kein zustätzlicher Aufwand nötig – vorausgesetzt für diese Verbindung wird der Serverport 443 benutzt. In den üblichen Webhostingpaketen ist das aber in der Regel nicht der Fall. Bei meinem Webhoster all-inkl.com wird z.B. ab dem Tarif Privat Plus ein SSL-Proxy (www.ssl-account.com) zur Verfügung gestellt. Das Skript eXtplorer benötigt für seine Arbeit die URL unter der das Skript aus dem Internet zu erreichen ist. Eine automatische Bestimmung ist durch die Verwendung des Proxy-Servers nicht möglich. Daher muss in der Datei /includes/init.php die if-Abfrage, die mit folgender Zeile beginnt komplett (d.h. auch der else-Zweig) auskommentiert

if($_SERVER['SERVER_PORT'] == 443 )

und direkt dahinter diese Zeilen eingefügt werden:

$GLOBALS["home_url"] = "https://ssl-account.com/pfad/zu/extplorer/";
$GLOBALS["script_name"] = "https://ssl-account.com/pfad/zu/extplorer/index.php";

Login abschalten

Wenn eXtplorer „standalone“ benutzt wird, ist das Interface durch den skripteigenen Loginmechanismus geschützt. Wenn man stattdessen lieber den Zugang über eine .htaccess-Datei absichern möchte und dafür auf die Benutzerverwaltung verzichten kann, muss in der Datei /include/init.php die if-Abfrage, die bei eXtplorer v 1.6/2.0 mit

if( !is_callable(array( $GLOBALS['mainframe'], 'getuser') )){ 

bzw. bei eXtplorer v 2.1.0

if ( !ext_isjoomla() ) {

beginnt, komplett auskommentieren und

//immer ohne Login
$GLOBALS["require_login"] = false;

einfügen. Da der Pfad zum Homeverzeichnis nun nicht mehr in den Benutzereinstellung gesetzt werden kann, muss er in /includes/init.php eingetragen werden. Die Zeile

$GLOBALS['home_dir'] = !empty( $_SERVER['DOCUMENT_ROOT'] ) ? $_SERVER['DOCUMENT_ROOT']: '.';

habe ich in meinem Fall durch

$GLOBALS['home_dir'] = !empty( $_SERVER['DOCUMENT_ROOT'] ) ? $_SERVER['DOCUMENT_ROOT']."/../../" : '.';

ersetzt. Das bedeutet, dass das Homeverzeichnis zwei Ebenen höher als das Skript liegt. Wenn eine solche relative Pfadangabe nicht möglich oder zu umständlich ist, kann man den Pfad auch absolut angeben.

$GLOBALS['home_dir'] = "/pfad/zum/homeverzeichnis";

Update 15.07.2012

Links zu eXtplorer aktualisiert, Hinweis zu Version 2.1.0 hinzugefügt und Code-Snippets korrigiert

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert