LoginSignup
7
11

More than 3 years have passed since last update.

【Windows IIS】IIS環境にWordpressいれたら思いの外いろいろアレだった話【Wordpress】

Last updated at Posted at 2016-04-12

前提

サーバがWindows server 2008、IIS6の環境。
サーバは初期で用意したままで特に何もいじってない。。
最低限PHPは入れてもらってる状態での設置。
また、Wordpressはドキュメントルートに任意のディレクトリを作成し、
その中にインストールしてindex.phpと.htaccessのみドキュメントルートにおいて管理画面の
URLと分けることとする。

ハマった点(

htaccessが使えない(解決)

web.configにて記述しなきゃならん
ドキュメントルートに下記で設置

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に下記記述で対応

wp-config.php
define('CONCATENATE_SCRIPTS',false);

メディアアップロードでローディング画像がぐるぐるまわったまま進まない(解決)

wp-admin/ajax-load.phpが環境によって正しく動かないらしい。
どうもcontent-type:text/htmlでよまれるのがあれだとか。。下記対応

wp-admin/ajax-load.php
//@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に限る。マジで。

7
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11