ポートフォリオのためのLaravel環境構築
目次
- 記事の目的と参考にしたもの
- Vagrant と VirtualBox のダウンロードとインストール
- Homestead vagrant box のダウンロード
- Laravel Homestead のダウンロード
- Homestead の設定ファイルの作成
- SSH 鍵ファイルの作成
- Homestead の設定ファイルの編集
- 仮想マシンの起動
- 仮想マシン上で Composer を利用して、Laravel ファイルをダウンロードする
- Laravel ページの表示
記事の目的と参考にしたもの
ポートフォリオにLaravelを使いたかったため、Vagrant, VirtualBox, Homesteadを使ったLaravelの環境構築を行いました。
を参考にさせていただきました。Vagrant と VirtualBox のダウンロードとインストール
Vargrantを公式サイトからダウンロードする
Vagrant.pkgを押してインストールする
VirtualBoxをダウンロードする
自分はMacなのでOS X hostsをクリックしてダウンロードする
Double click on this iconをダブルクリックしてインストールします
そうするとセキュリティーに引っかかって「許可」を出す必要がありました。
「システム環境設定 > セキュリティとプライバシー」を開き、「ダウンロードしたアプリケーションの実行許可」の「開発元"Oracle America, Inc."のシステムソフトウェアの読み込みがブロックされました。」
の右側の「許可」をクリックします。そうしたらインストールできました。
最初エラーが出てきたときは焦りましたが、調べればなんとかなるんだなぁと思いました笑
Homestead vagrant box のダウンロード
ターミナルを開き、vagrant box add laravel/homestead
と打ち、Homestead vagrant box をダウンロードします。
記事の通り、結構時間がかかりました(体感10分くらい)
その後、ターミナルでgit clone https://github.com/laravel/homestead.git Homestead
と打ち込み、Homesteadのファイルを任意のディレクトリを作成して、そこにダウンロードしました。
ディレクトリの作成場所は、ターミナルからアクセスしやすいディレクトリが良いということだったので、記事の通りにホームディレクトリ(/Users/ユーザー名)の直下にHomesteadのファイルをダウンロードしました。
Laravel Homestead のダウンロード
今回、ユーザー名直下に Homestead のファイルをダウンロードしたので、ディレクトリに移動しターミナルでbash init.sh
と入力しました。
するとHomestead initialized!
と表示され、Homestead.yaml が作成されました。
このYAML(ヤムル・ヤメル)ファイルとは「YAML Ain't a Markup Language」 の略で 「YAMLはマークアップ言語ではない」 という意味だそうです。
YAMLファイルの拡張は yml または yaml で、YAML は 主に設定ファイル を記述するのに用いられるようです。
dockerでもdocker.ymlというものがあり、今までよくわからなかったのですが、今回知ることができ知識が深まりました。
SSH 鍵ファイルの作成
SSHとは Secure Shell(セキュアシェル)の略で、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコルとのこと。
ホストOSとゲストOSとのやり取りはSSHで行うそうです。
まず、SSH でやり取りするのに必要な鍵を作成します。
最初に、既にSSH鍵ファイルが作られているかどうか確認します。
ホームディレクトリへ移動しls -la I grep .ssh
と打ち、SSH鍵ファイルが存在しないか確認しました。
id_rsaとid_rsa.pubが表示されれば既にSSH鍵ファイルはあるということだったのですが、自分のPCには無かったので作成しました。
Homestead の設定ファイルの編集
Homesteadの設定を記述したHomestead.yamlというファイルがあり、設定の変更・確認するには Homestead.yaml を利用します。
最初にHomesteadのディレクトリに移動します。
Homesteadのディレクトリに移動したらvim Homestead.yaml
と入力してHomestead.yamlを開きます。
mac側と仮想環境側のフォルダを共有することで、mac側からLaravelのファイルを変更することができるそうで、その共有フォルダの設定がfoldersとのこと。
foldersのmapはmac側の共有ディレクトリのことで、デフォルトでは ~/codeでした。
自分の場合はcodeフォルダがなかったので作成しました。
個人的メモ
vimで開いた状態で i を入力すると INSERT モードになり、編集ができる。
ディレクトリなど変更する場合は、 i を入力してから適宜変更する。
esc を押すと INSERT モードが解除される。
:wq を押して enter を押すと上書き保存される。
Homestead.yaml では下記の設定が可能。
項目 | 内容 |
---|---|
ip | Vagrant に割り当てられるIPアドレス |
memory | 仮想サーバに割り当てるメモリの容量 |
cpus | CPUの数 |
provider | 利用する仮想化ソフトウェアの指定。Vagrant では仮想化ソフトウェアのことをプロバイダと呼ぶ |
authorize | SSH公開鍵のディレクトリ |
keys | SSH秘密鍵のディレクトリ |
folders | 共有フォルダの指定です。map がホストOS側のディレクトリで、to がゲストOS側のディレクトリ |
sites | ホスト名 homestead.test でアクセスしたときに to に記載した仮想マシンのディレクトリを参照 |
databases | データベース |
仮想マシンの起動
Homestedディレクトリに移動した後にターミナルでvagrant up
と入力したところ、以下のエラーが発生しました。
エラー文を検索したところ、どうやらデフォルトバージョンが2.0.0に設定されていることに問題がありそうでした。
ターミナルでvi Vagrantfile
と入力しvimを立ち上げ、Homesteadディレクトリ内にあるVagrantfileの36行目あたりにある
Homestead.configure(config、settings)
の直後にconfig.vm.box_version = ">= 1.1"
と追加することで解決できた。
仮想マシン上で Composer を利用して、Laravel ファイルをダウンロードする
vagrant up
で仮想マシンは無事に起動されたので、仮想マシンを操作するために仮想マシンにログインします。
ターミナルでvagrant ssh
と入力してログインします。
ここでターミナルの先頭の文字が vagrant@homestead: になっているが、これは仮想マシン上にログインして操作しているためとのことでした。
急に変わってびっくり。
SSHを利用して仮想マシンにログインしたので、次はcd code
でcode ディレクトリに移動します。
次にlaravel new
と入力し、最新のLaravelを取得する
はずがエラーに・・・
まだ何も入れていないのにー!
しかしこれはlaravel new [ディレクトリ名]
と入れ直すことで解決できました。
こんな赤文字で出てこられたらめっちゃびっくりするやんかー!
Laravel ページの表示
Homestead.yaml に記述した IPアドレスにブラウザからアクセスするとこんな表記が
これも調べていくと主に二つの原因がありそうでした。
①パスが通っていない
②そもそもLaravelが起動していない
①の対策としてHomestead.yamlファイルの、
folders:
– map: ~/code
to: /home/vagrant/code
の – map:の方のパスをlaravel new [ディレクトリ名]
でLaravelをダウンロードした時のディレクトリ名に変更しました。
②の対応としてはLaravelのプロジェクトファイル内で、php artisan serveを実行すると起動できるそうなので、
ターミナルでLaravelをダウンロードしたディレクトリへ行き、php artisan serve
と入力しました。
そうすると
starting Laravel development server: http://127.0.0.1:8000
と出てきたのでブラウザでアクセスすると・・・
つ、ついにできましたー!!!
これでポートフォリオが開始できます!
Discussion