LoginSignup
4
4

More than 1 year has passed since last update.

初心者も5分で完成!Laravel6〜Laravel9系の環境構築方法(MySQL)

Posted at

Laravelの環境構築

Laravelとは?

大規模システムで古くから実績のあるSymphonyというフレームワークをベースに作られたもの。
学習時間が短く済み、かつ大規模システムにも対応できるフレームワークとなっている。

構築手順

1. Composerをインストールする

Laravelをインストールするにはまず『Composer』というPHPのパッケージ管理ソフトが必要になるため、Composerをインストールする。

curl -sS https://getcomposer.org/installer | php

続いて、ダウンロードしたファイルを『usr/local/bin』に移動させます。

sudo mv composer.phar /usr/local/bin/composer

これで、usr/local/bin/内にComposerというファイル名で移動しました。ここまでくればいつでもComposerを呼び出す事ができます。

配置したComposerのパーミッション(アクセス権)を変更します。
ターミナルで$の後ろに以下のコマンドを実行して下さい。

chmod a+x /usr/local/bin/composer

これでcomposerが実行できるようになりました。Composerの準備はこれで完了です。
そのままターミナルから「composer -V」を実行して見て下さい。Composerのバージョンが表示されれば、正常にインストールされています。

2. Laravelをインストールする

Composerがインストールできたら、次はいよいよ皆様お待ちかねのLaravelのインストールに入っていきます。
これもターミナルから行います。

まずは以下のコマンドを実行してください。

composer global require laravel/installer

環境変数PATHというものを設定する必要があります。これを設定しないとLaravelのコマンドが使えません。
ターミナル上で以下のコマンドを実行してください。

export PATH="$PATH:~/.composer/vendor/bin"

あとは、そのパスを下記のsourceコマンドで有効にします。

source ~/.bash_profile

これでLaravelがコマンドとして認識されるようになったはずです。

3. Laravelを使ってアプリの雛形を作る

実際にLaravelを使ってみましょう。

Laravelコマンドを入力します。
Laravelコマンドの使い方は

larvel new プロジェクト名

です。laravel_sampleというプロジェクトを作ってみましょう。

laravel new laravel_sample

ディレクトリが作成されるので、次にlaravelのバージョンを確認しましょう。

php artisan --version

LaravelにはMAMPやXAMPPのようなWebサーバー機能も備わっているため、
下記でサーバーを起動してみる。

cd laravel_sample

移動したら続いて以下のコマンドを実行する。

php artisan serve

ブラウザから以下のURLにアクセスする。
http://localhost:8000/

これでLaravelアプリケーションのトップページが表示される。

4. ディレクトリ構成

https://readouble.com/laravel/9.x/ja/structure.html
上記の中で特に重要なものを下記に記載しました。

/app
 |- /Http
     |- /Controllers ・・・ MVCでいうC(コントローラー)ファイルの置き場
/config ・・・ アプリケーションの各種設定ファイル置き場
/database ・・・ マイグレーションと初期値設定(シーディング)のファイル置き場
 |- /factories
 |- /migrations
 |- /seeders  
/public ・・・ アセット(画像、JavaScript、CSSなど)ファイルの置き場
/resources ・・・ ビューやアセットの元ファイル(LESS、SASS、JavaScript)を置く場所
 |- /js
 |- /sass
 |- /css
 |- /views ・・・ MVCでいうV(ビュー)のファイルを置く場所
/routes
 |- web.php ・・・ ルーティング用の設定ファイル
/storage ・・・ コンパイルされたBladeテンプレート、ファイルベースのセッション、ファイルキャッシュなど、フレームワークにより生成されるファイルが保存される
 |- /logs ・・・ ログファイルの置き場所

5. MySQLを使うように設定する

今回は、MAMPで入れたMySQLを使う。

5.1 スキーマ(DB)を作成する

MySQLのDB(mysqlではスキーマ=DB)をまず作成する。
MAMPでMySQLを入れていればphpMyAdminの管理画面でGUIで操作できるが、今回はコマンドラインからやってみる。
まずは、mampのコマンドは下記に入っているので、そこに移動する。

