Joomla Installation mit Safe-Mode On
Dienstag, 13.01.2009 um 22:26 UhrMoin liebe Lesergemeinde,
im Zuge der Erstellung dieses Blogs habe ich mich mit Joomla befassen müssen. Joomla ist ein anwenderfreundliches Content Management System. Joomla ist stark durch Plugins erweiterbar. Um Plugins auf einem Server installieren zu können, muss der PHP Safe-Mode des Webservers ausgeschalten sein. Viele Billig-Webhoster schalten diese Option jedoch an. Da dies allerdings die Funktionalität von Joomla stark einschränkt, zeigt dieses kleine Tutorial, wie man trotzdem zum Ziel kommt.
Der Safe-Mode ist eine sehr umstrittene Sicherheitsfunktion von PHP und verbietet es Dateien eines anderen Benutzers auf dem Webserver zu manipulieren, selbst wenn die Dateirechte dies ermöglichen sollten. Das wirft im Falle vieler Online-Anwendungen das Problem auf, dass bei der Installation auf dem Webserver, die Dateien per FTP hochgeladen werden. Dies ist zumeist ein anderer Benutzer als der mit dem der Webserver und damit die Skripte laufen (meistens nobody oder www-data oä). Das bedeutet, Dateien die über die Bedienoberfläche der Online-Anwendungen angelegt werden, haben den Benutzer des Webservers. Das bedeutet, dass die Anwendung keine Chance hat, per FTP hochgeladene Dateien zu verändern oder zu verschieben, oder Ordner anzulegen. Im Falle von Joomla und der Installation von Erweiterungen bedeutet dies, dass eine Installation mit dem Fehler abbricht, dass auf Dateien mit dem jeweiligen FTP Benutzer nicht zugegriffen werden kann.
Wie kann man dies nun umgehen?
Es ist leider etwas umständlich, aber nicht zu ändern. Man installiert das CMS lokal auf dem Rechner. Ein Webserver mit FTP und MySQL kann man sich schnell durch Xampp besorgen. Das Archiv entpackt man einfach in den Ordner /opt/ des Systems und startet dann den entsprechenden Webserver (Installationsanleitung auch auf der angegebenen Webseite). Nun installiert man sich Joomla auf dem Webserver, lässt die angaben für eine FTP-Verbindung während der Installation frei und installiert danach alle Erweiterungen, die man wünscht.
Dann lädt man alles hoch, sichert die Datenbank als SQL Anweisung und spielt sie auf dem Webserver des Hosters ein. Nun sollte alles so funktionieren wie man wünscht.
Nun hat man aber weiterhin das Problem, dass Bilder, die man hochlädt als Benutzer des Webservers bekommt und weiterhin vor dem Problem steht, dass man Probleme bekommt.
Da gibt es noch die Funktion der FTP Verbindung. Dabei baut Joomla selbständig bei jeder Dateioperation eine FTP-Verbindung auf. Nun gehören alle Dateien, egal ob mit FTP oder per Joomla hochgeladen dem FTP-Benutzer. Das ist genau das was wir wollen. Als erste Amtshandlung kann man also alle Ordner und Dateien per chmod auf 755 setzen, da nun kein Zugriff mehr von anderen Benutzern erforderlich ist.
Dann muss man die Konfigurationsdatei händisch bearbeiten, denn selbst mit 777 hat die Aktivierung der FTP Funktion über das Backend von Joomla nicht funktioniert.
Dazu bearbeitet man die configuration.php im root-verzeichnis der Joomla Installation.
Im Bild sind die wichtigen Einstellungen gelb markiert. Hier solltet ihr alles so konfigurieren wie ihr seht. Natürlich noch eure FTP Benutzer und Passwort anpassen. Also FTP-Root Verzeichnis gibt man den Pfad vom FTP-Root-Verzeichnis an, also ab dem Ordner, bei dem ihr gleich nach der FTP-Anmeldung landet. Der Pfad hat dabei keine / am Anfang und Ende der Pfadangabe.
Nun kann man auch direkt auf dem Webserver Erweiterungen installieren. Leider geht dies nicht gleich per Upload aus einem zip-Archiv (zumindest bei mir nicht). Ich muss die Erweiterungen lokal entpacken, das Verzeichnis auf den Server in das tmp Verzeichnis von Joomla laden und dann über die Weboberfläche mit der Option “Aus Verzeichnis installieren”. Dort müsst ihr den gesamten Pfad des Webserver-Rechners angeben. Der Webhoster hat einen Linuxrechner, deswegen fängt mein Pfad mit / als root-Verzeichnis an. Eventuell geht das auch mit relativen Pfaden – bei mir gings aber nicht. Zum Vergleich nochmal ein Bild davon (hier wird die Erweiterung rd_rss installiert).



Nette Idee, man entdeckt sicherlich so einige Schmuckstücke in der weiten Welt der Blogs
Find ich einen guten Vorschlag