今回の環境
- EC2:Amazon Linux2
- PHP 7.3
- Composer
- Laravel Framework 6.17.1
初期設定
パッケージのアップデート~タイムゾーンの更新まで
AWS EC2 + Amazon Linux2 + 初期設定やってみた メモ
Apacheインストール
毎度おなじみ「Apache」さん
$ sudo yum install httpd
$ 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
開いたら次のように修正
# 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
$ sudo systemctl restart php-fpm
Laravel プロジェクトの作成
$ 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
$ 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の設定
$ sudo vi /etc/httpd/conf.d/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
チュートリアルの紹介
環境設定後はチュートリアルをやりたい人(私)用にチュートリアルをいくつか見つけてきました。