AWS EC2 Laravel6 構築 ~後編~

※2020/1/27現在
前回に引き続き、AWSのEC2に現在最新のLaravelを導入したいと思います。
PHPやDBサーバ(Mysql)の設定、Laravelの導入・動作確認の流れを説明します。

○ 読者対象
・初心者の方
・兎に角、AWS上にLaravel環境を早く構築したい方

5.PHPのインストール(所要時間: 約 5分)

○ PHPの導入をします。

Amazon Linux 2 は Red Hat Enterprise Linux 7がベースになっています。
その為、CentOS7の設定を基に行っていきます。※amazon-linux-extras等は使いません

remiリポジトリをインストールします。

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

amzn2-core等のリポジトリが優先されて使われる為、repoファイルにて優先度を下げます。

sudo vim /etc/yum.repos.d/amzn2-core.repo
sudo vim /etc/yum.repos.d/amzn2-extras.repo
※priorityを99に変更します。

php7.2やその他パッケージをインストールします。

sudo yum install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-pdo php-pecl-zip php-gd php-xml php-mcrypt
php -v 
※確認

6.MYSQL5.6のインストール(所要時間: 約 5分)

○ MYSQLの導入をします。

Laravelの公式(https://readouble.com/laravel/6.x/ja/database.html)では
MYSQL5.6~と書かれている為、MYSQL5.6を導入します。

mysql57リポジトリをインストールします。

sudo yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

デフォルトはMYSQL5.7がインストールの対象となっている為、MYSQL5.6を対象にします。

sudo yum-config-manager --disable mysql57-community
sudo yum-config-manager --enable mysql56-community

MYSQL5.6をインストールし、初回起動等の設定を行います。

sudo yum -y install mysql-community-server
systemctl enable mysqld
systemctl start mysqld

7.Laravel6のインストール・動作確認(所要時間: 約 10分)

○ Laravel6の導入をします。

さて、本題のLaravel導入になります。ここからはLaravelの公式(https://readouble.com/laravel/6.x/ja/installation.html
通りに行っていきます。

composerの設定を行います。

以下公式より、composerを設定します。
https://getcomposer.org/download/

https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c5b9b6d368201a9db6f74e2611495f369991b72d9c8cbd3ffbc63edff210eb73d46ffbfce88669ad33695ef77dc76976') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

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

Laravel6の設定を行います。

ここで以下コマンドにてエラーが発生しましたので、以下公式通りに対処します。
対処(https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors)

composer global require laravel/installer

  以下エラー
  [ErrorException]
  proc_open(): fork failed - Cannot allocate memory

対処
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1

再度実行
composer global require laravel/installer

プロジェクトを生成します。

composerが実行できるように設定
cd /var/www/
sudo chown ec2-user:ec2-user html/
cd /var/www/html/

プロジェクトの作成
composer create-project --prefer-dist laravel/laravel test

パーミッションの変更
cd /var/www/html/test
sudo chmod -R 0777 storage
sudo chmod -R 0777 bootstrap/cache

Webサーバ(Apache)に作成したプロジェクトのパスを通します。

sudo vim /etc/httpd/conf.d/site.conf

以下追記
NameVirtualHost *:80
<VirtualHost *:80>
    ServerName XX.XX.XX.XX ※ElasticIPアドレス
    DocumentRoot /var/www/html/test/public

    <Directory /var/www/html/test/puclic>
        AllowOverride All
    </Directory>
</VirtualHost>

再起動
sudo systemctl restart httpd

これで、Laravelの最初の画面が表示されると思います。
色々と割愛してしまったのですが、以降もDBの設定(mysql初期設定、laravel設定ファイル書換)やドメインの設定・ SSL等(SSLの取得、Apacheの設定等)の設定が必要になってきます。
今後Laravelの良さ等を記事にできたらと思います。

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

» お仕事のご依頼はこちら