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/
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.
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 .
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.