🐷

ポートフォリオのためのLaravel環境構築

2021/01/10に公開

目次

  1. 記事の目的と参考にしたもの
  2. Vagrant と VirtualBox のダウンロードとインストール
  3. Homestead vagrant box のダウンロード
  4. Laravel Homestead のダウンロード
  5. Homestead の設定ファイルの作成
  6. SSH 鍵ファイルの作成
  7. Homestead の設定ファイルの編集
  8. 仮想マシンの起動
  9. 仮想マシン上で Composer を利用して、Laravel ファイルをダウンロードする
  10. Laravel ページの表示

記事の目的と参考にしたもの

ポートフォリオにLaravelを使いたかったため、Vagrant, VirtualBox, Homesteadを使ったLaravelの環境構築を行いました。
https://qiita.com/7968/items/97dd634608f37892b18a
を参考にさせていただきました。

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