前提
サーバがWindows server 2008、IIS6の環境。
サーバは初期で用意したままで特に何もいじってない。。
最低限PHPは入れてもらってる状態での設置。
また、Wordpressはドキュメントルートに任意のディレクトリを作成し、
その中にインストールしてindex.phpと.htaccessのみドキュメントルートにおいて管理画面の
URLと分けることとする。
ハマった点(
htaccessが使えない(解決)
web.configにて記述しなきゃならん
ドキュメントルートに下記で設置
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
デフォルトだとRewriteがない(解決)
Rewrite module 2.0 for IISをインストールして対応
linux環境で作ったWPのDBダンプをリストアしてみたら管理画面のスタイルシートが死んだ。(解決)
load-style.phpがなんか動かなくなる、wp-config.phpに下記記述で対応
define('CONCATENATE_SCRIPTS',false);
メディアアップロードでローディング画像がぐるぐるまわったまま進まない(解決)
wp-admin/ajax-load.phpが環境によって正しく動かないらしい。
どうもcontent-type:text/htmlでよまれるのがあれだとか。。下記対応
//@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
if(in_array($_POST['action'], array('query-attachments', 'send-attachment-to-editor'))){
@header('Content-Type: application/json; charset=' . get_option('blog_charset'));
}else{
@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
}
WPアップデートはきをつけて。。
パーマリンク設定をデフォルトからよくあるカスタム設定「/%%post_id%%」とかにすると画像アップロードが死ぬ(解決)
下記対応手順
1.php.iniにのupload_tmp_dirに"C:¥TEMP"を設定
2.上記テンポラリディレクトリに権限フルコントロール付与
3.IIS再起動
4.wp-config.phpに「define('WP_TEMP_DIR','C:¥TEMP');」設定
5.uploadsディレクトリに「IIS_IUSERS」の権限フルコントロール付与
phpからのメール送信(mail関数など)が使用できない。(解決)
根本的に
・25ポートがあいてない
ってのがあって試しに開けたけど、sendmail.exe単体で動かないくさい。
ということで、仮想SMTPサーバを構築することに。
SMTPサーバインストール
1.サーバマネージャーを起動し、機能を追加でSMTPサーバを選択。
2.インストール後、「インターネットインフォメーションサービス6.0マネージャー」を起動
3.SMTP Virtual Serverのプロパティでアクセスタブ野中の接続制御と中継の制限にて「127.0.0.1」を許可する
4.SMTP Virtual serverを起動
5.cmdでtelnetによる動作確認で問題なくメールが送信できればOK
wp mail smtpプラグインにてローカルのsmtpを利用したメール送信を実施。
まとめ
よっぽどなことがない限りWebサーバはLinuxに限る。マジで。