IT関連

ドットインストールのLaravelレッスン環境構築

投稿日:2021年2月26日 更新日:

ドットインストールでLaravelを勉強しようと思ったら開発環境の構築がよくわからない。

VagrantやLaravelのバージョンの違いのせいか、その通りにやっても動かない。

問い合わせをしようも絶賛サポート終了中

 

これは困りましたね。

 

動画の説明も、いきなりPHPのバージョンの話から始めているので端折りすぎ感がすごいのでまったく意味不明。

 

なので実際に一から構築して、備忘録を残します。

各種導入するものは2021年2月現時点の最新でいきます。

いろいろつまづきポイントも後述いたします。

 

巷ではDockerを使っていない人は無能以下のゴミ扱いらしいですが、ゴミで構わないのでとりあえず同じようにVagrantでいきます。

尚、これは有料レッスンのため内容には触れませんし、若干違う環境で構築しますのでご承知おきください。

基本Macでの操作ですが、PC内のディレクトリ構造以外はほとんど同じのはずです。

 

Vagrantの基礎的なものはこちらを参照ください。VirtualBoxとVagrantはインストール済として始めます。

Vagrant VirtualBoxのメモ

 

BOXを作る

ボックスイメージをネットから取得する。

ドットインストールの環境は何か知らないけど、今回はCentOS7を採用します。

  1. Vagrantbox.esへアクセスする
  2. CentOS 7.2 x64のところにあるURLをコピーする
  3. Macからターミナルを開く

BOXは環境の元になるOSイメージなので、名前はcentOS72にする。

 

ちゃんとBOXがインストール(厳密にはインストールとは言わない)されているかを確認する。

centOS72が一覧にあればOK。

 

Vagrant開発環境を置くディレクトリを作る

今回は自分のユーザディレクトリの直下に作ることにする。

またVagrantで作る環境は将来複数作るかもしれないので、それをまとめるVagrantディレクトリも作ります。

 

Macのターミナルから、まずログインユーザのディレクトリに移動する

Vagrantで作る環境をまとめるVagrantディレクトリを作る

Vagrantディレクトリに移動する

今回の開発環境を置くディレクトリを作成する。今回はドットインストールのLaravel専用なので、名前をdotins_laravelにした。

そのディレクトリに移動する

 

仮想マシンの初期設定をする

インストールしたBOXイメージcentOS72を元に仮想マシンを作る。

前回からの話の流れでいくと、現在のディレクトリはcentOS72ibmiのはずです。

 

BOXイメージ「centOS72」を元に初期設定(init)をする

 

初期設定したらディレクトリ内にVagrantfileができているのでそれをエディタで開く

 

vimエディタ内にて

 

これで192.168.33.10で仮想マシンに接続できるようになる。

複数仮想マシンを作るときは、10を11にするなどすればいいと思う。

 

仮想マシンを起動する

仮想マシンを起動する

 

 vagrant-vbguestをインストールしておく

以後、仮想マシンを再起動すると、後述する「マウント」において不具合が起きます。

これはMac側と仮想マシン側のマウントを司るGuestAdditionsという機能のバージョンが合致していないことが原因らしい。

ちなみにバージョンが合致しないケースは、yum updateを行った後に起きたので、それが誤差が生じる原因のよう。

ゆえに、それを解消してくれるプラグインをインストールしておく。

 

バージョンの確認や更新は仮想マシンを立ち上げたときに自動的に行ってくれる。

 

手動で更新する場合は下記を使うが、基本的に使わないしやらなくていい。

 

仮想マシンにSSHでアクセスする

IDやパスワードは不要。これだけで仮想マシンのターミナルを操作できる。

 

初期時点の状況

  • HTTPサーバは未導入
  • PHPは未導入
  • SELinuxは未稼働
  • FTPサーバソフトは未導入
  • SQliteは3.7.17がインストール済

タイムゾーン設定をしておく

タイムゾーンをアジア東京にする。

 

念のため、現在のタイムゾーンを確認するときは下記にて。

 

