はじめに
ここまでチュートリアルやPHPについての基礎的な勉強を積み重ねてきたが、それぞれ個々としての理解に留まり、それらを使った実際のWebアプリケーションの実装の流れの理解には未だ乏しいので、ここから就活に使う成果物の作成のために、実際にWebアプリケーションはどのような手順で作成するのか、セキュリティはどうするのかということをPHPでログイン機能を実装するチュートリアルと、パーフェクトPHPを参考に以前作成した新規登録・ログイン・パスワードリセットのサイト元にそれらを確認しながら実装してみようと試みていたが、テンプレート・エンジンの項目を見て先にLaravelに手を付けたほうが効率が良いと判断したので以下の記事を参考にLaravelの導入とその基本的な仕組みを頭に入れてみる。
Laravel入門 - 使い方チュートリアル
Laravel超入門 開発環境の構築(VirtualBox + Vagrant + Homestead + Composer)
Laravel5.7: usersのCRUD機能を実装する
Laravelで作るRESTなWebアプリ
Vagrant + VirtualBox でLaravel5.8環境構築メモ
1 Homesteadの準備
Laravelと仮想環境以外に必要なもの……Git Bash、Composer、Vim
Composerで導入するのでまずComposerを導入していない場合はComposerを導入する。
Composerについては以下を参照。
Composerの使い方
各種仮想開発環境は各自用意する。
私は今まではXAMPPを使っていたが、今回はLaravelでHomesteadを使いたかったのでVagrantを用いている。
Vagrantの導入については冒頭の参考ページを参照してほしい。
Vagrantを導入した、あるいは導入済みの場合はHomesteadのダウンロードに進む。
まずはHomestead vagrant boxをダウンロードするために以下のコマンドを実行する。
vagrant box add laravel/homestead
次にHomesteadを入れたい任意のディレクトリとフォルダを用意して以下のコマンドを実行する。
git clone https://github.com/laravel/homestead.git Homestead
Homesteadのダウンロードが終わったら次はその設定ファイルを作成する。
先程ダウンロードしたHomesteadにディレクトリ移動して以下のコマンドを実行。
bash init.sh
すると、Homestead.yamlが作成されるのでそちらにHomesteadの設定を書き込んでいくのだが、設定項目でSSH鍵の項目があるので先にそちらを設定する。
一応、SSH鍵があるかどうか検索するコマンドを実行する。
ls -al ファイルパス .ssh
Windowsならこっち
dir ファイルパス .ssh
私はバッチファイルを作って前者のコマンドを利用した。
Windowsでもls,pwd,clearコマンドを使いたい!
検索すると
~のディレクトリ
ファイルが見つかりません
(コマンドで指定したファイルパス) のディレクトリ
2019/10/19 04:07 <DIR> .
2019/10/19 04:07 <DIR> ..
2019/10/19 04:06 <DIR> .ssh
2019/10/19 04:40 <DIR> app
0 個のファイル 0 バイト
コマンドで指定したファイルパス\.ssh のディレクトリ
2019/10/19 02:14 <DIR> .
2019/10/19 02:14 <DIR> ..
2019/10/19 02:14 1,766 id_rsa
2019/10/19 02:14 406 id_rsa.pub
2 個のファイル 2,172 バイト
2 個のディレクトリ 190,943,170,560 バイトの空き領域
といったように検索結果が出てくる。
今回私はすでに作成をしてあるのでこのような結果になる。
つまり、.sshフォルダを任意の箇所に作ってそこにssh鍵を保存するということになる。
では、ssh鍵を作成する。
ssh-keygen -t rsa
上記コマンドを実行。
Enter file in which to save the key
と表示されたら、保存したいファイルパスを指定してEnter。
Enter passphrase
でパスワード求められるので任意のパスフレーズを入力し、確認のため二度目の入力を済ませればSSH鍵の完成と相成る。
ここまで来たらHomestead.yamlファイルを編集する。
Vimエディターを使える方はファイルが保存されているディレクトリに移動して以下を入力してVimを起動してください。
vim Homestead.yaml
内容は以下の通り
ip: "192.168.30.10" #Laravelに接続する際のipアドレス。デフォルトだと競合してエラーを起こす可能性が高いのでこれにしておく
memory: 2048 #vagrantに割り当てるメモリ数
cpus: 2 #vagrantに割り当てる仮想CPUコア数
provider: virtualbox #仮想ソフトの指定
authorize: ~/.ssh/id_rsa.pub # ssh鍵の場所。下記のkeysとセット。
keys:
- ~/.ssh/id_rsa
folders:
- map: C:\~(ルートフォルダからのファイルパス)\app\code #Windowsの場合はフルパス指定、超めんどくさい。appフォルダを指定する場合はその直後のディレクトリにcodeフォルダを作り、こうやって指定する。
to: /home/vagrant/Code #ホスト(上で指定した実際のディレクトリ)と連動する仮想環境化のディレクトリ、相互に変更が反映される。
sites: # プロジェクトごとに以下のようにパスを通すと複数のプロジェクトを作成できる。
- map: homestead.test #後々Lalavelをブラウザで表示させるためのルートアドレス。トップページが表示される。
to: /home/vagrant/Code/Laravel/public #Laravelのpubilcフォルダ(ウェブルート)を指定する。仮想環境化で入れてるのでこうなる。
databases: # 各プロジェクトで参照するDBの名前。複数ある場合はその都度追記する。
- laravel_test
features: # オプションの設定、trueにしてから変更を反映すると対応するDBを削除してtrueにしたDBがインストールされる。
- mariadb: true
- ohmyzsh: false
- webdriver: false
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
注釈を補足すると、foldersの項目では実際に仮想環境化で扱うディレクトリを指定する。
上記の場合は~\app以下にあるcodeフォルダ以下を仮想環境下での/home/vagrant/Codeディレクトリと共有(連動)させるということになる。
つまり、後でこのcodeフォルダにLaravelをダウンロードするのだが、ダウンロードすると仮想環境下でのCodeフォルダも同様の状態になるということになる。
sitesとdatabasesでは作りたいプロジェクト(アプリケーション)に合わせてルートアドレスとウェブルート、そのプロジェクトで参照するDBを設定する。
Homesteadで複数のアプリを動かしたい場合はその都度新しくLaravelを共有フォルダにインストールしてHomestead.yamlに追記していく形になる。
featuresの項目はオプションの設定。
Homesteadには仮想開発するためのツールが一通り付属しているのでそれを使用するためのものだと思っていい。
Laravel及びHomesteadにおいてデフォルトで使用されるデータベースはMySQLかPostgreSQLだが、私はMariaDBを使いたかったのでtrueに設定している。
詳しくはドキュメントを参照。
Homestead
ちなみに私は沼ったのでそうならないために補足すると、このファイルを変更した際それを反映するにはvagrant up --provision
でvagrantをupしないといけないことに注意してほしい。
これで下準備が完了したので次はHomesteadにLaravelをダウンロードする。
2 Laravelのインストール
Homesteadディレクトリで以下を実行。
vagrant up
vagrant ssh
vagrant upしていた場合は、sshのみでOK。
次にCodeディレクトリに移動してそこにLaravelをダウンロードするので以下のコマンドを実行する。
cd Code/
composer create-project laravel/laravel -prefer--dist ディレクトリ名
ディレクトリ名はプロジェクト名や作成するアプリケーションの名前などダウンロードしたLaravelフォルダの名前にしたいものを指定する。
Laravelのダウンロードはこれで完了。あとは、Homestead.yamlで設定したIPアドレス、あるいはfoldersのmapで定義した文字列を打ち込むとTOPページが表示される。
次回は、Laravelの基本的な扱い方について見ていく。