
今回Laravelの環境構築でAWSにはじめて触れたので、記録用がてら手順を記述します。
目次
前提条件
- アマゾンアカウントが取得済み
- AWSの費用をなるべく発生させたくない
EC2導入(無料枠使用)
インスタンス作成
AWSマネジメントコンソールから「仮想マシンの起動 EC2」を選択

Amazon マシンイメージ(AMI)は「Amazon Linux 2 AMI (HVM) – Kernel 5.10, SSD Volume Type」を選択

インスタンスタイプは無料枠対象の「t2.micro」を選択

「セキュリティグループの編集」からセキュリティグループを設定。今回はHTTP、HTTPSを追加

内容確認後「起動」をクリック
SSH接続用のキーペアを作成しダウンロード(大事なファイルなので大切に保管しましょう)
SSH接続(Teraterm使用)
パブリックIPv4アドレスとダウンロードした秘密鍵をつかってSSH接続ができるか確認
※インスタンスが起動している必要があります。
※今回はElasticIPで固定IPにしています。
ユーザー名は初期状態では「ec2-user」になっているはずです


接続が確認できればOK
Apacheインストール
1 2 3 4 5 6 7 8 |
#yumをアップデート sudo yum update #Apacheインストール sudo yum install httpd #起動 sudo systemctl start httpd.service #確認 active(running)とでてればOK sudo systemctl status httpd.service |
任意でインスタンス起動時に自動起動させる設定を行ってください
1 |
sudo systemctl enable httpd.service |
MySQLインストール
MySQLインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#初期からインストールされているMariaDBパッケージ削除 sudo yum remove mariadb-libs #MySQLリポジトリをyumに追加 sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm #yumから必要なパッケージを取得 sudo yum install --enablerepo=mysql80-community mysql-community-server sudo yum install --enablerepo=mysql80-community mysql-community-devel #ログファイル作成 sudo touch /var/log/mysqld.log #起動 sudo systemctl start mysqld #確認 active(running)とでてればOK systemctl status mysqld.service |
任意でインスタンス起動時に自動起動させる設定を行ってください
1 |
sudo systemctl enable mysqld |
rootユーザーの初期パスワード確認・変更
1 2 3 4 5 6 7 8 9 10 11 |
#ログファイルの確認 sudo less /var/log/mysqld.log #下記の●●●●●●●●●が初期パスワードです ~~ A temporary password is generated for root@localhost: ●●●●●●●●● #mysql接続 mysql -u root -p password:先ほどのPW #rootユーザーの初期パスワードの変更 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'; #DB作成 CREATE DATABASE hogeDB; |
認証方法を変更
MySQL8以降のログイン認証方式は「caching_sha2_password」となっており、PHP7.1.16以前、もしくはPHP 7.2.4より前の7.2系では未対応の認証方法になっています。
MySQL 関数 (PDO_MYSQL)
今回はPHP7.3を使用しているので本来ならこの設定は必要ないはずなのですが、なぜか無限に「The server requested authentication method unknown to the client」エラーがでたため今回は下記対応をしました。
ここは正直知識不足なので勉強が必要です。
1 2 3 4 5 6 |
#新規ユーザーを作成 CREATE USER 'hoge'@'localhost' IDENTIFIED BY 'password'; #作成したユーザーの認証方法を変更 alter user 'hoge'@'localhost' identified with mysql_native_password by 'password'; #権限付与 GRANT ALL ON db_name.* TO 'hoge'@'localhost'; |
Laravel環境構築
PHPインストール
1 2 3 4 5 6 |
#PHP7.3インストール sudo amazon-linux-extras install php7.3 #確認 php -v #Llaravelに必要な拡張モジュールのインストール sudo yum install php-mbstring php-pecl-memcached php-gd php-apcu php-xml |
php.iniの内容を任意で編集後php-fpmを再起動
1 |
sudo systemctl restart php-fpm |
Composerインストール
1 2 3 4 |
#Composerインストール curl -sS https://getcomposer.org/installer | php #composer.pharをパスの通る場所に移動 sudo mv composer.phar /usr/local/bin/composer |
Laravelプロジェクト作成
1 2 3 4 5 6 7 8 9 |
#プロジェクト作成 composer create-project --prefer-dist laravel/laravel project_name #プロジェクト内で確認 php artisan --version #初期設定 composer update chmod -R 777 bootstrap/cache chmod 777 -R storage/ php artisan key:generate |
.envのDB部分を適宜変更してください。パブリックIPにアクセスしLaravelの初期画面がでれば完了です。

参考記事
EC2導入
https://beyondjapan.com/blog/2019/07/nyumon_aws_ec2/SSH接続
https://qiita.com/takuma-jpn/items/b2c04b7a271a4472a900Apacheインストール
https://qiita.com/kyosuke5_20/items/b04813bb7ca26285d95eMySQLインストール
https://qiita.com/miriwo/items/eb09c065ee9bb7e8fe06Laravel導入
https://qiita.com/h19e/items/02d1301d4fdd8dfa88acまとめ
手探り状態でしたがネット上に情報も多く比較的容易に構築できたと思います。
MySQLのログイン認証方式部分はどうにかなる問題だと思うので引き続き検証が必要です。

Company運用会社
株式会社トランソニックソフトウェア

名古屋市でシステム開発・WEB制作を中心に事業を展開しています。システムに関すること、なんでもお気軽にご相談ください!