AmazonLinux2 Laravel 環境構築 メモ


今回の環境

  • EC2:Amazon Linux2
  • PHP 7.3
  • Composer
  • Laravel Framework 6.17.1

初期設定

パッケージのアップデート~タイムゾーンの更新まで

AWS EC2 + Amazon Linux2 + 初期設定やってみた メモ

Apacheインストール

毎度おなじみ「Apache」さん

インストール
$ sudo yum install httpd
Apache起動
$ sudo systemctl start httpd
起動確認
$ sudo systemctl status httpd

Active: active (running) みたいなのが出ればよし

システム起動時に起動する設定
$ sudo systemctl enable httpd

Windowsで言うところのスタートアップみたいな

上記設定の確認
$ sudo systemctl is-enabled httpd

enabled って出ればOK

調べていたら「Nginx」っていうのもあったのでそのうち触ってみたい
ApacheとNginxについて比較

PHPインストール

インストール
$ sudo amazon-linux-extras install php7.3
バージョンの確認
$ php -v

PHP 7.3.14 (cli) (built: Feb 21 2020 01:59:28) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies
インストールされたモジュールの確認
$ sudo yum list php* | grep php7.3
関連モジュールのインストール
$ yum install php-xml php-mbstring php-dom php-zip

次のどれかが無かったらインストール
ないとLaravelのインストール時やプロジェクト作成時にコケるらしい。

  • php-xml
  • php-mbstring
  • php-dom
  • php-zip

PHPの設定

こちらを参考に

AmazonLinux2でLaravelの開発環境構築
nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する

設定ファイルを開く
$ sudo vi /etc/php.ini

開いたら次のように修正

php.ini
# HTTPヘッダにPHPのバージョンを記載しない(セキュリティ的に)
# expose_php = On
expose_php = Off

# メモリ上限を引き上げる(結構デフォルトのメモリは少なめ)
# memory_limit = 128M
memory_limit = 256M


# POST送信の許容サイズを引き上げる
# post_max_size = 8M
post_max_size = 16M

# アップロードファイルの許容サイズを引き上げる
# upload_max_filesize = 2M
upload_max_filesize = 16M

# timezoneの設定
# date.timezone =
date.timezone = Asia/Tokyo
php-fpmの再起動(php.iniの設定を反映させるため)
$ sudo systemctl restart php-fpm

Laravel プロジェクトの作成

Laraveインストール AmazonLinux2

compoerインストール
$ curl -sS https://getcomposer.org/installer | php

# Pathの通っている/usr/binに移動させる
$ mv composer.phar /usr/local/bin/composer

これでcompoerを使う準備ができた。
さっそくプロジェクトを作っていこう。

「/var/www/html」あたりにプロジェクトを作るか!
と思ったらエラーになるので、今回は他のところに作ります。
※どうしても作成したい場合は権限をいじってね

作業フォルダの作成と移動
$ mkdir ~/html
$ cd ~/html
Laravelプロジェクトの作成
$ composer create-project --prefer-dist laravel/laravel blog

※ VSCodeのRemote-SSHを使って操作していますが、プロジェクト作成時に処理落ちすることがあります。

プロジェクトの更新
$ cd ~/html/blog
$ composer update
権限周りの変更
$ cd ~
$ chmod -R 775 ~
$ chmod -R 775 ~/html
$ chmod -R 777 ~/html/blog/bootstrap/cache
$ chmod -R 777 ~/html/blog/storage

Laravel のバージョン確認

プロジェクトフォルダで次のコマンド

バージョン確認コマンド
$ cd ~/html/blog/
$ php artisan -V

Apacheの設定

conf作成
$ sudo vi /etc/httpd/conf.d/xxxxx.conf

※「xxxxx.conf」は任意の名前です。

xxxxx.conf
DocumentRoot /home/ec2-user/html/blog/public
<Directory /home/ec2-user/html/blog/public>
    #.htaccessを利用可能にする
    AllowOverride All

    #アクセス許可
    Require all granted
</Directory>

これを書き込んで保存

確認

サーバーアドレスをブラウザで叩いて動作確認
demo画面が表示されたらOK

MySql5.6 インストール

リポジトリの追加
$ sudo yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

Amazon Linux2 さんにはMySql 5.6がいないのでリポジトリを追加してあげる

リポジトリの切り替え
$ sudo yum-config-manager --disable mysql57-community
$ sudo yum-config-manager --enable mysql56-community

追加したリポジトリのデフォルトは5.7なので
次の状態にする。

  • 5.7を無効
  • 5.6を有効
インストールから起動まで
$ sudo yum -y install mysql-community-server
$ sudo systemctl enable mysqld
$ sudo systemctl start mysqld

上から順にこんな感じの設定

  • インストール
  • サービス自動起動有効
  • サービス起動
起動確認
$ sudo systemctl status mysqld

確認はApacheの時と同じく
Active: active (running) みたいなのが出ればよし

初期設定
mysql_secure_installation

「Enter current password for root (enter for none): 」
訳:rootの現在のパスワード入れてね!

無いのでそのままEnter
あとは全部「y」でOK

チュートリアルの紹介

環境設定後はチュートリアルをやりたい人(私)用にチュートリアルをいくつか見つけてきました。