アップデートを行う

ここからはSSHを利用して仮想マシン内の操作になる。

まず、最初にyum updateを行っておく。10分近くかかるので注意。

 

HTTPDやPHPなど必要なものをインストールする

次にPHPやWebサーバのHTTPDをインストールする。

なお、普通にyum installしただけではPHPはバージョン5.4がインストールされてしまうので、最新の7.Xがインストールされるようremiリポジトリというプログラムをダウロードする先の登録を先に行う。

 

必要なもの諸々をインストールする。

これでhttpdとPHPやその他がインストールされる。

ちなみにphpの拡張モジュールはこんなに必要ないかも。

あと、httpdのバージョンは2.4.6で、PHPのバージョンは7.3のはず。

 

composerをダウンロードする

PHPのパッケージ管理ツールであるcomposerをダウンロードします。

Laravelもこれでインストールします。

  1. Composerのサイトに行く
  2. Downloadのボタンをクリックする
  3. 4行ほどのスクリプトがあるのでコピーする
  4. 開いているターミナルに貼り付けて実行する。全行一気にコピペでOK。

たぶんスクリプトはこんなの。一応最新版とかあるかもしれないので、取りに行ったほうが無難かも。

最後のスクリプトが止まることがあるので、そんときはEnterキーで押し込んでください。

これで現在のディレクトリ(ホームディレクトリ)にcomposer.pharがダウンロードされる。

 

Laravelをインストールする

composerのコマンドを使ってLaravelをインストールします。

インストールといってもファイルをダウンロードするだけなので、まず最初にダウンロードするディレクトリに移動する。

Laravelをインストールするときにフォルダも一緒に作られるが、そのフォルダ名はレッスンと同じmyblogにする。

 

最初の/usr/local/binに移動したのは、プログラムに組み込んだニュアンスです。

これでどこでもcomposerコマンドが使えます。

 

なお、vagrantの仕組みにより仮想マシンの/vagrant以下は、Mac側のdotins_laravelディレクトリ以下同期されるルールらしいです。

ゆえにソースコードを/vagrant直下に置けば、Mac側からVSCodeのようなエディタで触れるということです。

いちいちFTPで見るのは大変そうなので、今回はこれでいきます。

 

–prefer-distの意味は調べてもいろんな見方があるみたいだけど、preferは〜のほうを好む(選ぶ)の意味。

その後ろに”5.5.*”のようにバージョンを指定できるみたいなのでバージョンの指定なのかと密かに思ってます。

“5.5.*”と指定すると5.5系の最新を、何も指定しなければ最新バージョンをダウンロードするみたい。

ちなみに2021年2月末時点ではバージョン8.29.0がダウンロードされた。

 

パーミッションの設定だけしておく

Laravelでよく起きるstorageディレクトリ以下のPermissionやキャッシュのエラーを防ぐ。

 

シンボリックリンクを貼る

httpサーバのドキュメントルートは/var/www/htmlにしたいので、シンボリックリンクを貼ることで対応します。

これで/var/www/htmlを見に行けばその中にmyblogというフォルダが見えるはず。

これはドットインストール開発環境のレッスンで教わりました。

 

httpd.confを設定する

httpdサーバの設定ファイルをvimで直します。

 

Laravelのドキュメントルートはpublicディレクトリの中を指定する決まりになっている。

Laravelはphpなのでindex.phpも見てくれるようにDirectoryIndexに追記する。

AllowOverrideの指定がなければ.htaccessが効かなくなり、ルートパス以外は開けないので指定しておく。

 

ユーザとグループを変えた理由は、storage/framework/sessions以下にセッション情報のファイルができるのだが、それはセッション情報というだけあって個々のユーザがアクセスするたびに作られるみたい。

そしてその所有権はvagrantでパーミッションは644でできる。

そしてアクセスするたびにそれをwriteでアクセスするみたいなのですが、apacheユーザがvagrantの644のファイルを修正できるわけもなくPermission deniedで落ちてしまう。

