Laravel インストールメモ

仕事では社内独自のフレームワークを使っており、既存のフレームワークを使った事が無かったので勉強を兼ねてLaravelを触ってみた。

Laravelを選んだ理由

PHPのフレームワークではCakePHPやZendFrameworkなどあるけど最近シェアが増えているのはLaravelらしいのでLaravelにしようというのがざっくりとした理由。

開発環境

本番環境はさくらレンタルサーバーを利用するがまずはローカルで触って見たかったので
開発環境は以下の通りにした

  • Docker
  • Docker-compose

まずDockerの環境は以下のように構築

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
project
├─config
│  ├─mysql
│  │  │  my.cnf
│  │  └─storage
│  │              
│  ├─nginx
│  │      default.conf
│  │      
│  ├─php
│  │      docker-php-ext-xdebug.ini
│  │      Dockerfile
│  │      php.ini
│  │      
│  └─phpmyadmin
├─log
└─src

Dockerのアプリケーションコンテナのイメージは「PHP8.3-fpm-alpine」を利用し、
Node.jsとnpmやcomposerを使う為、一緒にインストールするようにDockerfileを作成。

Laravelのインストール

composerを使ってLaravelをインストール 。 インストール時に色々と設定出来るみたいだけどとりあえずはデフォルトでインストール。

1
composer create-project "laravel/laravel=" . --prefer-dist

インストールが終わったら「src」内にlaravelのソースが入って来る。
次にキーの再生成を行ったほうがいいらしいので、laravelのコマンド「artisan」を使って鍵の再生成をする。

1
php artisan key:generate

Bootstrapやキャッシュディレクトリのパーミッションを設定。
今回はテストなので「777」にしているが本番運用の際は適切なパーミッションにしたほうがいい。

1
chmod -R 777 storage bootstrap/cache

storageディレクトリを「public」ディレクトリで利用するためにシンボリックリンクを貼る。

1
php artisan storage:link

データベースを使うので「.env」ファイルにデータベース接続情報を書いてマイグレーションを実行。

1
php artisan migrate

最後に一応composerのinstallを実行しておく。

1
composer install

これで一応Laravelの初期インストールは完了。

Laravelに会員登録機能をつける

laravelでは会員登録用のプラグインが何種類かあるみたいだけど今回は手軽な「breeze」をインストールする

1
2
composer require laravel/breeze --dev
php artisan breeze:install blade

これでLaravelのWelcomeページに「Login」と「Register」が表示される。

Bootstrapを使う

tailwindcssでは無くBootstrapを使う場合は以下のようにする。

はじめにtailwindcss関係を削除

1
2
npm uninstall tailwindcss postcss autoprefixer
rm -rf tailwind.config.js postcss.config.js

bootstrapをインストール

1
npm install bootstrap @popperjs/core sass

bootstrapをインストールしたら「resources」の中に「sass」ディレクトリを作り「app.sass」を作る

1
2
mkdir resources/sass
touch resources/sass/app.sass

作った「app.sass」に以下を追記

1
@import "bootstrap/scss/bootstrap";

参照先が「sass」になるので「vite.config.js」の設定を変更する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
-            input: ['resources/css/app.css', 'resources/js/app.js'],        
+            input: ['resources/sass/app.scss', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
});

「resource/views/layouts/app.blade.php」にも参照している箇所があるので修正する。

1
2
-    @vite(['resources/css/app.css', 'resources/js/app.js'])
+    @vite(['resources/sass/app.scss', 'resources/js/app.js'])

npmを使ってbuildする。 開発環境だと「npm run dev」をするのがいいらしいが今回はbuildする。

1
npm run build

tailwindcssを使わないのでbuild後アクセスするとレイアウトが崩れてしまってるがとりあえずOK。

構築した感想

とりあえずざっくり出来たので後は色々作ってみようかなぁ

Hugo で構築されています。
テーマ StackJimmy によって設計されています。