サイトアイコン プログラミングを学習中の私が、アウトプットするためのサイト

LAMP環境にLaravel9で作成したアプリをデプロイしてみる

スポンサーリンク

概要

前回の記事で作成したアプリをLAMP環境へデプロイしてみました。

前提条件

以下の環境を構築したVPSや仮想マシンを前提にLaravel9で作成したアプリをデプロイします。LAMP環境の構築やセキュリティなどの設定は各自で行ってください。Laravel9の動作にはPHPのバージョン8以上が必要です。

Ubuntu v22.04.1
Apache v2.4.52
MariaDB
PHP v8.1.2

こちらの記事でLAMP環境を構築しています。

データベースの作成

新しいデータベースとユーザーを作成し、新しく作成したユーザーに権限を与えます。

下記のコマンドでroot権限に昇格します。

mysqlに接続します。

新しいデータベースを作成します。構文は以下になります。
CREATE DATABASE [データベース名];
[]内を任意で変更してください。

新しいユーザーを作成します。
CREATE USER [ユーザー名]@localhost IDENTIFIED BY ‘[パスワード]’;

新しく作成したユーザーに権限を付与します。
GRANT ALL ON [データベース名].* TO [ユーザー名]@localhost;

権限を付与したらリロードをします。

MariaDBサーバーの接続を終了します。

一般ユーザに変更します。

PHPの拡張モジュールとComposerのインストール

Laravel9を動作させるために必要なPHP拡張機能とパッケージ管理システムのComposerをWebサーバーに用意します。以下は必要なPHP拡張機能です。

  • BCMath PHP拡張
  • Ctype PHP拡張
  • cURL PHP拡張
  • DOM PHP拡張
  • Fileinfo PHP拡張
  • JSON PHP拡張
  • Mbstring PHP拡張
  • OpenSSL PHP拡張
  • PCRE PHP拡張
  • PDO PHP拡張
  • Tokenizer PHP拡張
  • XML PHP拡張

phpにインストールされている拡張モジュール一覧を取得。

不足している拡張モジュールとmysqlの接続に必要なphp-mysqlモジュールをインストール。

Composerをインストール。

GitHubからプロジェクトをクローンとLaraveの設定

任意のディレクトリ(今回はドキュメントルートの一つ上の階層にしました。)にLaravelで作成したプロジェクトをGitHubからクローンをしてプロジェクトに必要なライブラリをComposerでインストールします。その後.envファイルを作成し、データベースの設定を行います。

ドキュメントルートの一つ上の階層に移動。

プロジェクトをGitHubからクローン。
git clone [リポジトリのパス]

プロジェクトのディレクトリへ移動。

プロジェクトで必要とするライブラリをインストール。

Laravelの設定に使用する.envファイルを生成。

.envファイルを開く。

デバックモードをOFFにする。

データベースの設定をする。

artisanコマンドを使用してテーブを作成。

Apacheの設定

ドキュメントルートにプロジェクトを公開する為の設定を行っていきます。.htaccessを有効にする為に設定ファイルに追記とmod_rewriteの有効化を行います。storageディレクトリ以下のファイルにApacheが書き込みできるように権限を付与し、ドキュメントルートに公開するpublicディレクトリのシンボリックリンクを貼ります。最後に設定を有効化するためにApacheを再起動します。

設定ファイルを開く。

14行目から16行目を追記。

mod_rewriteの有効化。

Apacheにstorageディレクトリ以下の書き込み権限を与える。

ドキュメントルートにシンボリックリンクを貼る。
ln -s [リンク元] [リンク名]

設定を有効にするためにApacheを再起動。

以下にアクセスするとアプリが表示されます。
http://[ipアドレス or ドメインネーム]/laravel9-CRUD/products

最後までお読みいただきありがとうございました。

モバイルバージョンを終了