uzullaがブログスマートフォン用の表示で見るuzullaがブログuzullaがブログです。php前編(http://uzulla.hateblo.jp/entry/2013/08/16/010814)の続きです。2012にデプロイします。Deploy(以後WD)ですが、Microsoftが作った、ローカルのウェブコンテンツをサーバーにアップロードする機能です。ツールなどと言われています。Toolという表記あり)一般的なウェブへのデプロイはFTPやらScpやらWebdavなんやらを使っていますが、MSがさらにそれをすすめたもの、という感じでしょうか。MS的には昔からFTP以外でのデプロイの思想があり、なつかしのFrontpageも独自のアップロード機能が実装さえれていたことを覚えている人もいるかもしれません。昨今のウェブアプリではDBの利用が当然になっていますが、そのスキーマおよびデータのアップロード、ダウンロードをサポートしているのがいままでとの大きな違いだと思います。いう設定ファイルで渡すことができます(ただし、WDの接続パスワードは含まれない)。Server(以後WS)は当然FTPもサポートしてますし、あまり周辺で使っているのをみたことがありません、というか正直これ聞いたこともありませんでした。)に、ぜひともこれは体感しておかないといけないと思ったわけですね。InstallerでWDはインストールできる雰囲気があるんですが、これは入れてはいけません。マネージャに「管理サービスの委任」というアイコンがでない。長時間ハマってどうしようもなかった。参考:http://bartwullems.blogspot.jp/2012/06/iis-management-service-delegation-not.html前回の記事にかきましたが、管理サービスというアイコンも当初出ていなくて、本当に迷いました。*1ということで、http://www.iis.net/downloads/microsoft/web-deployこちらのサイトからDLしましょう。Extention」もクリックしてはいけません。PI経由でのインストールになり、やはり動作しません。」から、x86、x64どちらか自分の使っているWS似あわせてのリンクをクリックしましょう。インストール時にはComplete(全部)をインストールするオプションでやってください。これをインストールすると、IISマネージャのサーバーの管理欄に「管理サービスの委任」というアイコンが出ます。これでWDコンポーネントのインストールは完了で、次は設定です。Deployの設定ここの項目は、iis.netに記載されていたハウツー記事にそって進めます。http://www.iis.net/learn/publish/using-web-deploy/configure-the-web-deployment-handlerなにかうまくいかなければ、こちらも確認してください。いちいち足りてない所があるので、このハウツー記事だけでは多分できません。Mysqlの設定はそもそもそこにはのってませんし...。管理サービスの追加IISマネージャで、サーバーを選択して「管理サービス」を開きます。この画面の「リモート接続を有効にする」をOnにし、右ペインから適用します。その後、開始を押してWMSVC(ウェブ管理サービス?)を起動しておきます。Service」にフルコントロール権限を与えます。ユーザー追加IISマネージャにもどり、「IISのマネージャ」をひらきます。ここで「ユーザーの追加」をおこない、ユーザー名とパスワードを適当に設定します(ローカルユーザーと同じでなくて良いはずです)。sileをひらいて(ここは必要に応じて別のサイトでもOKだと思います)、「IISマネージャのアクセス許可」をひらきます。右ペインユーザーの許可を押し、ダイアログで「IISマネージャ」のラジオボタンに変更して、選択から先ほど追加したユーザーを選択し、OKします。管理サービスの委任の設定IISマネージャで、サーバを選択して、「管理サービスの委任」を開きます。ここではWDでデプロイできるものがなにかを設定します。規則の追加をおして、「コンテンツのあるアプリケーションの展開」をひらきます。・contentPath・iisApp・setAclを設定します。他はデフォルトでOK。(ワイルドカード)を設定します。規則の追加をおして、「フォルダーをアプリケーションとしてマーク」をひらきます。「別のユーザとして実行」の所で、資格情報の指定を設定する必要があります。ここには(多分)ローカルユーザーで指定する必要があるので、適当にWindowsのユーザーを追加*2して利用するか、(やってみてませんが)Administratorでも指定しておきます。ほかはデフォルトでOKです。(ワイルドカード)を設定します。規則の追加をおして、「データベースの展開」を開きます。プロバイダーにdbMysqlを追加します。パスについては、設定不要かもしれませんが、わたしは「Server=127.0.0.1」を指定しました。えらび、以下をフィルして行きます。基本的には、ユーザーをちゃんと指定されていれば、あとはあんまり意味ないというか、後述の設定ファイルにフィルされるだけの模様です。Server接続文字列を入力しますここは空欄でOK発行に使用するMysql接続文字列を入力します入力欄右の[...]をひらいて、Mysqlラジオをオンにして、サーバーとデータベース(スキーマ名)、資格情報は資格情報を指定で、設定ボタンをおして設定します。ID=ユーザー名;Password=パスワードとも、入力ができます。あとでWebMatrixで設定もできるので、空欄でもOKです。発行サーバーに接続するためのURLを指定しますURLのホスト名だけ、必要に応じて修正する必要があります(デフォルトだと割り当てられたランダム文字列のホスト名なので)IPを入れておけば良いでしょう。発行ファイルの保存先を指定しますデフォルトだと、デスクトップになっていると思います。以上もろもろ入力が完了したら、設定をおします。Site.PublishSettings」みたいなファイルができますので、これをWebMatrixに読み込ませることで、自動的に設定が可能になります。すると、Dbに接続ができない、というエラーがでるかもしれません。いうか、ここまでそのままやってきた人はMysqlの設定を一切やってないので、当然出ますね、後述のMysqlの設定をしてください。設定してこの項目にもどってきて、もう一度設定しても出る場合があります。Connector/Netが入っていない可能性があります。PIでインストールしてください。ちなみに、ここはかなりハマりましたね、エラーメッセージがシンプルすぎて、FWでブロックされているのかな...とか右往左往しました。WebDeployはMysqlのDBをつくることはやってくれないので、自前で別途やる必要があります。順序的に前後していますが、MysqlにDBと、ユーザーを作る必要があります。Workbenchをインストールして、適当にDBをつくり、ユーザーを設定しました。WebMatrixで生成される、wordpress321みたいなランダムなDB名などと揃える必要はないようです(もちろんそろえてもいい)。ユーザーの接続元アドレスについてですが、これはどうやらクライアントになるWebMatrixがProxy的動作をするので、このWDの動作しているサーバーのIPアドレスを許可すればOKのようです(つまり、127.0.0.1)。Deploy側の設定は完了です、多分。漏れがあったらこわいな〜〜!(すみません)ただ、.PublishSettingsファイルが生成できれば、8割はOKのはずです。ファイルをもって、クライアントになるWebMatrixに戻りましょう。Marixでリモートタブをひらき、メニューの設定を開きます。インポート後、パスワードだけは手で入力します。DB設定まで前段でやってあれば、DBふくめた全フィールドが全部の入力が完了しているはずなので、接続テストを行います。*4多分、証明書エラーがでるでしょうが、まあこれはWS側で正規のSSL証明書をいれているわけがないので、許可しましょう。SuccessFully」とでればOKです!あとはSaveして、デプロイしてみましょう!お疲れ様でした!デプロイ完了すると、Webmatrix下部にURLが表示され、ブラウザで開くことがデキます。あ、IISのデフォルトファイル(index.htmlやらDefault.htmlやらiisstart.htmlなど)がおいてあると、index.phpよりそっち優先されちゃうので、削除するか、サーバの設定で、「既定のドキュメント」でindex.phpを上位にしておきましょう。残念なことに、もしエラーがでた場合にはなにかまちがっていますね、以下をどうぞ。DBにつながらないもろもろがちゃんと入力されているかどうかが一番気になりますが、どうにも正しいならば、「データベースの展開」設定で、dbMysqlを追加したか確認しましょう。サーバ側の.PublishSettings生成の時に、ちゃんとエラーなくDB指定ができるかを確認したほうが良いですね。それでMysqlがないとか、DBがないとか、ユーザー名がちがうとかは回避できるはず。aclで怒られる「コンテンツのあるアプリケーションの展開」で、プロバイダにsetAclを追加したか確認しましょう。VersionでエラーこれはAclの設定がちゃんとしていればなおるみたいです...がよくわからない、気づいたら治っていた。いう感じで...できました...つかれた...どんハマりしたのが原因でしょうが、大体構築に5時間くらいかかりました。Connectorがないよ周り・WDでMysql設定とか解説しないよまわり・ユーザーアカウント周り・setAclまわり・WebMatrixのDB接続入力欄あたりこのあたりでかなりハマりました。PHP+IISまではウィザードばかりなので、本当に楽だったのですが、この一連は文章で説明されてもわかりづらい事が多く、アイコンがでてこないやつは、特に海外のサイトだったので日本語だとなんと書いてあるか想像するのもつらいし、それが自分が見てる画面にあるのかすら怪しくて悩んだり、途中あるスクリーンショットをみつけて、足りていないアイコンがある事を知り、そのアイコンの出し方を探したり、なかなか難儀しました。本当にまあ大変でした。)ではFTPでアップロードしたのを、今回推奨されるWDでアップロードでき、試すことができました。MSの提案するトータル的なワークフローがここに!という感じです。たしかにローカルのDBがそのままコピーされて、なおかつWordpressのURl設定などはよしなに変更してアップロードしてくれる事が確認できました。どこにそういった書き換えの定義があるのかわかりませんので、トリッキーな感じですが、Wordpressの移設で面倒な所を意識させないのはすごいですね!ただ...WebDeployで、勝手に目玉だとおもっていたDB連携についてはちょっとがっかりで、オール上書きのアップロード、もしくはダウンロードであり、別にマージとかはできませんでした。そこまで面倒みきれねーよ!というのは理解できるのですが、ううん。phpMyadminいれて、ダンプを上げ下げするよりは圧倒的に楽でわかりやすい、初心者向けは間違いはないのですが、スキーマの差分などがどうこうできるわけでないなら、結局そこらへんの比較的高度なツールが早晩必要になりそうでは有ります。なると、自分的にはFTPでもいいじゃん?という感じになってしまい...。アップロード前にサーバーが適切なのかチェックしたり(PHPがはいっているか?とか)してくれるのはいいですかね...。これにしてもすごい!というより、あっ初心者にはいいですね、という感じで、個人的には別に感有ります。.netとか、PHPじゃないウェブアプリケーションのデプロイなら、また別の便利さがあるのかもしれません。WebDeploy自体にはかなり色々な権限があるみたいなので、プログラム自作して直接たたけばすごいイカスこともできるのかもしれませんね。SSHができないというのがあるのですが*5、そういうのもできる気もします。初心者連呼するのにレベルの高低みたいな他意はないんですが、DBとかFTPとかそういうのに詳しくない人がワンストップに色々できるのは本当によくできてるなと思いますし、やっぱり初心者には向いています。Wordpressをどうこうするだけなら、WebDeployはかなりイケてるものだとおもいますし、大体の要件はそんなものでしょうから、イージーかつ必要十分です、WDで収まらん奴らのほうが勝手にしやがれ、という感じです。個人的にも、WPの中身をガリガリいじらない案件ならこの手軽さいいな、と思います。サーバーからDBバックアップもワンタッチですしね(お客さんにもおしえられそう)。まとめまあ、大変だったわりには多少肩透かし感ありました。Deployは別に自分がつかうために用意するもんじゃないですね、なんとなくわかってはいましたが。ホスティング業者が提供する価値の一つですね。FTPなくなればシンプルになるかも*6しれませんし、斜め読みしたドキュメントを見る限り、しっかり組めば、オートメーションがはかどるんだと思います。これを提供してくれているホスティング業者がどんどん増えれば、もっと身近になってきていいなとおもいますが、日本だと業者が(みたこと)無いので、Azureかなーっておもいます。Azureつかってみるかな。いうところで、こちらからは以上です。参考にしたURLメモ本当につかえないものははいっていませんが、古くて使い物にならない(が、なんとなく理解の役にたった)物もあります。参考になれば幸いです。Firewallオフにしちゃえば解決しますね(ダメなやつだ)*4:もちろんDB設定を.PublishSettingsにいれていないなら、設定します*5:しかたないので、OpenVPNなどでVPNほってます。#01」に参加してきました。Dep...連日Windowsの記事を買いているuzullaですこんばんは。»プロフィールid:uzullauzullaがブログです。参加してきました!月別アーカイブ参加グループWindows開発者はてなブログをはじめよう!uzullaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。