cd /Applications/MAMP/Library/bin/

mysqlコマンドを実行する

./mysql -u root -p

パスワードを求められるのでデフォルトのままにしているのであればrootと入れてEnter。
mysql>が表示されれば接続完了。

DB(MySQLではスキーマ=DB)を一覧表示するには

SHOW DATABASES;

DBを作成するには

CREATE DATABASE データベース名;

今回は、laravel_sampleというDBを作っておく。

CREATE DATABASE laravel_sample;

5.2 パスを通しておく

毎回、作業ディレクトリを移動したり、./mysqlと実行するのはめんどうなのでパスを通しておくといい。
~/.bash_profileをvimなどで開く。

vim ~/.bash_profile

どこでもいいので、以下のコードを追加しておく。

export PATH=$PATH:/Applications/MAMP/Library/bin

sourceコマンドで変更を反映させる。

source ~/.bash_profile

5.3 .envの修正

.env内に使用するMySQLの情報を修正していく。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=ユーザー名
DB_PASSWORD=パスワード

今回だと下記になる。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_sample
DB_USERNAME=root
DB_PASSWORD=root

5.4 config/database.phpの修正

<?php
//ここはデフォルトでmysqlが指定されているのでそのまま
'default' => env('DB_CONNECTION', 'mysql'),

~~~~~~~

//connections配列の中にある、mysqlを修正していく
'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', '.envに記載したデータベース名'),
            'username' => env('DB_USERNAME', '.envに記載したユーザー名'),
            'password' => env('DB_PASSWORD', '.envに記載したパスワード'),
            'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),

DB_SOCKETはmysql内の下記コマンドで場所が分かる(socketという項目が表示され、その右にパスが表示されている)ので、そのパスを入れる。

SHOW VARIABLES LIKE '%sock%';

今回の場合だと下記になる

<?php
//ここはデフォルトでmysqlが指定されているのでそのまま
'default' => env('DB_CONNECTION', 'mysql'),

~~~~~~~

//connections配列の中にある、mysqlを修正していく
'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'laravel_sample'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'root'),
            'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),

これでDBへの接続準備が完了。

5.5 デバッグ設定

Laravelではエラーや例外処理は既に設定済みのため、
DB接続する際にわざわざ書いていたtry,catchも必要ない。
アプリケーションエラー発生時にユーザーにどの程度の情報を表示させるかは、
config/app.php設定ファイルのdebug設定オプションで決定する。
デフォルト状態でこの設定オプションは、.envファイルで指定されるAPP_DEBUG環境変数の値を反映する。
本番UP時には必ずAPP_DEBUGはfalseにすること!!

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:5D21FqMZNe+Ja+8h9VHwOgnKuQAkvjrUwngA/e5FurY=
APP_DEBUG=true
APP_URL=http://localhost

...

falseにした場合

trueにした場合

※Laravel5系の場合の画面です

6. ユーザー登録、ログイン、ログアウトなど認証機能を実装する

laravel5系までは下記コマンド一発でしたが

php artisan make:auth

、6系〜9まではまずLaravel uiをインストールします

composer require laravel/ui

その後、下記コマンドを実行

php artisan ui vue --auth

フロントフレームワークにより下記を実行します。
認証機能は下記のコマンドに--authを追加する事でmake:authと同じ様に使えます。

// Bootstrap
$ php artisan ui bootstrap

// Vue.js
$ php artisan ui vue

// React
$ php artisan ui react

なので、vueであれば下記コマンドを実行します。

$ php artisan ui vue --auth

その後、

$ npm install
$ npm run dev

をして、最低限の環境構築完了です。

下記エラーが出る場合には、他のライブラリバージョンが古いので

$ npm run dev

> @ dev /folder/foo
> npm run development


> @ development /folder/foo
> mix

sh: mix: command not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! @ development: `mix`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

下記を実行すればOK

$ npm i --save-dev laravel-mix@latest
$ npm i --save-dev sass-loader@latest 
$ npm i --save-dev postcss@latest
$ npm i --save-dev webpack@latest
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4