読者です 読者をやめる 読者になる 読者になる

uzullaがブログ

uzullaがブログです。

インターネット力の低い男がWebMatrixでマットウなWin+PHPをちょっと試す

php win

インターネット力がもっと高いと思われていたuzullaです、こんばんは。低くて大変申し訳無い…。
前2つのエントリ( http://uzulla.hateblo.jp/entry/2013/08/12/215654http://uzulla.hateblo.jp/entry/2013/08/12/013207 )がもし炎上マーケでいえば大成功、しかし本人的には割と心外な所もあり*1、これではまったくネットの困った君でおわってしまう…。


まずい、これはまずい。色々とインターネット力高いような雰囲気でがんばっていたらしいのに、メッキが剥がれている事案です。
あと、Windows詳しい顔して(別に詳しいとは一言も言っていない…つもり)Windowsの案件を受けて(PHPの案件ときいてうけたら、開けてびっくりWindows必須案件だった)いることも批判され通しですし、このままではピンチですよ!!!!!


まあ…正直私の仕事的には解決してるのですが(もちろん、その微妙な報告エントリの所為で色々な方々の気分を害したわけですが…)、色々とご指導を頂きました。(特に https://gist.github.com/matarillo/6208533 こちらのGist)
なんだかんだWindows詳しくならないとまたハマるし、教えてもらったMSのモダンなPHPというのも、PHPerとして興味が湧いたので、サジェストいただいたWeb PIと、WebMatrixをちょっとだけ本当にちょっとだけ*2試した感想や手順などをここに書きたいと思います。
キャプチャとればよかったとおもいつつ、文字ばっかりでサーセン。

まずはWeb PI is 何?

Web Platform Installerの略だそうです。我々に馴染みのある名前でいえば、要はアレだ、YumとかBrewです。


http://www.microsoft.com/web/downloads/platform.aspx
ここからDLできます。適当にググると、3.0をDLする事になるかもしれません(俺はなった)しかし、3をいれてもちゃんとオートアップデートかかって問題はありません。

インストールすると、スタートメニューにWeb PIが入ります。


ちなみに、今回試したのはWindows7であり、Serverではありません。
開発環境がServerでないとか理由がわからん疑問に思う、環境はそろえないとハマるだろJK、という意見をいただきましたが、、WebmatrixWindows7サポートってかいてあったし、「よーしWindows Server 2012かうか!…オオウ18万…やばい、ちょっとこれは家庭内審議が必要な額だ」となったのでしかたないよね(無課金ユーザーです>奥様)

WebPIでとりあえずWordpressを入れるつもりが全部入る件

とりあえずWebPIを起動してみたら、見事にでてくる項目の詳細がわからない。実に不勉強で申し訳ない。
いや、単語はわかるから、なんとなくこれがアレでソレだみたいなのはわかるがどれが必須なのかとかよくわからない。
たとえばVisual Studio Express For webと、Visual Web Developer Express ってどっちがウェブ用の開発環境なのかよくわからない。Visual Studioってついてるから前者の気がする。


ただまあ、その困惑はSpotlightタブなどに限った話であり、Applicationsを開けばLAMPer(?)でも見慣れたWordpressとかのFOSSが出てきた、よし今回はコレを入れよう。


依存関係は強く記述されているのか一瞬で必要なパッケージが選択される。
ただ、ProductsタブにはPHP5.4.14など、新しめのPHPがあったのに、WPの依存では5.3系がサジェストされるのはなんでなんだぜ?と思うがここで変にがんばっても後でハマりそうなのでスルー。


インストールは5分くらいで問題なく終わりました。

WebMatrixが起動する

インストール完了すると、WebMatrixが起動しはじめる、ほうほう…と眺めていたらガチャガチャと画面が動き、おもむろにブラウザがひらいてWordpressの見慣れたインストール画面が開いた。


ははーこれはすごい。ここまでやってくれるのかいたれりつくせりだ!
当然ながら、裏ではDBのMysqldやウェブサーバのIIS Express(だとおもう)、PHPのインストールも完了している模様、よく出来てる。

さて、WebMatrixとはなんだったのか

Webmatrixは開発環境、ということを教えてもらっていたが、なるほど、IDEだ。


概念としては、サイト毎にセット(レポジトリ)をつくってそこを組み立てていくタイプ。
Webmatrixの左下ペインに大きなくくりがあり、サイトをえらび、その下位にFilesとDBなどがあるっぽい。

今回WPをいれたので、FilesにはWordPressのファイルが、DBにはWordpressのテーブル群が見える。なるほど。

WebmatrixのDBペイン

左下からDBをえらぶと、統一感あるUIで操作できる模様。いちいちMysql Workbenchやらをいれなくても操作できるのはたしかにとっつきやすい。
Windows2000ASPやらVBSやらの開発やってたころに*3さわってたSQLServerのUIとだいたい似てる感じ。


ユーザーの権限設定(GRANT)等がどこにあるのか初見ではちょっとわからなかったが、テーブルつくったり、生クエリを発行するのは簡単にできるぽい、初心者にやさしい。

Webmatrixのエディタが結構すごい

Filesをえらぶと、サイト内のファイル郡がみれる。右クリックでExplorerで表示とすると、生のファイルを確認する事もできる。
ファイルをダブルクリックで開くと、Webmatrix内蔵のエディタが立ち上がり、メインペインにコードが表示される。


ちなみに、今回WordPressをインストールしたのだが、「ユーザーがいじるべきであろう」ファイル以外はグレーアウトしており、さわろうとすると「お前わかってんだろうな、いじったらぶっこわれるぞ」という親切なエラーが表示されたりする、ちゃんと手間かけてるなーこれはすごいな。*4


エディタ自体は結構よくできてるっぽくて、関数名や宣言されている変数くらいならサジェストされる。
「Windowsでウェブ開発やるなら、まともなエディタを探してきていれましょう!」というのは過去の話だった模様。
ヘルプにはSassやCoffeescriptの文字もならび、おいおいすごいなエッジじゃねーか感がありますね。


ちなみに、メニューにはVisual Studio Launchというボタンもあり、これを押すとVSのインストールが開始してVSがはいります、気軽にVSはいるのすごい。*5


ただ、これ罠(っていうと怒られるな)がありまして、私は初見で入りませんでした。
エラーメッセージが署名エラーとかでよくわからないんですけど*6、どうもIE10がはいってないとエラーになるっぽいです。

すみません、テスト用のマシンなので、IE9でした!ごめんなさい!IE10いれてからやりなおしたらサッとはいりました。
(ちなみに、Web PIからVSを入れようとすると、IE10入れる必要があるっておしえてもらえます)


あと、ボタンからVSを起動しても、特に選んだファイルがひらかれるわけでもないらしく、Fileからウェブサイトのディレクトリを開くと、いくつかダイアログがでて*7右ペインにファイル一覧をだせました。


Visual Studio はデフォルトではPHPのSyntax Highlightには対応してない模様ですね、拡張をインストールするとイケるみたいですが、
http://visualstudiogallery.msdn.microsoft.com/6eb51f05-ef01-4513-ac83-4c5f50c95fb5
http://www.forest.impress.co.jp/docs/review/20130220_588256.html
念ながら、私がためしているExpressでは非対応の模様です。
なのでほぼVSは試しておりません、ムカキンユーザーですみません。

バージョン管理

ちゃんとバージョン管理がはいっている、Gitか、TFS。TFSをしらなかったが、つまり新しいVSSですか。


しかしなんということだ、Gitがあります!Git Initボタンをおすと、Git本体のインストールがはじまり、完了後見事にinitされた。ちゃんとしてる!
ちょっとワークフローが普通のGitとはちがうっぽいが(addの概念がどこにあるのかよくわからない)、status、commit、branchがあり、PullもPushももちろんある。

リモートレポジトリの自由な指定もちろん対応してるし、これらは全部Webmatrixの統一感のあるUIで設定ができる。
ただ、SSH認証はなくて、https認証だけっぽい、これはまあGitHubやBitbucketとかはちゃんと対応してるし、別に問題はない。


Origin、などといったものがname、とかいてあるので、戸惑い感はあるが、まあ逆にしらなければ大丈夫な感じですね。
ブランチは指定しなくても強制Push感ありますが、これは戸惑いをすくなくする為にこっちのほうが良いとおもいました。あと、右クリから.gitignoreに指定可能とか、いいですね。


ただ、これDiffをどこからみるのかわからない。Gitをシェルを直接触ることもできるので、まあわかるやつが勝手にやれや、ってことなのかもしれません。

パブリッシュ周り

Azure等、Web Deployに対応した(.publishsettingsってファイルを読みこませる…らしいがきいたことないファイルだ)サーバにはワンタッチ感あるアップロードができる(っぽい)。
もちろんそれだけではなく、FTPにも対応している。けどSFTPとかはない。


パブリッシュボタンの所で「ホスティング業者を探す」というボタンがあって地味にびっくりする、たしかに初心者にはよろしい感じある…。ただ、日本は対応してなかった(まあ、海外のサーバーだって別にデプロイできますけど)


よっし、俺もFTPであげてみるべ、とおもって適当にFTPサーバーを用意してみたのですが、FTPモードはDBのアップロードをサポートしていないらしい。
なるほど、じゃあ手動で…と、DBペインまわりからSQLファイルへのダンプを取得する方法を探す…


探す……あれ、無いぞ?


よしMSDNだ!と勇んでMSDNにいきましたが、どうやら私はやっぱりMSDN検索力がたりない*8らしく、
しかたないので慣れ親しんだStackOverflowなどをみると…、そういう機能は無い?MysqldumpやPHPMyadminを使え?いやあるとおもうんだけど…無いの?


それなりに検索したんですけど、ドンピシャがでてこなかったので、ここはもうあきらめて慣れ親しんでいるmysqldumpつかいました。

c:\Program Files\MySQL\MySQL Server 5.1\bin>mysqldump -u wordpressuser123 -p wordpress123 > c:\Users\uzulla\Desktop\dump.sql
Enter password: ************

ウッ、このディレクトリ構成は…いやスルーしよう。


さて、インポートできたぞ。これでいいかな…いやダメだった。
そうか、ローカルのWordpressでインストール(初期設定)したものをDumpしていれたら、wp_optionsテーブルのsite_urlやhomeがhttp://localhost:12345/とかになるんだな、そりゃそうだ。


むむむ、これもWebDepoyだとなおしてくれるんだろうな…。まあFTPだとそこまでもちろん面倒見切れないのも理解できる…いやどうかな。
そもそも、DB内容をULするの、変更かけていく時にマイグレーションとかどうなるんだろう…。


まあ、WebDeployはいつか未来で試すことにして、今日はあきらめよう!(無課金ユーザーです)
と、いうことでデプロイできました!ちゃんとうごいてますね。


あと、これは余談ですが、うっかりだれかがサーバー側のファイル直接いじったらどうなるんだろうと思いましたが、リモートタブにダウンロードボタンがあり、自動的に差異をみつけてDLするか教えてくれます、これはいいですね。

拡張について

なんかExtention一覧にiPhone シミュレータなるものがあったりしますね。
ためしにInstallしてみたところ、最初どこから起動するのか最初わからなかったのですが、左上のRunのプルダウンでえらべますね。
こんなのまでMS作ってるのか…とおもってAboutみると、さすがにMSの謹製ではないらしい。


よく見たらNugetがあったり(Gitはこれで入ってるのかな)するし、意外と外部のプログラムもとりこまれているんですね、なんか本当に色々ある。
なんか数時間程度では全部みることできない感が半端ないので、このあたりはあんまりみてないです、たのしげではあります。

というところで唐突なまとめ

あっ、これはすごい(小並感


XAMPPとかいれてApacheとかPHPとかMysql勉強するのはいいけど、PHPという言語を勉強するだけで、最初Helloworld書く前の初心者はこっちのほうが良いかもしれない。
モダンな開発に必要なものが結構揃ってる。エディタもそれなりによさげ、ランタイムも全部一発で入る。


でも、うーん、これは世間一般的にいわれている「PHP」ではない感もある…。

どこからmod_rewriteみたいな設定するんだ?*9xdebugとかどこにあるのさ*10、UnitTestは?、いまどきFTPはなかろうとか。
LAMPでは有るものが無かったり、貧弱なのがやっぱり気になる。


いや、それはフルセットのLAMPのケースでのPHPだろ、今はWIMP(って言葉はないだろうが)の話をしているので、良い所悪い所含めて検討しろや、なんでLAMPの長所だけと比較するんだマヌケっていわれるとおもいますが、まあ感想です。


あまり界隈でWebMatrixの話をきかないのはここらへんなのかな〜。
PHP+IISとの相性最高で開発効率も最高かもしれないけど、「PHPer」的にはLAMP案件も来るでしょ的な。そうなるとどっちかに寄せないと大変だよね、みたいな。


MSがPHPを「取り込む」回答がこれだということでまったく理解できるし、なるほどなるほど〜という感じもすごいしよくできてる。
でもWebDeployとかIIS(Windows Server)をつかわない所では、なんだろう手抜きみたいなのがないか?と思ってしまう所がチョイ気になりました。まあそりゃそうだよねっておもいますけど、つまりはもったいない感というか、妙な制限感ですね(課金しましょう>俺)


ただまあ、そういうのをヨソにおいても、手動でデプロイすりゃいいじゃんって思えば、なにせSassやCoffeeScriptをサポートするエディタですし、Gitもあるし、すごいからもっと話題になってもいい気もします。こっちは知られてなくてもったいない感。
今後ちょっと人に紹介してみようと私はおもいます。

さて

あとはちょっと時間をつくって、今度は実際にExpress(今回のお試し環境)でないIIS+PHPをつくったりして、Windowsマスターになれるように努力してみたい今日このごろです。重ねていうけどWebDeploy試してみたい。


…っていうか、つまりはWebMatrixのエディタとかの紹介にはなった気がしますが、MSの誇るIIS+PHPの優位性が全然体感してないし、しめせてない気がします。まったくもってひどい。ダメじゃん。

結局の所クソエントリでした、本当にありがとうございます。



…という所ではありますが、本エントリが食わず嫌い、やったこともないのにWindowsをDisってしまう(俺だけか)人にとっても「なるほどなるほど、ちょっとやってみっか」という感じになることを祈りつつ、エントリ保存ボタンを押させて頂きます。

間違いや、ナイスサジェストなどございましたらば、ブコメ、ツイッターなどで私への罵倒文とともに突っ込んでいただければ、とても喜びます。


頑張ります(小並感


追記 繰り返される脈絡のない勝手な宣伝

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)


http://sugamasao.hatenablog.com/entry/2013/08/11/121217
知り合いがすばらしげなルッビーの本をかきましたので、PHP+Windowsとかでハマる必要のない、ルバーの人は是非。

追記2 あれ、なんかウェブサーバ起動しっぱなし?

これどうやって止めるんですかね…WM終了したらおわるんじゃないのか。何処かに設定あるのかな…。よし今度こそMSDNだ!


…あった!
http://blogs.msdn.com/b/web_/archive/2011/07/21/10188431.aspx


「「Web Deployment Agent Service」は自動開始(= システム起動時にサービスが起動)設定となっています(略) 常時 ポート 80 を専有している状態」
なるほど!…なるほど…

*1:重ねてかきますが、本人ふざけているようで本気なのです。

*2:もっとちゃんとやれや!というご意見あろうものでしょうが、お盆進行でいそがしく(自分の都合)、今日は初盆で親戚の家にいってきて運転してつかれた、そして顔の半分がひやけしたと奥さんに笑われた精神的ショックもあり、とりあえずご容赦頂きたい

*3:頃に、といいつつ、一年に一度保守案件でさわってますが

*4: 投稿後も少し触っておもったけれど…これさわっていいファイルがホワイトリスト方式なのかな…それはどうなのかな

*5:Expressなら、無料で試せる模様

*6:Downloaded file failed signature verification and may have been tampered with

*7:既存設定を読むか、と、.netのver2用だが、4用に書き換えてよいか?(なぜ.netなのか…)ときかれますが、とりあえずOKした

*8:MSDN右上の検索窓を使うとRSSの出力とかもでてきて非常にみづらい、プロはどこから検索するのが通なんだ?

*9:IIS自体にはあるっぽい

*10:php.iniどこからいじるんだろう