はじめに
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
に変更します。
(中略)
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を挟んだりしてください^^