0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【AWS】EC2にNginxを利用したLaravel環境構築(PHP,Composer,PHP-FPM)

Last updated at Posted at 2023-04-30

はじめに

初めてのAWS,Laravel導入などが重なりに重なり、私は導入にかなり手こずりました。
最初はApacheをWebサーバーソフトとして利用する予定でしたが、なぜかLaravelを入れてもパス?が通らずから一向に進まず...(多分、今なら対処できるかも...)
まぁ、なんとかかんとかでNginxで導入する方法を見つけ導入成功したという背景です。

前記事でEC2のインスタンスを立ち上げ、SSH接続まで記述しました
今回は、EC2にSSHで接続し環境構築をPHP,Nginx,Composer,PHP-FPMなどで構築していきます。

手順

1.SSH接続
2.PHPのインストール
3.Nginxのインストール
4.Composerのインストール
5.PHP-FPMの設定
6.Nginxの設定
7.Laravelのインストール/プロジェクト作成
8.NginxとPHP-FPMの起動
9.Laravel確認/環境構築完了
10.まとめ

1.SSH接続

【インスタンスに接続】の下部分にあるコマンドをターミナルにコピペしてEC2に接続

image.png

この画面になったらSSH接続成功
image.png

2.PHPのインストール

以下のコマンドを実行して、EPELリポジトリをインストールします(EPELリポジトリにはPHPパッケージが含まれています)

sudo yum install epel-release

以下のコマンドを実行して、PHPをインストールします

sudo yum install php

インストールが完了すると、PHPが正常にインストールされます。バージョンを確認するには、以下のコマンドを実行します:

php -v

image.png
PHP 【バージョン】が表示されればPHPインストール完了!

3.Nginxのインストール

1.Nginxをyumでインストールします(-yオプションは、インストール時に聞かれる質問を全てyesで通してくれるおまじない)
sudo yum install -y nginx

2.Nginxが正しくインストールされているか確認

sudo systemctl status nginx

3.nginx.service〜って記載されているのでインストール成功
image.png

4.Composerのインストール

Composerは、PHPの依存関係管理ツール、パッケージ管理ツールです。PHPプロジェクトで外部のパッケージやライブラリを使用する際に、それらのパッケージやライブラリのインストールや更新、依存関係の解決を容易にするために使用されます。

1.インスタンスに必要なパッケージをインストールします。以下のコマンドを順番に実行してください。

sudo yum update -y
sudo yum install php-cli php-zip wget unzip -y

2.Composerの公式インストールスクリプトをダウンロードします。以下のコマンドを実行してください。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

3.Composerのインストールスクリプトの完全性を確認します。以下のコマンドを実行してください。

php -r "if (hash_file('sha384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

4.Composerのインストールスクリプトを実行して、Composerをインストールします。

php composer-setup.php
php -r "unlink('composer-setup.php');"

5.以下のコマンドを使用して、Composerのパスを/usr/local/binに追加します。

これにより、Composerが/usr/local/binディレクトリに配置され、グローバルなパスに追加されます。以後、composerコマンドを使用してComposerを実行できるようになります。

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

6.インストールが正常に完了したかを確認するため、以下のコマンドを実行してComposerのバージョンを表示します。

composer --version

image.png
7.Composerのダウンロード完了!

8.足りない物をインストール(私は環境構築の際にエラーが発生、原因が下記の部品がインストールされていなかったとのこと。とりあえずここでは先にインストールして対処!)

sudo yum install php-mbstring
sudo yum install php-dom
composer install

5.PHP-FPMの設定

1.php-fpm/www.confをvimで大きく2箇所を編集します。
sudo vim /etc/php-fpm.d/www.conf

image.png
image.png

編集が完了したら、Esc(エスケープキー)を押して:wqでvimから抜け出す。

6.Nginxの設定

1.conf.d/にlaravel.confという新しいファイルを作成する。

sudo vim /etc/nginx/conf.d/laravel.conf

2.Laravel公式サイトに、Nginxの設定例があるので利用
参照URL:https://laravel.com/docs/8.x/deployment#nginx
Nginx設定例をコピペして、laravel.confに貼り付け。

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /srv/example.com/public;
 
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
 
    index index.php;
 
    charset utf-8;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
 
    error_page 404 /index.php;
 
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
 
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

3.少し内容を変更

listen 80 default_server;
root /var/www/【プロジェクト名】/public

プロジェクト名というのは、これから作成するLaravelプロジェクトの名前
今回の場合はasojobhiveがプロジェクト名
image.png

fastcgi_passを変更
image.png

7.Laravelのインストール/プロジェクト作成

プロジェクト名は、個人で決めてください。例(asojobhive)

1.下記コマンドを実行して、www直下にLaravelプロジェクトを作成

cd /var/www/
composer create-project --prefer-dist laravel/laravel 【プロジェクト名】

2.Laravelプロジェクトが生成されているか確認

ls -a

image.png
3.【プロジェクト名】が表示されていればプロジェクト作成成功!

4./プロジェクト名/storageの権限を変更

cd /var/www/【プロジェクト名】/
sudo chmod -R 777 storage/

5.暗号化キーの作成

cp .env.example .env
php artisan key

yesで次に進む

8.NginxとPHP-FPMの起動

sudo yum systemctl start nginx
sudo yum systemctl start php-fpm

9.Laravel確認/環境構築完了

AWS,EC2ダッシュボードに戻り、【パブリックIPアドレス】又は【パブリック IPv4 DNS】でURL検索しLaravelのデフォルトページが表示されれば、Laravel環境設定完了

10.まとめ

環境構築はやっぱり骨が折れますね...
Qiitaでアウトプットを始めたばかりで、読みにくい記事かもしれませんが
少しでも環境構築の参考にしていただけばありがたいです!
もし、質問などがあればぜひコメントを残してください(可能な限りお答えいたします!)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?