it-swarm.com.de

Kann nichts über WordPress hochladen

Ich habe kürzlich eine lokale Installation von Wordpress 3.5.2 auf meinem Laptop installiert, auf dem Ubuntu 12.10 ausgeführt wird. Ich habe nach der Anleitung von hier installiert. Bisher funktioniert alles andere, außer dass ich keine Mediendateien über Media Library -> Add New hochladen kann.

Die Datei scheint hochgeladen zu werden, wenn der Fortschrittsbalken von 0 auf 100% steigt. Danach kann WordPress die Miniaturansicht oder das Bild jedoch nirgendwo mehr anzeigen. Nachdem Sie sich den Upload-Ordner angesehen haben, ist er leer. Also dachte ich, es ist ein Berechtigungsproblem, nachdem ich den Anweisungen in den Support-Foren gefolgt bin, keine Würfel.

Wordpress ist auf /usr/share/wordpress installiert. Der Upload-Ordner befindet sich standardmäßig in /var/lib/wordpress/wp-content/uploads. Ich habe 755 für wp-content/ und 777 für uploads. Ordner gehören www-data.

Ich kann keine Fehler sehen, die Dateien werden lediglich nirgendwo angezeigt. Aufgrund der Berechtigungen kann ich Dateien manuell in den Ordner uploads/ kopieren und http://localhost/wordpress/wp-content/uploads/file.jpg mit einem Webbrowser anzeigen. Ich habe keine Themes oder zusätzlichen Plugins installiert. Ich habe define('WP_DEBUG', true); zu meiner Konfigurationsdatei hinzugefügt, aber es werden keine Fehler angezeigt.

BEARBEITEN: Hier ist eine Zeile von /var/log/Apache2/error.log, wenn es hilfreich ist.

[Thu Jun 27 22:35:02 2013] [error] [client 127.0.0.1] PHP Warning:  Creating default object from empty value in /usr/share/wordpress/wp-admin/includes/update.php on line 92, referer: http://localhost/wordpress/wp-admin/upload.php

EDIT2: Hier sind Beispiele für Verzeichnislisten mit Berechtigungen

[email protected]:/var/www$ ll
total 20
drwxr-xr-x  2 www-data www-data 4096 Jun 27 12:21 ./
drwxr-xr-x 15 root     root     4096 Jun  7 10:06 ../
-rw-------  1 www-data www-data   46 Jun 27 12:21 .bash_history
-rw-r--r--  1 root     root      200 Jun 27 11:46 index.php
-rw-r--r--  1 root     root       11 Dec 14  2012 .profile
lrwxrwxrwx  1 msvalkon www-data   21 Jun 20 11:45 wordpress -> /usr/share/wordpress//

[email protected]:/usr/share/wordpress$ ll
total 164
drwxr-xr-x   5 msvalkon www-data  4096 Jun 27 13:41 ./
drwxr-xr-x 349 root     root     12288 Jun 20 11:51 ../
lrwxrwxrwx   1 msvalkon www-data    23 Sep 13  2012 .htaccess ->  /etc/wordpress/htaccess
-rw-r--r--   1 msvalkon www-data   395 Jan  8  2012 index.php
-rw-r--r--   1 msvalkon www-data  9202 Sep 13  2012 readme.html
-rw-r--r--   1 msvalkon www-data  4264 Dec 14  2011 wp-activate.php
drwxr-xr-x   9 msvalkon www-data  4096 Jun 27 12:48 wp-admin/
--- SNIP ---
drwxr-xr-x   5 msvalkon www-data  4096 Jun 27 12:48 wp-content/


[email protected]:/var/lib/wordpress$ ll wp-content/
total 28
drwxrwxrwx 7 msvalkon www-data 4096 Jun 27 12:58 ./
drwxrwxrwx 3 msvalkon www-data 4096 Jun  5 18:17 ../
drwxrwxrwx 2 msvalkon www-data 4096 Sep 13  2012 blogs.dir/
drwxrwxrwx 2 msvalkon www-data 4096 Jun 27 12:48 languages/
drwxrwxrwx 2 msvalkon www-data 4096 Jun 27 12:48 plugins/
drwxrwxrwx 2 msvalkon www-data 4096 Jun 27 12:48 themes/
drwxrwxrwx 2 msvalkon www-data 4096 Jun 27 13:17 uploads/
1
msvalkon

Richtig, ich habe es geschafft, das Problem zu lösen. Vielleicht hilft diese Antwort anderen Menschen, die erneut auf das Problem stoßen. Das Problem liegt inhärent in der Installationsprozedur bei der Installation über den Paketmanager in Ubuntu.

Das eigentliche Problem lag in der Datenbankkonfiguration, die Installation hatte WP_CONTENT_DIR auf /srv/www/wp-content/localhost gesetzt, ein Verzeichnis, von dem ich nicht einmal wusste, dass es es gibt.

[email protected]:/var/www/wordpress$ Sudo cat /etc/wordpress/config-localhost.php 
<?php
# Created by /usr/share/doc/wordpress/examples/setup-mysql 
--- SNIP ----
define('WP_CONTENT_DIR', '/srv/www/wp-content/localhost');
define('WP_DEBUG', true);
?>

Anscheinend erstellt das .deb-Paket die folgenden Verzeichnisstrukturen:

/usr/share/wordpress <-- contains a wp-content-folder and symlinks to
                         /var/lib/wordpress/wp-content/uploads and /blogs.dir
/var/lib/wordpress <-- contains a wp-content-folder
/srv/www/wordpress <-- also contains a wp-content-folder

Das Ändern der Berechtigungen von /srv/www/wordpress/wp-content hat endlich funktioniert.

0
msvalkon

777 Berechtigungen sind passabel OK auf localhost, aber sehr schlecht in der Produktion. (Sie können vorübergehend 777 einstellen und versuchen, einen Upload durchzuführen. Wenn dies funktioniert, setzen Sie die Ordnerberechtigungen auf 755 zurück. Dies ist eine Problemumgehung für einige Host-Konfigurationen.)

Siehe http://codex.wordpress.org/Changing_File_Permissions für das Standard-Berechtigungsschema WP.

Aus diesem Dokument:

Normalerweise sollten alle Dateien Ihrem Benutzerkonto (ftp) auf Ihrem Webserver gehören und von diesem Konto beschreibbar sein. Auf gemeinsam genutzten Hosts sollten Dateien niemals dem Webserver-Prozess selbst gehören (manchmal ist dies www oder Apache oder nobody user).

Informationen zum Festlegen sicherer Berechtigungen finden Sie unter http://codex.wordpress.org/Hardening_WordPress#File_Permissions .

0
markratledge

In meiner 13.04-Installation gab es tatsächlich ein Verzeichnis /srv/www/wp-content/localhost, in dem sich blogs.dir und uploads als tatsächliche Verzeichnisse befanden, während die anderen drei Verzeichnisse symbolische Links zu /var/lib/wordpress/wp-content sind.

Das Ersetzen der beiden Unterverzeichnisse und das Anpassen von Symlinks an die anderen löste das Problem für mich.

0
user35041