この記事の最終更新日から 1 年以上が経過しています。情報が古い可能性がありますので、ご注意ください。

Windows Server 2016 に WordPress を手動でインストールする方法について説明します。

Web Platform Installer が動かなくて困った

このブログは Azure VM の Windows Server 2012 R2 に WordPress をセットアップして運用していましたが、Windows Server 2016 もリリースされたし、Application Gateway で WAF も使えるようになったし、もろもろアップグレードしてみることにしました。

Web Platform Installer を使えばセットアップもすぐ終わるし・・・と思いきや、Windows Server 2016 で Web Platform Installer を使って WordPress をインストールしようとしたらエラーが出て動きません。

WPIerror

しょうがないので、Web Platform Installer が何をやっているのか調べながら、手動で WordPress をインストールしてみました。

いろいろとインストール

まずは IIS の設定

Windows Server 2016 で IIS を以下の構成でセットアップ。「IP およびドメインの制限」はインストールしなくても良いですが、WordPress の管理系のファイルに対するアクセスを IP アドレスでフィルタリングしたかったのでインストールしました。

[X] Web サーバー (IIS)
    [X] Web サーバー
        [X] HTTP 共通機能
            [X] HTTP エラー
            [X] ディレクトリの参照
            [X] 既定のドキュメント
            [X] 静的なコンテンツ
        [X] セキュリティ
            [X] 要求フィルター
            [X] IP およびドメインの制限
        [X] パフォーマンス
            [X] 静的なコンテンツの圧縮
        [X] 状態と診断
            [X] HTTP ログ
            [X] ログ ツール
            [X] 要求の監視
        [X] アプリケーション開発
            [X] CGI
    [X] 管理ツール
        [X] IIS 管理コンソール

 

次、URL Rewrite Module のインストール。このモジュールは、WordPress のパーマリンクの動作に必要。

インストーラーは下からダウンロード。
https://www.iis.net/downloads/microsoft/url-rewrite

 

次、PHP のインストール。今回は v5.6.28 を使ってみました。

下のページから「VC11 x64 Non Thread Safe (2016-Nov-09 18:10:02)」のモジュールをダウンロード。
https://windows.php.net/download/

ダウンロードしたモジュールを解凍して、”C:\Program Files\PHP\v5.6.28” に置いておく。

 

次、PHP WinCache のインストール

下のページから、「php_wincache-1.3.7.12-5.6-nts-vc11-x64.zip」のモジュールをダウンロード。 http://windows.php.net/downloads/pecl/releases/wincache/

ダウンロードしたモジュールを解凍して、”C:\Program Files\PHP\v5.6.28\ext\php_wincache.dll” に置いておく。

 

次、MySQL のインストール。今回は v5.7.16 を使ってみました。

下のページから Windows 用のインストーラーをダウンロード。
https://dev.mysql.com/downloads/installer/

インストールの方法に「Custom」を選んで、以下のものを選択。Workbench はお好みで。

MySQL

 

次、WordPress のインストール。今回は v4.6.1 を使ってみました。

下のページからダウンロード。
https://ja.wordpress.org/

ダウンロードしたモジュールを解凍して、IIS のルートフォルダに置いておく(例:”C:\inetpub\wordpress”)。

 

次、VC++ 2012 Runtime のインストール。PHP の実行に必要。

下のページからダウンロードしてインストール。
https://www.microsoft.com/ja-JP/download/details.aspx?id=30679

 

次、VC++ 2013 Runtime のインストール。MySQL Workbench の実行に必要。Workbench をインストールしていない場合には省略可。

下のページからダウンロードしてインストール。
https://www.microsoft.com/ja-jp/download/details.aspx?id=40784

 

以上でモジュールの用意は完了。

IIS の設定

まずはサイトを作成して、WordPress のファイルが入っているフォルダを指定。

この時、アプリケーション プールの設定は以下の通り。

AppPool

 

次、FastCGI の設定。以下のように PHP の実行ファイルのパスを設定する。

PHP

各種パラメーターは以下の通り。

FastCGI

 

次、ハンドラー マッピングの設定。[モジュール マップの追加] で、以下のように設定。

Handler

 

次、既定のドキュメントの設定

作成した WordPress 用のサイトの [既定のドキュメント] を開いて、”index.php” を追加。

DefaultDoc

 

次、ディレクトリの参照設定

作成した WordPress 用のサイトの [ディレクトリの参照] を開いて、参照許可の設定をする。

Dir

 

次、WordPress のファイルを置いてあるフォルダのアクセス権の設定

フォルダのプロパティから [セキュリティ] を開いて、以下の 2 つのユーザーの追加とアクセス権の設定を行う。

IUSR:変更、読み取りと実行、フォルダーの内容の一覧表示、読み取り、書き込み

IIS_IUSRS:読み取りと実行、フォルダーの内容の一覧表示、読み取り

PHP の設定

“C:\Program Files\PHP\v5.6.28\php.ini-production” を “C:\Program Files\PHP\v5.6.28\php.ini” にコピー。

コピーした php.ini を開いて、ファイルの最後に以下の記述を追加。「[WebPIChanges]」じゃなくても良いと思いますが、Web Platform Installer が書き込んだ内容をそのまま拝借。

[WebPIChanges]
error_log=C:\Windows\temp\PHP5628_errors.log
upload_tmp_dir=C:\Windows\temp
session.save_path=C:\Windows\temp
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=300
date.timezone=Asia/Tokyo
extension_dir=”C:\Program Files\PHP\v5.6.28\ext”

[ExtensionList]
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_imap.dll
extension=php_tidy.dll

[PHP_WINCACHE]
extension=php_wincache.dll

MySQL の設定

以下のページを参考に、WordPress のデータを入れる DB を作成。

https://wpdocs.osdn.jp/WordPress_%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

mysql> CREATE DATABASE ;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON ;.* TO “”@”<ホスト名、localhost など>”
-> IDENTIFIED BY “<パスワード>”;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

動作確認

WordPress の URL (http://localhost) などにアクセスして、以下の画面が表示されたら大成功。

WPSetup

まとめ

この手順を全自動でやってくれる Web Platform Installer はえらい。

早く Windows Server 2016 にも対応してね。