it-swarm.com.de

Alle Verzeichnisse als nicht beschreibbar aufgeführt

Vorheriger Titel: Erweiterungen können nicht installiert werden: Fehler: Archiv existiert nicht

Ich habe Joomla 3.3.6 auf meinem CentOS 6.5-Server entfernt und neu installiert. Wollte einige Sicherungsprogramme und ein CCK installieren. Ich bin jedoch beim Versuch hängen geblieben, Erweiterungen zu installieren, die Fehler erhalten wie:

Error
Archive does not exist

Warning
JFolder: :files: Path is not a folder. Path: /var/www/html/jrt/install_54b9d8947a105
JFolder: :folder: Path is not a folder. Path: /var/www/html/jrt/install_54b9d8947a105
JFolder: :files: Path is not a folder. Path: /var/www/html/jrt/install_54b9d8947a105
JInstaller: :Install: Cannot find Joomla XML setup file

Dies schreit nach einem Berechtigungsfehler, aber dies ist die Berechtigung für den Ordner jrt (tmp)

drwxr-xr-x.  2 root root  4096 Jan 16 22:32 jrt

Die meisten Vorschläge sind, es auf 777 zu setzen, aber ich sollte denken, dass dies eine schlechte Praxis ist und es trotzdem nicht funktioniert. Ich bin an NTFS-Berechtigungen gewöhnt und ich denke, ich muss die Berechtigungen für die untergeordneten Elemente dieses Ordners festlegen, aber der Inhalt ist leer, damit nichts geändert werden kann.

Ich habe diese traurige Geschichte ein paar Mal im Web gesehen und ihren Pfad oder die damit verbundenen Berechtigungen. Ich weiß, dass der Pfad existiert, als würde ich den Ordner löschen. Ich erhalte auch die Fehlermeldung

JFolder: :folder: Path is not a folder. Path: /var/www/html/jrt

Ich weiß nicht, ob es mehr zum Testen gibt, aber PHP Handler tauchte auch in der Forschung auf und seitdem habe ich PHP aktualisiert, damit ich das ausführen konnte Joomla-Version ist vielleicht auch ein Schuldiger.Zum Testen habe ich eine kleine PHP-Datei erstellt

<?php
   print "hello world";
?>

Um zu sehen, ob es "Hallo Welt" anzeigen würde, was es tatsächlich tat.

PHP ini

In einer Antwort wurde ich aufgefordert, die Einstellungen in PHP.ini zu ändern. Folgendes habe ich von den Standardeinstellungen geändert. Wenn Sie hier Änderungen vornehmen, werden die Fehler nicht behoben.

upload_max_filesize = 10M
post_max_size = 11M
max_input_time = 300
max_execution_time = 120
default_socket_timeout = 120

Berechtigungen

Nach Überprüfung des korrekten Teils der Administrationskonsole System> Systeminformationen> Verzeichnisberechtigungen wird hier kein einziger Eintrag als beschreibbar aufgeführt. Muss ich jeden Ordnerbaum bearbeiten? Auch hier halte ich die Einstellung von 777 in diesen Ordnern nicht für eine gute Idee (oder Arbeit). Zum Beispiel listet es meinen temporären Ordner als nicht beschreibbar auf, aber es sieht aus wie die korrekten Berechtigungen oben.

Ich habe auch versucht, den Gruppeneigentümer im HTML-Stammordner zu ändern, sodass jetzt alle Ordner und Dateien Apache als Gruppe haben. Bisher keine Änderung.

Apache-Fehler

Dies erhalte ich, wenn ich versuche, eine Erweiterung zu installieren

