[WordPress] サーバ移行後に画像がアップロードできなくなった → 解決

Button a Day Project: WordPress
Creative Commons License photo credit: cletch

最近、当ブログ(WordPressで運用中)を「さくらレンタルサーバ」から「さくらのVPS」に引越したのですが、引越後に画像がアップロードできなくなってしまいました。解決できたのでメモ。

ちなみに当方の環境は以下のようになっております。

  • WordPress 3.0.1

画像がアップロードできない!?

WordPressの管理画面(Webブラウザ)から記事を書いていた時のこと。

画像をアップロードしようとしたら、
「/xxx/yyy/wp-content/uploads/2010/10が作成できません。権限もありません。」
といった旨のエラーメッセージが表示され、その結果、画像をアップロードすることができませんでした。

記事に画像を掲載することはそんなに多くはないのですが、やはりこのままだったら困るということで、原因を調査することに。

そして解決へ・・・

上記のエラーメッセージに含まれていた「/xxx/yyy」というディレクトリ、よく考えると引越し後の新しいサーバには存在しないことに気づきました。

この「/xxx/yyy」というディレクトリは引越し前の古いサーバのDocument Rootだった気がするので、「データベースに引越し前の設定情報が残ったりしてるのかなぁ」と思い、データベースを調査してみることに。

調査すること数分、それっぽいところを無事発見!

WordPressが使っているデータベースの「wp_options」というテーブルに注目!
そのテーブルから「option_name」カラムの値が「upload_path」となっている行を探し出します。

どうやらWordPressは、この項目値を使って画像のアップロード先ディレクトリを決定しているようです。
実際、同じ行の「option_value」カラムの値は「/xxx/yyy/wp-content/uploads」のようになっていたので、この値を正しいパスに修正したところ、無事画像のアップロードができるようになりました!

まとめ

最初はパーミッションの問題なのかなと思っていたのですが、パーミッションにおかしいところがなさそうだったので、ほんの少し考えこんでしまいました。

サーバの引越しにトラブルはつきものなので、もう少し慎重に色々調べてから引越しすればよかったかもしれないっす。

それでは!