2011-09-28

How to fine tune your WordPress settings to allow image file uploads on IIS7

We have been testing WordPress 3.2.1 and found out that it would not upload any image files.

You may end up with the following error or something similar when you try to upload an image:
Unable to create directory *********/wp-content/uploads. Is its parent directory writable by the server?

This error occurs when you have not given the IUSR account write-access to uploads directory.

You may be able to fix this problem with the following steps:
(Note: we assume that the PHP environment is properly set up, so the detailed instructions on php.ini settings are not mentioned here.)

1. Make sure a folder named uploads exists in wp-content.
This directory is oftentimes not automatically created in the IIS environment, so you may have to create it on your own.

2. Right-click on uploads directory to bring up Security tab.
Add IUSR to the user list and assign write-access to it.

3. Now, go back to the WordPress media settings and make sure if the URL for file uploads is wp-content/uploads.

IIS7 にインストールされた WordPress からファイルのアップロードができない場合の調整方法

 Windows Server 2008 R2 の IIS7 環境に WordPress 3.2.1 をインストールしてみたのですが、デフォルトのままでは WordPress から画像やファイルをアップロードできないことがわかりました。

 まず、アップロードを試みると、以下のようなエラーメッセージが出てしまいます。

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

これは明らかにディレクトリパーミッションが問題で発生するトラブルですので、以下の順に確認しながら調整します。
(php.ini の設定ではファイルアップロードを有効にしていることを前提にしていますので、php 設定についてはここでは省略します。)

1. wp-content フォルダの下に uploads フォルダがあることを確認。
uploads フォルダがなければ作成してください。



2. uploads フォルダのアクセス権に IUSR が登録されていることを確認。
IUSR がなければ、図のように IUSR を追加して、書き込み権限だけを与えます。

注意:デフォルトの IIS_IUSRS だけではアップロードするための権限が足りないため、ローカルコンピュータの IUSR を手動で追加する必要があります。



3. WordPress のメディア設定の「アップロードするファイルの保存場所」が wp-content/uploads になっていることを確認します。



 これで当方は画像のアップロードができるようになりました。
 当方で試した WordPress のバージョンは 3.2.1 ですが、以前のバージョンでもアップロード設定で躓いた方は、この方法で試してみると解決するかもしれません。

2011-08-15

ターミナルサービスのライセンスサーバーが無効化されていて大慌て

 Windows Server 2008 のターミナルサービスにユーザライセンス(CAL)を追加しようとしたところ、ターミナルサービスライセンスサーバが無効になっていたため、アクティブ化しようとしたら次のようなエラーが発生しました。



 そこでイベントビューアでエラーを調べてみると、以下のような ID 38 のエラーが連続で記録されていました。

次のエラーのため、ターミナル サービス ライセンス サーバーはターミナル サービス クライアント アクセス ライセンス (TS CAL) をクライアントに発行できません: 証明書をストアに追加できません。エラー c0010020




 ID 38 の情報を調べまわったところ、以下の方法で対処できることがわかりました。

【ID 38 エラーの解消方法】

1. ターミナルサーバーライセンスサービスを停止する。



2. regedit でレジストリエディタを開き、以下の 3 つのキーを削除する。


HKEY_LOCAL_MACHINE\Software\Microsoft\TermServLicensing\Certificates

HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\TermservLicensing\Parameters\Certificates.000

HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\TermservLicensing\Parameters\Certificates.001

3. ターミナルサーバーライセンスサービスを開始する。
4. ターミナルサーバーライセンスマネージャを起動し、ライセンスサーバが有効化していることを確認する。




ちなみに、Microsof Open License のサイトにある問い合わせ電話番号から問い合わせをしようとすると、自動音声サービスで、ライセンスの技術情報に関するサポートは有償になると言われるので要注意です。

参考:
“The License Server Activation Wizard encountered an internal error from the license server. Message Number: 0xc0110011″(英語)