nanisore oishisou

Webエンジニアあるまさんのゆるふわ奮闘記。

MacでVagrant使ってLaravel用VirtualHostの設定

ちわっす!
新人プログラマー兼どじっこ担当のベル子です。

「Laravelの勉強して!」とボスに言われたので
「どどどどのように.......?」と震えながら聞いてみたところ
要約すると「ggrks!」ということだったので
「そうだと思ってたけど念のため聞いたんだからねっ!念のためだからねっ!」とデキる女を装ったベル子です。
あぶなく◯oogleのURLを送らせてしまうところでした。セーーーフ!

とりあえず入門的な技術書には
このサイトを参考にするといいよ的なヒントが散りばめられているはずなので
◯mazon先輩がおすすめしてくる唯一無二っぽい本をゲットしました。
ふぅ〜ひと安心。

早速、マイMac仮想マシンにLaravelをインストールだぜっ!と思ったのですが、

Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returned with an error

Mcryptがないんだけど〜と怒られました。
なるほど。インストールですね。大丈夫、得意です!
と思って

$ yum install php-mcrypt

とやってみたところ、また怒られました!

この辺を参考にEPELとかいうのをインストールせよとのことで色々やってみるも
まったく書いてあるとおりになりません。なぜ。。たすけ、、、て、、、。

ただ、ネットをさまよっているとlibmcryptとphp-mcryptをインストールすればいいだけのような気がしてきました。
そうだ、wgetしてrpmでインストールすればいいんや。
なんとなく私の女の勘がそう言っています。

ということで下記のサイトでlibmcryptと自分のphpのバージョンのmcryptを探してみます。

ひとまずCentOSのバージョンくらいは確認したほうがよさそうなので以下のコマンドをどーんします。phpのヴァージョン確認方法は皆さまご存知のとおりです。

$ cat /etc/redhat-release 

そしてrpmファイルを探します。

これとか
http://rpm.pbone.net/index.php3?stat=3&limit=3&srodzaj=1&dl=40&search=libmcrypt&field=1&field=2

これとか
http://rpm.pbone.net/index.php3?stat=3&limit=2&srodzaj=1&dl=40&search=php-mcrypt&field=1&field=2

/CentOS_CentOS-6/x86_64/
/CentOS_CentOS-6/i686/

ふぁっ!どちらも2種類あります。
私のCentOSの何かしらを確認しどちらかを選ばねばならないに違いありません!!

$ uname -a


コマンドーん。x86_64でいいらしいです。
そして、リンク先のdownloadのURLでwgetしてrpmで突っ込みます。

$ rpm -ivh libmcrypt-2.5.8-4.fc7.x86_64.rpm
$ rpm -ivh php-mcrypt-5.4.40-1.el7.remi.x86_64.rpm

そしてさらに恐る恐るLaravelをインストールしてみます。

$ composer create-project laravel/laravel {directory} 4.2 --prefer-dist

{directory}の部分はお好きなプロジェクト名をつけてください。
私はひとまずlaravelとしました。
私は4.2をインストールしていますが、5.0をインストールするならこちらを参考にLaravelコマンドを使ったほうが速くて楽チンでした。

インストールできました!
できたできたぁーーー♪
なんかよく分からないけどインストールできたぁーー♪
(記憶を記事にしているため不備があったら申し訳ありませんが、概ねこんな感じでした。
記事にすると10分ほどの出来事のようですが、所用時間はお察しのとおりです。)

いやー長い道のりでしたね。
とりあえずindex.phpが見れるのか確認してみましょうね。
仮想マシンのipにはdev.honyahonya.comというホストを設定してあり
laravelというプロジェクト名でインストールしたので
以下のアドレスにアクセスすれば表示されるはずです。

dev.honyahonya.com/laravel/public

どーん。
Error in exception handler.

またエラーです!もはやエラーを見ても動揺すらしなくなりました。
app/storageを読み書きできるようにしないとダメらしいです。
本にも「storageディレクトリ下へアクセスできるようにパーミッションを設定」とちゃんと書いてあるじゃありませんか。
どじっこ担当の名に恥じないうっかりぶりです。

$ chmod -R 777 app/storage

さて改めてどーん。
わーい、表示されましたぁ♪

そして本には「publicディレクトリを仮想ホストのアクセス先に指定してください。」とさらっと書いてあります。

5度見くらいしてみました。
間違いありません!書いてあるのはそれだけです!
なんというクールジャパン。

なんとなく知っているふわっとした知識によると「なんか面倒くさい作業」のはずです。
困りました。
なんか面倒くさい作業なので、また今度にしようという気持ちになりました。

あれからしばらく経ち、やる気が出てきたので再チャレンジです。
お気づきでしょうか。

ここからが本題です。

まずは大切なファイルをいじるので、バックアップをとります。

$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd_org.conf


いよいよ編集です。

$ sudo vim /etc/httpd/conf/httpd.conf


こちらのサイトを参考にhttpd.confに下のように書き加えます。

ServerName dev.honyahonya.com
NameVirtualHost *

<VirtualHost *>
DocumentRoot "/var/www/html"
ServerName dev.honyahonya.com
</VirtualHost>

<VirtualHost *>
DocumentRoot "/var/www/html/laravel/public"
ServerName dev.laravel.com
</VirtualHost>


ファイルを保存したらapacheを再起動します。

$ sudo httpd -k restart


次にVagrantfileに書いてあるIPアドレスを確認します。
デフォルトのままだと192.168.33.10のはずです。

次はホストの設定ですが、こちらのページを参考にプラグインをインストールしてください。

192.168.33.10 dev.honyahonya.com
192.168.33.10 dev.laravel.com
この2つを登録します。

dev.laravel.comにアクセスしてLaravelのロゴ、
dev.honyahonya.comにアクセスして別のトップページが表示されていれば完了です!

ふぅ〜長かったですね。
いざやってみたら、そんなに面倒じゃありませんでした。
食わず嫌いはよくありません。

まだインストールして表示できるようになっただけという事実に愕然としますが、
これからいろいろと動かしながら勉強したいと思います!


今回は、話が長くなる&私は仮想マシンのセットアップ済みだったので
ローカル開発環境の構築については触れませんでしたが、
先輩に教えてもらったところによるとLaravel用にセットアップしてあるVagrantのBoxがあるらしいので仮想マシンのセットアップからやる人はそちらの手順でやったほうがいいと思います。
ただ、WebサーバーがApacheではなくNginxらしいので、
Apacheで構築したい方がいたら下記のLaravel用にセットアップしてあるVagrantfileを使ったほうがいいと思います。
というかLaravelとその他で別の仮想マシンをセットアップすればよかったのかもしれませんが、
そんなことは今更、気にしないようにします。
もっとお手軽でカッコイイ方法があったら、どなたか教えてください。

▼参考サイト
・homestead(Laravel公式のVagrantのBoxを使って仮想マシンのセットアップをする方法)
http://readouble.com/laravel/4/2/0/ja/homestead.html

・Laravel用にセットアップしてあるVagrantfileを使う方法
http://kore1server.com/141/Vagrant%E3%81%AEUbuntu12.04%2BLaravel4%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9

Vagrantのインストールやセットアップについて(手順の参考)
http://qiita.com/inouet/items/b36638adc2b5772db457

・いろんなVagrantfile
http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/

・Laravelのインストールやセットアップについて
http://readouble.com/laravel/4/2/0/ja/quick.html


では、またね!!