1. hardreggaecafe

    Posted

    hardreggaecafe
Changes in title
+Laravel+HomesteadでRails的な開発をPHPでやってみよう!
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,203 @@
+# PHPフレームワークの最新トレンドLaravel
+PHPのフレームワークといえばCakePHPかCodeIgniterがおなじみですが、2013年位から徐々に人気が出てきているLaravelも良さそうです。
+http://laravel.jp/
+https://techstars.jp/blog/framework2/
+良い所という点ではRuby on Rails 知っている人にはあの便利な各種機能がPHPで実装できるというところ。他のフレームワークでも出来ますが、ワリと中途半端で後付なものもある印象です。
+簡単にローカル環境作れて、Migrate機能もかなり似ているので言語はPHPの方が好きという方にはいいんじゃないかと。
+とはいいつつミーハーな興味だけではじめて、ドキュメントが少なくて大変だったのですが、いろいろ手探りでやってわかった部分があるので皆さんに共有しておきます。
+なお、こちらもご参照下さい。わかりにくいところをこのドキュメントで補足しています。
+http://readouble.com/laravel/5/1/ja/homestead.html
+
+## Homesteadインストール手順
+### vagrantとvirtualboxのインストール
+仮想環境の定番組み合わせVagrantとVirtualboxが必要になります。
+vagrantは公式からパッケージをゲットしてきてインストール
+http://www.vagrantup.com/
+virtualbox
+https://www.virtualbox.org/
+これらはインストールすると個人のルートディレクトリ(/Users/yourname)にvagrantというディレクトリが作成されます。
+
+### Homestead Vagrant Boxのインストール
+HomesteadというLaravel開発のためにパッケージされた環境(Box)をインストールします。
+なお、Homesteadのインストールはルートディレクトリでやる必要があります。
+私はvagrantディレクトリでやって結構ハマりました。
+
+```
+Local:~ $ vagrant box add laravel/homestead
+```
+
+### RSAキーを作成
+HomesteadにSSHするため用にローカル環境側でRSAキーを作成します。
+
+```
+Local:~ $ ssh-keygen -t rsa -C "you@homestead"
+Generating public/private rsa key pair.
+Enter file in which to save the key (/Users/yourenv/.ssh/id_rsa):/Users/yourenv/.ssh/id_rsa_youroriginal
+```
+homestead環境設定で指定するファイル名にするのが大事です。
+
+### Homestead環境を設定
+homestead editコマンドで設定ファイルを開きます。
+
+```
+Local:~ $ homestead edit
+```
+
+以下の様な設定が開くのでコメント書いているような内容にします。
+
+```
+ip: "192.168.15.10" # 他とバッティングしないIP
+memory: 2048
+cpus: 1
+provider: virtualbox
+
+authorize: ~/.ssh/id_rsa_youroriginal.pub # 先ほど作成したRSAキーのファイル名
+
+keys:
+ - ~/.ssh/id_rsa_youroriginal # 同上
+
+folders:
+ - map: ~/Code # ローカル側のディレクトリでhomesteadと共有されるもの(自分でmkdir必要だったかも)
+ to: /home/vagrant/Code # homesteadログイン後にローカルと共有されるディレクトリ
+
+sites:
+ - map: homestead.app # テストするときのURL(デフォルト)
+ to: /home/vagrant/Code # いわゆるドキュメントルート
+ hhvm: true
+ - map: firstapp.local # 自分で作成したアプリをテストするURL
+ to: /home/vagrant/firstapp/public #上記のドキュメントルート
+ hhvm: true
+```
+
+**共有ディレクトリは何に使うのか?**
+設定ファイル上にある共有ディレクトリですが、
+- ファイルのやりとり(SCP、FTP的な使い方)
+- Gitに上げる際のソースの置き場所
+みたいな使い方をするのが吉かと思います。
+
+### Homestead環境へGO!
+設定できたらhomestead環境を立ち上げます。
+
+```
+Local:~ $ homestead up
+```
+
+いろいろずらずら出て立ち上がるので、そのあとSSHでログインします。
+
+```
+Local:~ $ homestead ssh
+```
+
+ちなみにhomestead環境設定修正したりした場合は一度halt(終了)させてからまたupします。
+
+```
+Local:~ $ homestead halt
+```
+
+### MySQLを使ってみる
+homesteadに入っているMySQLをとりあえず接続確認。
+ここに出ている通り、ユーザ名/パスワードはhomestead/secretです。
+
+```
+vagrant@homestead:~$ mysql -uhomestead -p secret
+Your MySQL connection id is 4
+Server version: 5.7.9 MySQL Community Server (GPL)
+
+Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademark of Oracle Corporation and/or its
+affiliates. Other names may be trademarks of their respective
+owners.
+
+Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+
+mysql> show databases;
++--------------------+
+| Database |
++--------------------+
+| information_schema |
+| homestead |
+| mysql |
+| performance_schema |
+| sys |
++--------------------+
+5 rows in set (0.01 sec)
+
+mysql>
+```
+
+
+### LaravelをHomestead環境にインストール
+LaravelはPHPのフレームワークなのでこちらは開発環境、本番環境ともに個別にインストールする必要があります。ということで早速homestead上でインストール。
+
+```
+vagrant@homestead:~$ composer global require "laravel/installer=~1.1"
+```
+ベーシックな環境に関する設定は以上です。
+
+### Laravelプロジェクトを作成
+ここからは個別にプロジェクト(要はそれぞれアプリの話)の作成に移ります。
+いつものcomposerコマンドで作成します。
+
+```
+vagrant@homestead:~$ composer create-project laravel/laravel firstapp --prefer-dist
+```
+その後、本家マニュアルにないコツになる部分ですが、nginxの設定をいじります。
+
+```
+vagrant@homestead:~$ sudo vi /etc/nginx/sites-available/homestead.app
+```
+
+中身を修正して保存。viの使い方は検索してくだい。
+
+```
+server {
+ listen 80;
+ listen 443 ssl;
+ server_name homestead.app; # ここも直す必要あるかも
+ root "/home/vagrant/firstapp/public"; # ここの修正が必要。作ったアプリのドキュメントルート
+
+ index index.html index.htm index.php;
+・・・
+```
+ここまでやったらhomesteadから抜けます。
+
+```
+vagrant@homestead:~$ exit
+```
+
+### ローカル側からアクセスするための最後の設定
+ということでhomestead側で施した設定を有効にするため一度環境を落とします。
+
+```
+Local:~ $ homestead halt
+Local:~ $ sudo vi /etc/hosts
+```
+
+
+/etc/hosts の中身
+
+```
+# Host Database
+#
+# localhost is used to configure the loopback interface
+# when the system is booting. Do not change this entry.
+##
+127.0.0.1 localhost
+255.255.255.255 broadcasthost
+::1 localhost
+192.168.15.10 homestead.app
+192.168.15.10 firstapp.local
+```
+ここまでやったら再度upします。
+
+```
+Local:~ $ homestead up
+```
+
+### さて接続!
+ブラウザから「 http://firstapp.local 」と入力して起動確認です。
+![スクリーンショット 2015-12-05 2.41.49.png](https://qiita-image-store.s3.amazonaws.com/0/1593/059cd95d-0d36-5cea-b6d2-9cd37cf4dc4d.png)
+
+いい感じ!ここからやっとRails的開発へ・・・。
+