LoginSignup
7
8

More than 1 year has passed since last update.

EC2にLaravel+MySQL環境構築

Last updated at Posted at 2022-05-13

はじめに

EC2にLaravelをインストールし、
すでに作成済み(githubやcodecommitなど)のプロジェクトを展開する方法です。

※バージョンなどは古い場合があります。

開発環境作成

必要なものをインストール

ec2-userで作業します。

httpd をインストール。

$ sudo yum -y install httpd

git をインストール。

$ sudo yum -y install git

PHP をインストール。(バージョンは任意)

$ sudo amazon-linux-extras enable php7.4 -y
$ sudo yum clean metadata
$ sudo yum install php php-{pear,cgi,common,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}

問題なくインストールされているか確認。

$ php -v


composer をインストール。

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

パスを通す。

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

インストールされているか確認。

$ composer --version


サーバーにMySQLが必要な場合

MySQL (DB)をインストールのためリポジトリ準備。

$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

新しいGPGキーをインポートしてから、MySQLをインストールする

$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

MySQL をインストール。

$ sudo yum -y install mysql-server

MySQL を起動。

$ sudo systemctl start mysqld

MySQL の状態を確認。

$ systemctl status mysqld

ルートユーザーのパスワード確認。

$ sudo less /var/log/mysqld.log
(ログの一部に以下のような記述)
A temporary password is generated for root@localhost: XXXXXXXXXXXX

XXXXXXXXXXXXがルートユーザーのパスワードなのでメモしておく。

MySQL へ接続する。

mysql -u root -p

パスワードを求められるので先ほどメモしたものを入力する。

ルートユーザーのパスワードを変更する。

ALTER USER 'root'@'localhost' identified BY '【新しいパスワード】';

パスワードポリシーは:大文字、小文字、*を含む8文字以上。

ユーザーを作成する。

CREATE USER  '【ユーザー名】'@'localhost' IDENTIFIED BY '【パスワード】';

権限を付与する。

GRANT ALL ON *.* to '【ユーザー名】'@'localhost' WITH GRANT OPTION;
flush privileges;

新しいユーザーでログインできるか確認。

データベースを作成する。

create database 【データベース名】;

mysqlをログアウトする。



プロジェクトフォルダ作成

ec2-userで開発環境フォルダ作成します。

$ sudo mkdir /var/www/project/

他のユーザーもこのフォルダへ作成できるよう権限を書き換えます。

$ sudo chmod 777 /var/www/project/

フォルダへ移動します。

$ cd /var/www/project/

GitHub・CodeCommit のソースを git clone する。

$ git clone 【githubやcodecommitで取得したHTTPSのクローン】 .

最後にドットを入れるとディレクトリの中身をクローンできる。

storage配下のアクセス権限を変更する。(Laravelの場合)

$ ​chmod 777 storage -R

composer install の実行。

$ composer install

.env ファイルの作成。
※.env.sampleがある場合。

$ cp .env.example .env

ファイルを編集。

$ vi .env

DB、smtp、AWS関連のキー情報などの設定。

APP_NAME=(任意の名前)
APP_ENV=local(本番ならproduction)
APP_KEY=
APP_DEBUG=true(開発以外ならfalse)
APP_URL=http://example.com(アプリのURL)

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=【データベース名】
DB_USERNAME=【作成したユーザー名】
DB_PASSWORD=【パスワード】

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
(省略)

APP_KEY作成(PJ直下で実行)

$ php artisan key:generate

DBを最初に作成するときのみ。

$ php artisan migrate

ここで接続できているか確認できる。



Httpdのドキュメントルートを変更

$ sudo vi /etc/httpd/conf/httpd.conf

ドキュメントルートをlaravelのindex.phpがある/publicに変更します。

httpd.conf
(中略)

DocumentRoot "/var/www/project/public"

(中略)

※DocumentRootは自身のディレクトリ構成に合わせてください

httpd を起動する。

$ sudo systemctl start httpd.service

httpdの状態確認

$ sudo systemctl status httpd.service

runningになっていればOK

IPアドレスでアプリが作動すれば完了です!!
この時点ではHTTP通信のみのためブラウザにIPを入れてそのまま
確認はできません!
ちゃんとhttp://としてください。

あとはRoute53でAレコード登録したりALBを挟んだりしてください^^

7
8
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
7
8