Wissensdatenbank · Fantastico
Ein von Joomla installiertes Joomla-Template lässt sich nicht per FTP bearbeiten
Zuletzt aktualisiert am 2020-04-05
Dieses Problem tritt speziell auf Servern auf, auf denen SuExec/phpSuExec nicht läuft. Die Lösung: Laden Sie die Dateien bitte per FTP hoch und führen Sie anschließend eine manuelle Installation der Joomla-Komponente bzw. -Vorlage durch.
Dies wird erläutert unter http://forum.joomla.org/index.php/topic,30796.0.html. Eine Zusammenfassung der Gründe finden Sie nachfolgend im Wortlaut:
" Zunächst einmal: Es spielt keine Rolle, ob Ihr Benutzer oder httpd (bzw. nobody, apache oder wie auch immer der Apache-Benutzer heißt) die Joomla-Kerndateien besitzt. Der Dateieigentümer wird bei der Erstellung der Datei festgelegt. Er ergibt sich aus dem Benutzer, dem der Betriebssystemprozess gehört, der die Datei im Dateisystem erstellt.
Szenario: Sie sind als Benutzer angemeldet und erstellen mit Ihrem bevorzugten Texteditor (zum Beispiel vi) eine neue Datei something.txt.
Da Sie das Programm vi ausführen, während Sie als Sie selbst angemeldet sind (wir gehen im Folgenden davon aus, dass der Benutzername USER lautet), gehört der vi-Prozess, der die Datei something.txt im Dateisystem erstellt hat, USER. Das bedeutet, dass die Datei something.txt USER gehört.
Szenario: Sie laden per FTP eine Datei ... somethingElse.txt hoch.
Da Sie mit Ihrer Kombination aus Benutzername und Passwort per FTP angemeldet sind ... wurde der FTP-Prozess, mit dem Sie arbeiten, auf den Benutzer USER umgestellt und gehört diesem. Wenn die Datei somethingElse.txt in das Dateisystem hochgeladen (erstellt) wird ... gehört sie daher dem Eigentümer des Prozesses, der sie erstellt hat, nämlich USER.
Szenario: Sie laden eine Datei in ein PHP-Skript hoch, das sie als yetSomethingElse.txt speichert (ohne suexec mit PHP).
Nun, aus Sicherheitsgründen führt Apache seine Prozesse unter einem „besonderen“ Benutzer aus ... häufig nobody, apache oder httpd genannt, oder wie auch immer der Systemadministrator ihn in der Konfigurationsdatei benennt. In diesem Fall nehmen wir an, der Apache-Benutzer heißt httpd. Sie laden Ihre Datei also in das PHP-Skript hoch. PHP läuft in einem Apache-Modul, das im Apache-Prozess läuft ... und wem gehört dieser? ... Richtig ... dem Benutzer httpd. Wenn PHP daher move_uploaded_file() aufruft und die Datei yetSomethingElse.txt speichert ... gehört sie niemand anderem als dem Benutzer httpd. Ist das ein Fehler in PHP? Nein. Ist es ein Fehler in Apache? Nein. Ist es ein Fehler im PHP-Skript? Nein. So funktionieren die Besitzverhältnisse im Dateisystem nun einmal.
suexec ist ein System, mit dem Apache den Benutzer wechselt (Switch User) und den Prozess ausführt (EXECute), und zwar abhängig von dem Benutzer, dem das Dokumentenverzeichnis (document root) des jeweils angefragten virtuellen Hosts gehört. (Haben Sie das SUEXEC darin entdeckt?) Diese Lösung bieten einige Hosting-Anbieter an. Sie sorgt dafür, dass alle Dateien, die von den Apache-Prozessen erstellt, geändert usw. werden, dem richtigen Benutzer gehören.
Vielleicht fragen Sie sich, warum Apache sich so verhält ... Ich empfehle Ihnen, all diese Fragen zu richten an http://www.apache.org
Zusammengefasst: Dies ist kein Fehler im System, sondern genau so ist das System konzipiert ... Macht das Ihr Leben einfacher? Nein. Aber es ist die Erklärung. Es gibt mehrere mögliche Umgehungslösungen ... eine davon ist die FTP-Client-Schicht, die ich meines Wissens für Version 1.1 geschrieben habe.
Louis "
Dies wird erläutert unter http://forum.joomla.org/index.php/topic,30796.0.html. Eine Zusammenfassung der Gründe finden Sie nachfolgend im Wortlaut:
" Zunächst einmal: Es spielt keine Rolle, ob Ihr Benutzer oder httpd (bzw. nobody, apache oder wie auch immer der Apache-Benutzer heißt) die Joomla-Kerndateien besitzt. Der Dateieigentümer wird bei der Erstellung der Datei festgelegt. Er ergibt sich aus dem Benutzer, dem der Betriebssystemprozess gehört, der die Datei im Dateisystem erstellt.
Szenario: Sie sind als Benutzer angemeldet und erstellen mit Ihrem bevorzugten Texteditor (zum Beispiel vi) eine neue Datei something.txt.
Da Sie das Programm vi ausführen, während Sie als Sie selbst angemeldet sind (wir gehen im Folgenden davon aus, dass der Benutzername USER lautet), gehört der vi-Prozess, der die Datei something.txt im Dateisystem erstellt hat, USER. Das bedeutet, dass die Datei something.txt USER gehört.
Szenario: Sie laden per FTP eine Datei ... somethingElse.txt hoch.
Da Sie mit Ihrer Kombination aus Benutzername und Passwort per FTP angemeldet sind ... wurde der FTP-Prozess, mit dem Sie arbeiten, auf den Benutzer USER umgestellt und gehört diesem. Wenn die Datei somethingElse.txt in das Dateisystem hochgeladen (erstellt) wird ... gehört sie daher dem Eigentümer des Prozesses, der sie erstellt hat, nämlich USER.
Szenario: Sie laden eine Datei in ein PHP-Skript hoch, das sie als yetSomethingElse.txt speichert (ohne suexec mit PHP).
Nun, aus Sicherheitsgründen führt Apache seine Prozesse unter einem „besonderen“ Benutzer aus ... häufig nobody, apache oder httpd genannt, oder wie auch immer der Systemadministrator ihn in der Konfigurationsdatei benennt. In diesem Fall nehmen wir an, der Apache-Benutzer heißt httpd. Sie laden Ihre Datei also in das PHP-Skript hoch. PHP läuft in einem Apache-Modul, das im Apache-Prozess läuft ... und wem gehört dieser? ... Richtig ... dem Benutzer httpd. Wenn PHP daher move_uploaded_file() aufruft und die Datei yetSomethingElse.txt speichert ... gehört sie niemand anderem als dem Benutzer httpd. Ist das ein Fehler in PHP? Nein. Ist es ein Fehler in Apache? Nein. Ist es ein Fehler im PHP-Skript? Nein. So funktionieren die Besitzverhältnisse im Dateisystem nun einmal.
suexec ist ein System, mit dem Apache den Benutzer wechselt (Switch User) und den Prozess ausführt (EXECute), und zwar abhängig von dem Benutzer, dem das Dokumentenverzeichnis (document root) des jeweils angefragten virtuellen Hosts gehört. (Haben Sie das SUEXEC darin entdeckt?) Diese Lösung bieten einige Hosting-Anbieter an. Sie sorgt dafür, dass alle Dateien, die von den Apache-Prozessen erstellt, geändert usw. werden, dem richtigen Benutzer gehören.
Vielleicht fragen Sie sich, warum Apache sich so verhält ... Ich empfehle Ihnen, all diese Fragen zu richten an http://www.apache.org
Zusammengefasst: Dies ist kein Fehler im System, sondern genau so ist das System konzipiert ... Macht das Ihr Leben einfacher? Nein. Aber es ist die Erklärung. Es gibt mehrere mögliche Umgehungslösungen ... eine davon ist die FTP-Client-Schicht, die ich meines Wissens für Version 1.1 geschrieben habe.
Louis "
Tell us what you need
Compare available plans or describe your workload so we can discuss a suitable starting point.