[Sat Jan 17 19:24:02 2015] [error] [client 123.123.123.123] PHP Warning:  file_put_contents(/var/www/html/jrt/plg_webinstaller_3.2v1.0.5.Zip): failed to open stream: Permission denied in /var/www/html/libraries/joomla/filesystem/file.php on line 431, referer: http://mywebsite.ca/administrator/index.php?option=com_installer
[Sat Jan 17 19:24:02 2015] [error] [client 123.123.123.123] PHP Warning:  array_merge(): Argument #1 is not an array in /var/www/html/libraries/cms/installer/helper.php on line 154, referer: http://mywebsite.ca/administrator/index.php?option=com_installer
[Sat Jan 17 19:24:02 2015] [error] [client 123.123.123.123] PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/libraries/cms/installer/helper.php on line 207, referer: http://mywebsite.ca/administrator/index.php?option=com_installer
[Sat Jan 17 20:39:06 2015] [error] [client 123.123.123.123] PHP Warning:  file_put_contents(/var/www/html/jrt/plg_webinstaller_3.2v1.0.5.Zip): failed to open stream: Permission denied in /var/www/html/libraries/joomla/filesystem/file.php on line 431, referer: http://mywebsite.ca/administrator/index.php?option=com_installer
[Sat Jan 17 20:39:06 2015] [error] [client 123.123.123.123] PHP Warning:  array_merge(): Argument #1 is not an array in /var/www/html/libraries/cms/installer/helper.php on line 154, referer: http://mywebsite.ca/administrator/index.php?option=com_installer
[Sat Jan 17 20:39:06 2015] [error] [client 123.123.123.123] PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/libraries/cms/installer/helper.php on line 207, referer: http://mywebsite.ca/administrator/index.php?option=com_installer
4
Matt

Ein großes Dankeschön an @VilleNiemi für seine Fehlerbehebung, die mich auf den Schreibpfad gebracht hat. (Ja, ich habe "write" anstelle von "right" als Wortspiel verwendet.) "My Directory Permissions" schien die Ursache für mein Problem zu sein.

Unwritable

Lösung, wenn Host dediziert ist

Ich dachte, dass das Ändern der Gruppe von root in Apache das Problem beheben würde, aber nichts geändert wurde. Nachdem ich einen anderen Beitrag auf Joomla Forum gelesen hatte, sah ich, wie jemand den Besitzer der Ordner und Dateien änderte. Also nachdem ich folgendes gelaufen bin

Sudo chown -R Apache:apache /var/www/html/

Nachdem ich meinen Bildschirm aktualisiert habe, sehe ich wieder die Farbe Grün.

Green is good

Die Dateien im Stammverzeichnis meines Webverzeichnisses sind für Berechtigungen mit 744 festgelegt. Ordner mit 755 und Dateien in diesen Ordnern sind 644. Ich denke, ich bin für den Moment bereit.

Das erste Plugin auf meiner Seite wurde erfolgreich installiert. Auf zu den Rennen mit mir!

Lösung, wenn Shared Host.

Wird etwas ausführlicheres posten, sobald es vollständig ist, aber eine gute Lektüre kommt von Dionysopoulos , die in dieser Antwort verlinkt ist 4 . Es geht um Berechtigungsprobleme und darum, warum meine dedizierte Host-Lösung im Allgemeinen und insbesondere für Shared Host-Anbieter schlecht ist.

4
Matt

Das "Archiv existiert nicht" legt nahe, dass Joomla! Archiv konnte nicht hochgeladen werden. Dies führt dazu, dass das Archiv nicht dekomprimiert werden kann und der Inhalt nicht in den erwarteten Ordner verschoben wird. Das heißt, der erwartete Ordner existiert nicht.

Entweder hat Ihr PHP ein zu niedriges Upload-Limit für die betreffenden Dateien oder Ihr tmp-Pfad ist falsch. Wenn Sie PHP= Sie selbst installiert haben, die entsprechenden Einstellungen sind wahrscheinlich immer noch auf ihren Standardwerten, die 2 MB groß und zu klein sind. Setzen Sie in der php.ini upload_max_filesize und post_max_size auf einen höheren Wert.

Erhöhen Sie dabei auch die max_execution_time, da dies zu sehr ärgerlichen Problemen führt, wenn während der Installation oder Aktualisierung eine Zeitüberschreitung auftritt.

2
Ville Niemi