Laravel8環境構築

PHP

はじめに

いままでフレームワークを使ってWebアプリを作った経験がなく、cakePHPを一度覚えようと思った時期もあったが、挫折した経緯がある。
MVCの考え方や誰かと共同で開発するときはフレームワークの知識というのは必要らしいので、人気の「Laravel」を勉強していこうかと思う。

導入前の環境状況

Apach(v2.4)、PHP(v7.4)、MariaDB(v10.6)、Sambaを導入済み。
さらにphpMyAdmin(v5.1)

nodejsの導入

まずはnode.jsを導入するところから始める。
最新のLTSが14とのことなのでそれを導入することにした。
普通にyumでインストールすると5ぐらいが入ってくるので、まずはリポジトリを入れる。公式にあった yum install https://rpm.nodesouce.com/pub_14.x/el/7/x86_64/nodesource-release-el17-1.noarch.rpm を入力(pub_14.xの部分の数字を変えることでいろいろなバージョンを入れられるらしい)。

yum list nodejsで目的のバージョンがインストールできるかどうか確認。問題なさそうなのでそのままyum install nodejsでインストール。

導入したnodeとnpmのバージョンは以下の通り。

Composerの導入

次にComposerの導入。こちらもそのままyumで入れてしまうとバージョンが1.x系が入るので、phpを入れる時にお世話になったremiさんを利用して入れる。
yum install –enablerepo=remi composerと入力してcomposerの2.x系をインストール 。
バージョンは以下の通り、2.1が入った。

Laravelのインストール

Laravelのインストールは2パターンあるらしいが、よくわからなかったので楽そうなグローバルで今回導入。composer global require laravel/installerと入力する。

Apacheのルートディレクトリである /var/www/html に移動する。ここにはあらかじめ入れておいたphpmyadminのみが入っている。
ここでlaravel new アプリ名と入力してLaravelプロジェクトを作成する。今回のプロジェクト名はappとした。

無事にsuccessの表示がでたので、インストール完了。

Laravelの設定

まずはデータベースの作成。phpMyAdminで文字コードをutf8mb4にして名前をappとして作成した。

次に作成したappに入り、その中の.envを編集。

ここにデータベースの設定があるのでデータベースのパスワードを入力。本来であればDBユーザーを作成しておいたほうがセキュリティ的に高いと思うが、勉強用なのでそのままrootユーザーで入れるようにした。

ここの設定はあとでつまずいたのだが、appの中のstorageのパーミッションの変更。ここはフルアクセスにしておく。

あと画像には残っていないが、setenforce 0としてSELinuxのモードをPermissiveにしておく。
ブラウザで IPアドレス/app/public と直打ちするとLaravelのトップ画面がでてくる。

ログイン機能の追加

Laravelでログイン機能が用意されているのでそれを導入してみることに。まずはcomposerを使ってUIを入れる。composer require laravel/ui

次にphp artisan ui vue –authと入力し導入。ここでnpmをinstallしてrun devしてくださいとの注意書き。

いわれた通りまずはnpm installと入力。こちらは特に問題なく終了。

次にnpm run devと入力。こちらは最初エラーがいろいろでた。

エラーがでたがもう一度実行すると無事コンパイルに成功。

ここでブラウザで先ほどのトップ画面を出すと新たにログインとレジスターのメニューが追加されている。

さっそくログインしてみようかとそちらにアクセスしようとすると404のエラー。

このエラーに実はしばらく時間を費やした。原因はApacheの設定だった。
まず、cd /etc/httpd/confに移動。いつものように設定ファイルなのでコピーを取っておく。そしてviエディタでhttpd.confを開く。

その中にある<Directory “/var/www/html”>内のAllowOverrideをAllにすると良いらしいが、一応もう少し限定的にしておく。<Directory “/var/www/html/app/public”>のタグを新たに作ってそこにAllowOverride Allを記載。

再度ログインボタンを押してみると無事目的のページに移動できた。画像はログイン画面。

こちらはレジスターの画面。

ここでログインしてみようかと思ったらまたエラー。エラー内容はmigrateしてないよとのことだった。データベースを作ったが、そういえばテーブル関係は何もしてませんでした。
ということで、php artisan migrateと入力してデフォルトのテーブルを作成。

これで無事にユーザー登録ができ、さらにログイン画面に入ることができました。

debugbarの導入

次にdebugbarを導入。まだLavarelは全然わからないのでdebugbarを入れておくことにした。
composer require –dev barryvdh/laravel-debugbarと入力して導入。

さいどブラウザで確認すると下にdebugbarが表示されました。

さいごに

ここまで来るのにしばらく時間を費やしてしまいました。エラーとの闘いですが、目的通り表示されるとうれしいですね。今度は英語表記を日本語に変更できたらなと思ってます。

コメント

タイトルとURLをコピーしました