だからvagrantユーザでapacheを動かすようにした。(間違っているかもしれんけど)

なお、上記で行ったchmodでstorage以下をすべて777にしたのも、その懸念も考えてやったことだけど、セッション情報は新規で作られるので歯が立たない。

 

サーバを再起動してもWebサーバが起動するように設定しておく。

CentOS6ではchkconfigで行うがCentOS7ではsystemctlを使うらしい。

 

Webサーバを起動する

 

ブラウザからアクセスする

あとはブラウザから「http://192.168.33.10」へアクセスしてページが表示されるか確認する。

たぶんいけるはず。

 

あとはドットインストールレッスンの「#03 フォルダの構成を確認しよう」から進めばいいが、レッスン動画のようにmyblog内のソースコードにFTPでアクセスして触ったり、Laravelに付属されるサーバは使わないので、若干異なる点があるのでそれは明記しておきます。

 

myblogディレクトリのソースを修正する

ソースコードは仮想マシン側の/vagrant/myblogではなく、PC側のVagrant/dotins_laravel/myblog内を触る。

 

VSCodeを開いてAdd folder to workspaceでそちらを指定して触る。

 

  • database/migrations内のファイルを消す(Lesson3)
  • database.sqliteを作る (Lesson3)
  • .envファイルを直す (Lesson4)
  • config/app.phpを直す (Lesson4)

 

これらはVSCode内からできるはず。

 

その他つまづきポイント

Lesson5

Laravelのバージョンのせいか、マイグレーションファイルのup側の表記が若干異なるが、レッスン通りの指定で通った。

 

Lesson6

Laravelのバージョン7か8からはモデルの場所が変ったみたい。

従来 App\Post.php

現行 App\Models\Post.php

なのでtincker以外にもモデルを指定する場合はディレクトリ構造に注意する必要あり

 

Lesson9

Laravel7か8かで仕様変更があったらしく、routes/web.phpは動画のとおりに書いてもできなかった。

 

こんなエラーがでた。

とりあえず

にするとできた。

フルパスで指定するやり方ですね。

他に公式のやり方があるようだけどとりあえずこれで。

 

Lesson13

publicディレクトリの中にcssディレクトリが無かった。

Laravel8になってjsやcssディレクトリの配置が変わったのかなと思ったけど、公式ドキュメントを見た感じはそうではなさそう。

とりえあえずpublicの中にcssディレクトリを作ればいいみたい。

 

以上です。無事最後までレッスンを終えることができました。

スポンサーリンク




スポンサーリンク




-IT関連
-, ,

執筆者:


comment

Your email address will not be published. Required fields are marked *

関連記事

Vimエディタ 備忘録

基本コマンド エディタの起動

  保存せず終了

&nbsp …

AS400/IBMi アクティブジョブを取得するSQL WRKACTJOB

現在開いているJOBをSQLで取得しようと思った。 要するにWRKACTJOBで表示するのと同じ内容がほしい。   理由はWeb画面にユーザーのジョブを一覧で表示して、気に入らない奴を気分次 …

AS400/IBMi クライアントアクセスwsファイルのアイコンを元に戻したい

いまだにお世話になっているクライアントアクセス大先生。 IBMはACSを推奨しているけど全台数ACSに直すのは大変なので二の足を踏んでいる我が社です。   クライアントアクセスを起動するファ …

このスクリーンセーバーには、より新しい種類のビデオカードまたはDirect3D・・・

職業柄パソコンをセッティングする機会が多いのだが、過去にある一台がスクリーンセーバーの設定のとき、 「このスクリーンセーバーには、より新しい種類のビデオカードまたはDirect3Dと互換性のあるビデオ …

Windows10で画面が真っ暗になってマウスカーソルだけになる件

私は某企業でシステムエンジニアをやっていますが、最近Windows10の不具合をよく聞きます。 Windows7からWindows10にアップグレードしたものや、新規で買ったものも両方とも。 &nbs …

Adsense広告




文字で検索

人気記事

なぜだか人気記事

読んでほしい順に