【ワレコのWordPress】画像がアップロードできない【解決】

この記事は約5分で読めます。
スポンサーリンク

Windows VPSをレンタルサーバー契約して、Windows Server 2012 R2 Standard をインストールした。

そのOS環境に

  • IIS
  • PHP
  • MySQL
  • WordPress

をインストールするとようやくWordPressが使えるようになる。

今回初めてそういう環境を構築したのでかなり苦労したが、インターネット上に沢山の情報があるので役に立つ情報を見つけ出してどうにか設定出来た。ネット上の情報には古いものや、間違っているものなど様々なものが有るので鵜呑みにせずによく注意して取捨選択しなくてはならない。

さて、そのWordPressであるがなかなか使い勝手が良い。ユーザーインタフェースが直観的で、かつ、アニメーションみたいなヘンテコな機能が無いので使いやすい。

最近では、ユーザーインタフェースにヘンテコなアニメーションとか、勝手に動くボタンとか、分け分からんのが多いので困る。押そうと思ったボタンが逃げたり、勝手に消えたり、そいうのはイライラするだけだ。ワテはユーザーインタフェースにうるさい。

さて、そのWordPressで文章だけでなく画像も貼りたい場合には、まず、パソコンから画像をサーバーにアップロードして、それを文章に貼りつけるという二段階の操作になる。

ところが、今日、初めて画像をアップロードして貼り付けようとしたら、アップロードが出来ない。こんなエラーメッセージが出る。

ディレクトリ wp-content/uploads/2015/07 を作成できませんでした。この親ディレクトリのアクセス権はサーバーによる書き込みを許可していますか ?

いやあ、特に何も設定していません。そもそもディレクトリ wp-contentはWordPressを入れたら自動的に作られているが、その下のuploadsが無いぞ。

試しに、手作業でuploadsを作ってみたが、同じエラー。埒が明かないので、ググりまくったら解決した。

この記事ではWordPressにおいて、画像がアップロードできないエラーが出た場合の対策を紹介したい。

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
スポンサーリンク
スポンサーリンク

WordPressで画像アップロードできないエラー解決法

WordPressをインストールしたサーバーにおいて、フォルダの状態を確認する。

ワテの場合には、

wp-content/

と言う名前のフォルダは見つかったのだが、

wp-content/uploads/

と言う名前のフォルダが見つからない。

このフォルダの中には、WordPressが正しく動けばアップロードした日付に応じて

wp-content/uploads/2015/07 

のようにサブフォルダが作成されて、その中にアップロードした画像ファイル、PDFファイル、音楽ファイルなどが保管される。

もしuploads/ フォルダが見付からない場合には uploads/ フォルダを作成する

 

作成したuploadsフォルダを右クリックしてプロパティウインドウを表示する(下図)。

09-winSvr2012-uploads-property

上図において、[セキュリティ]タブをクリックして[編集]ボタンをクリックすると下図が開く。

10-winSvr2012-uploads-IUSR

上図においてIUSRを[追加]する。

上図は既に追加した状態だ。追加して[適用]を押す前に、下段のアクセス許可の項目で、読み取りだけでなく、書き込みにも✔を入れる。

上図のようにチェックしたらOKを押してウインドウを閉じる。

これで問題なくupload出来るようになった。

ただし、ファイル名が日本語を含むものはエラーでuploadに失敗する。これはWordPressの仕様なのか、ワテの環境で何らかの設定が不完全なのかは未確認。いずれにしても、Webに公開する場合にはファイル名などには日本語は使わないほうが良いと思うので実用上はこのままでも良いのだが、理由が気になるのでその原因調査はまた別の機会にしたい。

参考にしたHPなど

http://creativeweb.jp/tips/iis_acl/

IUSRとは何か?

Windows Serverの標準WEBサーバー機能であるIISの設定を行う場合に

  • IUSR
  • IIS_IUSER

と言った名前をよく目にする。

ワテはまだ十分に理解出来ていないが、その名前から判断してどちらもIIS関連のユーザーあるいはグループのようだ。

今回の画像アップロードの場合には、IUSRさんに対して、

wp-content/uploads/

フォルダへの読み書き権限を与えて解決した。

IIS_IUSRSやIUSRの違いやその意味に関しては、偶々見付けた以下のサイトの記事が詳しいようだ。

IIS_IUSRS and IUSR permissions in IIS8

IIS_IUSRS and IUSR permissions in IIS8 - Stack Overflow

ただし英語なのでワテはまだ十分理解出来ていない。

追記 – 日本語ファイル名に関して

ファイル名に日本語を含む画像などがupload時に失敗する問題に関して少し調べた。

その結果、WordPressに

WP Multibyte Patch

というプラグインが有る事が分かった。開発元は WordPress 日本語公式サイト の運営者さんと言う事なので、安心して利用できるプラグインのようだ。

このプラグインの機能説明の中に、

ファイル名サニタイズ
マルチバイトを含むファイル名のファイルがアップロード、またはメール添付された場合にファイル名を md5 に変換します。

と言うのがあった。

なので、やはりWordPressの標準の機能では日本語ファイル名のアップロードに問題があるのかな?

その対策として、このようなプラグインが必要になるのだと思うが、実際にはまだ試していない。

まあ、ファイル名に日本語を使うと何かと問題があるので、ネット上にuploadする画像にはローマ字ファイル名を付けておくのが無難かな。

ワテはそうしている。

本を読む

一冊本を買って隅々まで読み通すのも良い。

“いちばんやさしい”って言うくらいだから、入門者に最適だ。

あるいは、WordPressでサイト構築術をマスターしたい人にお勧めだ。

Kindle版だと割安だし、無料のリーダーでスマホ、タブレットなどで手軽に読める。

Kindle版では、買う前に中身を少し無料で見ることが出来る。

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
コメントを読む

この記事には読者の方からコメントが 1件あります。
興味ある人はこのページ下部にあるコメントを参照下さい。

IISWindows ServerWordPress
スポンサーリンク
warekoをフォローする
スポンサーリンク
われこ われこ

コメント

  1. wareko より:

    そうですね、UNIXやLINUXの場合は、WordPressのインストールに限らず、何かのインストールで書き込み権限の問題が出たら、取り敢えず777にして置けば問題は出なくなると思います。