環境構築が完了し、FuelPHPのWelcom画面が表示できたところで、VirtualBox内のcentOSの設定が出来たな、という手ごたえを持ちます。

http://localhost:8000/

でVirtualBox内のcentOSの、Apacheのドキュメントルートに接続したはずだ。

つまり、VirtualBox内でcentOSがWEBサーバとして機能しているのだ。

これは、ある程度、経験のあるエンジニアが持つ印象でしょう。

未経験者はなんだか分からないが、画面は出た、というところ止まりでしょう。これはこれで良い。本書の狙いはそこを細かく説明するところに重きを置いていない。ここらへんをちゃんと知るにはそれなりの学習が必要になってしまいます。

未経験者に「動くもの」を提供して楽しさを知ってもらおう、という趣旨の本書はここらへんの説明を省き、前へ進みます。

C:\donici\fuelphp内に作ったローカル側の環境のpublicディレクトリ内に新たにファイルを作成し、それをすぐさまブラウザで動作確認します。

未経験者は「おぉ~動いた!」

少し経験を積んだ者は「あれ?ローカルのファイルをいじっただけなのになんで?動いてるのVirtualBoxのcentOSじゃないっけ?まだそこにファイル転送してないし。」みたいな不可思議な気分になるはずです。

これはvagrantを知らない(私も含めて)人間は等しく持つ疑問でしょう。

そして、centOSにつないで中を調べたくなります。

本書ではPuTTyをインストールします。が、索引から調べた限りではどこでそのPuTTyを使用しているか、分かりませんでした。

vagrant upしたときに出るメッセージでsshの接続情報らしいものが見えるので、勝手にPuTTyを立ち上げ、centOSにログインしてみました。

WEBサーバのportを80から8000に変えてることやSSHのポートを22から2222に変えてることや、IPが127.0.0.1であることやusernameがvagrantであることなどがなんとなく読み取れます。

ではPuTTyを立ち上げてしまえ!

IPアドレスとPortだけ指定してOpenボタンを押下します。

username,passwordを聞いてくるので両方ともvagrantを入力します。

なぜパスワードもvagrantなのか。記憶にないのですが、どこかのサイトで読んだかなにか、頭の奥底にそのようなおぼろげなものがあったので、とりあえず試してみました。

ログイン出来ちゃいます。

拙い知識で、確か、LinuxでApacheしたときのドキュメントルートって、

/var/www/html

ではなかったかしらと思い、見てみます。

なんもねー。。

Windows側にファイルを作っただけで反映してしまうことを考えても、Windows側の変更が即座に反映される仕掛けがあるに違いない。

あった。マウントされてる。誰がマウントしてるんや?vagrant upしかないですよね。

そちらを見てみます。

Vagrantfileであるとか、fuelphp.confであるとか、bootstrap.shであるとか、こいつらが全てよろしくやっちゃってくれてます。多分。.vagrantフォルダの中にも結構大事な設定が潜んでいそうです。

これは本書の執筆側が、初心者がこのあたりの煩雑な、分かりにくい部分で躓くことなく、サクサクとプログラミングそのものを楽しませるために、全てやってくれているものであって、VirtualBoxとvagrantを使えばこんなこともできちゃうねー、という一例だと、初心者を抜け出ている方々は捉えて、先へ進みましょう。

いずれ、例えばcentOSにglassfishをインストールしてJavaのWebシステムを動かしたい、というようなときにも、ここでの知識はとっかかりとして役立つでしょう。

ちなみに、FuelPHPというフレームワークは、例えばローカルで開発したものをレンタルサーバへFTPして動かしたい、というときに少々戸惑わせるフレームワークです。

リクツが分かってしまえばどうにでもなりますが、中のpublicディレクトリとその中にあるindex.php、それとfuelディレクトリの位置関係が分かっていないと、サーバにあげたときに動かない、ということが起こり得ます。

では、そのあたりを踏まえて最初からローカルでの開発時にレンタルサーバ上の形を意識して作るとなると、実は一工夫いるなぁ、というのが今のところの私の印象です。

サーバが自前で、ターミナルで入れるのであればどうにでもなりますが、ちょっとしたレンタルサーバで、共用サーバでお安くやっている場合はFTPでしかつなげません。シンボリックリンクも作れないので、使用しない前提で作らねばいけません。でもセキュリティは考えたい。

そのあたりは回を改めて。

本書ではこの後、カレンダーを作らせます。この工程がいいですね。分かりやすい。無駄がない。

筆者も昔(だいぶ昔。。)、グレゴリオ万年暦を、perlで作ったり、Cで作ったり、Lotus123のマクロで作ったりしました。何で作ってもロジックは一緒なんですが、結構手間がかかった記憶があります。

PHPではdate関数やmktimeでしたっけ?良く出来てて、ずいぶんと簡単に作れちゃうのですね。。今は昔。。