布団が俺を呼んでいる

丘山大一のぶろぐ

IISのお勉強 WordPressのインストール その2

前回の続き。
ISを見ながらIISの設定をしていきます。

まずはWordPressにアクセス。
ここまでデフォルトなら、
http://XXX.XXXX.XXX.XXX/wordpress
(XXX.XXX.XXX.XXX はサーバのIPアドレス)
必須項目を入力していきます。
・・・・・・WordPressについては、なんとゆーか以下略。
あんまり書けることがありませんw
とりあえず最低限だけ設定。

さて、外部公開するためには、グローバルアドレスが必要となります。
私の環境はDynamic DNS を利用しているので、ご存じDice先生の設定が必要です。
まずはダウンロード。
$client = New-Object System.Net.WebClient
$client.DownloadFile("http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=dice159_msi", "E:\Dice.msi")

さて、使い方を調べるためにとりあえずヘルプを引きます。
E:\Dice.msi -?
ふんふん。
なんとなくわかった気になったところでインストール。
E:\Dice.msi /quiet /passive /promptrestart

続いて設定します。
DIce 自体は下記に入っています。
C:\Program Files (x86)\Sarad\DiCE\dice.exe
なのですが・・・・・・さて、ここで非常に困ったことが起きます。
といのも・・・・・・Dice for Windows にはコマンドラインから設定を制御する機能が無いようです(汗)
というより、正確にいえばサービスとして起動できるのは有償版です。
無償版ではできないようです。
以前 CentOS で設定した時は逆にコマンドラインでしか設定していなかったので油断していました(汗)
設定自体は先ほどのインストールフォルダdice.datに入っているので、それを直接制御すればよいでしょうが、それでは設定の柔軟性に欠けます。
また、Diceがアップデートした場合(近年されていないようですが)に対応できなくなってしまいます。
残念ですが、ここはGUIで設定するか、他のマシンで設定したファイルをコピーすることで対応します。
「説明」に適当な名称、
「サービス」から使用しているサービスを、
「ホスト名」「ドメイン名」「ユーザー名」「パスワード」に上記サービスで登録した内容を設定。
スケジュールは任意でOKだと思いますが、あんまり頻繁にやっても仕方ないので、
「周期的」-「1時間毎」
を設定しておきます。
まあこのあたりは利用しているサービスとの兼ね合いと好き好きだと思います。
ServerCoreでやっている場合は、別サーバにDIceを登録してしまって、そちらでGUI制御してしまった方が速く分かりやすいと思います。

さて、ここまでできたら、サーバ側の基本設定はほぼ終わりです。
あとはルータ側でポートフォワーディングを設定。
ここも、ルータによって設定が異なるので以下略です。

諸々設定が完了したら、下記Webサイトで設定が正しいか検証できます。
http://www.cman.jp/network/
外部のWebサイトを使うのは、自分のローカルマシンのブラウザからだとうまく名前解決できなかったり、Hostsに書いてある設定で名前解決してしまったり等して、正しく検証できないからです。
やり方は簡単で、ページ左のHTTPチェックを開き、URLを入力して「ホームページ表示確認」を実行します。
おお、なんて便利。

今回のまとめ。
やっぱりシャルが可愛い。

Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ)

新品価格
¥4,320から
(2015/10/21 00:21時点)

IS<インフィニット・ストラトス>2 (初回生産版) 全7巻セット [マーケットプレイス Blu-rayセット]

新品��格
¥29,989から
(2015/10/21 00:24時点)

コメントを書く

布団が俺を呼んでいる | IISのお勉強 WordPressのインストール その3

布団が俺を呼んでいる

丘山大一のぶろぐ

IISのお勉強 WordPressのインストール その3

ISを見ながらIISのお勉強 その3です。

さて、前回までで、すでにWebページは外部にはつながるようになっています。
が、管理画面をいじると、WordPressの更新ができなくなっています。
正確には、WordPressの管理画面から更新をかけようとすると、FTP接続による認証等を求められます。
ここで、FTPを開けるべきか? と思いましたが、調べてみるとWP-Config.phpに一行追加するだけでOKなようです。
というわけでさくっと追加します。
Set-Location 'C:\inetpub\wwwroot\wordpress'
Add-Content .\wp-config.php "define('FD_METHOD','direct')"
これでFTP認証を求められなくなります。

さあ、更新・・・・・・と思うと、今度は
「いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。」のエラーが。
こちらも調べてみるとパーミッション、もといファイル・フォルダ権限が問題のようです。
基本的には一つ一つのファイル、フォルダ毎に権限を設定していくべきですが、どうやら時々対象となるファイル、フォルダが変わるようです。毎回毎回調べて一つ一つ設定していくのは一苦労です。
そこで、マズイやり方ではありますが、アップデートの最中だけ、全ファイル・フォルダに書き込み権限を振ることにします。
下記のコマンドで、WordPress以下にUSERSに書き込み権限がくっつきます。

$fPath = "C:\inetpub\wwwroot\wordpress"
$acl = Get-Acl $fPath
$uName = 'USERS'
$fControl = [System.Security.AccessControl.FileSystemRights]::Write
$iFlags = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit,[System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$pFlags = [System.Security.AccessControl.PropagationFlags]::InheritOnly
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($uName,$fControl,$iFlags,$pFlags,$type) 
$acl.SetAccessRule($rule)
$acl | Set-Acl $fPath

これでアップデートできるようになります。

アップデート完了後は、すぐに下記コマンドで書き込み権限を外します。
上記コマンドとの違いは、$rule変数に渡す引数が空(NULL)になっていること。
(※本当は書き込み権限を削除したかったのですが、やり方わからず・・・・・・)
$fPath = "C:\inetpub\wwwroot\wordpress"
$acl = Get-Acl $fPath
$uName = 'USERS'
$fControl = [System.Security.AccessControl.FileSystemRights]::Write
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($uName,$fControl,,,$type) 
$acl.SetAccessRule($rule)
$acl | Set-Acl $fPath

これでまずは安心。
プラグインやテーマの拡張についてはまだ調べていませんが、まあ概ねこれでいける気がします。
いけなかったらごめんなさい。

今回のまとめ。
うむ、シャルが可愛い。

Windows PowerShell 実践システム管理ガイド2版 (TechNet ITプロシリーズ)

新品価格
¥4,320から
(2015/10/21 00:21時点)

Infinite Stratos Complete Collection [Blu-ray] [Import]

新品価格
¥4,940から
(2015/10/21 00:25時点)

コメントを書く