私は最近、自分のラップトップ上にubuntu 12.10を実行しているWordpress 3.5.2のローカルインストールをインストールしました。 here からガイドに従ってインストールしました。 Media Library -> Add New
経由でメディアファイルをアップロードすることができないことを除いて、これまでのところ、他のすべてはうまくいきます。
進行状況バーが0から100%に上昇するにつれて、ファイルがアップロードされているようです。ただし、それ以降は、ワードプレスはサムネイルまたは画像をどこにも表示できません。 uploadsフォルダを見た後、それは空です。それで、サポートフォーラムからの指示に従うと、それはパーミッションの問題だと思いました。
Wordpressは/usr/share/wordpress
にインストールされています。 uploadsフォルダはデフォルトで/var/lib/wordpress/wp-content/uploads
にあります。 755
にはwp-content/
、uploads
には777
があります。フォルダはwww-data
によって所有されています。
私はエラーを見ることができません、ファイルは単にどこにも現れないでしょう。アクセス許可があるため、任意のユーザーとして手動でファイルをuploads/
フォルダにコピーできます。また、Webブラウザでhttp://localhost/wordpress/wp-content/uploads/file.jpg
を表示できます。テーマも追加プラグインもインストールされていません。設定ファイルにdefine('WP_DEBUG', true);
を追加しましたが、エラーは表示されません。
編集:それが何か助けになるならば、これは/var/log/Apache2/error.log
からの行です。
[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:これは権限を持つディレクトリリストの例です。
msvalkon@Lunkwill:/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//
msvalkon@Lunkwill:/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/
msvalkon@Lunkwill:/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/
そう、私は問題を解決することができました。たぶんこの答えは問題に再び遭遇する他の人々を助けます。この問題は、ubuntuのパッケージマネージャを使ってインストールするときのインストール手順に本質的にあります。
実際の問題はデータベースの設定にあり、インストールはWP_CONTENT_DIR
を/srv/www/wp-content/localhost
に設定しました。
msvalkon@Lunkwill:/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);
?>
どうやら.deb
パッケージは以下のディレクトリ構造を作成します。
/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
/srv/www/wordpress/wp-content
のパーミッションの変更はついにうまくいきました。
777パーミッションはlocalhostではpassablyOKですが、本番環境では非常に悪いです。 (一時的に777を設定してアップロードを試みることができ、それがうまくいけば、フォルダのアクセス権を755に戻します。これはいくつかのHost設定のための回避策です)
標準のWP許可スキームについては http://codex.wordpress.org/Changing_File_Permissions を参照してください。
そのドキュメントから:
通常、すべてのファイルはWebサーバー上のユーザー(ftp)アカウントによって所有され、そのアカウントによって書き込み可能であるべきです。共有ホストでは、ファイルはWebサーバープロセス自体によって所有されるべきではありません(これは、www、Apache、または誰もいないユーザーである場合があります)。
安全な権限を設定する最善の方法については http://codex.wordpress.org/Hardening_WordPress#File_Permissions を参照してください。
私の13.04インストールでは、/srv/www/wp-content/localhost
とuploads
がその中の実際のディレクトリであり、他の3つのディレクトリはblogs.dir
へのシンボリックリンクですが、実際にはディレクトリ/var/lib/wordpress/wp-content
がありました。
2つのサブディレクトリを置き換えて、それらを他のサブディレクトリと同じシンボリックリンクにすることで、問題が解決しました。