はじめに
初めての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に接続2.PHPのインストール
以下のコマンドを実行して、EPELリポジトリをインストールします(EPELリポジトリにはPHPパッケージが含まれています)
sudo yum install epel-release
以下のコマンドを実行して、PHPをインストールします
sudo yum install php
インストールが完了すると、PHPが正常にインストールされます。バージョンを確認するには、以下のコマンドを実行します:
php -v
PHP 【バージョン】が表示されればPHPインストール完了!
3.Nginxのインストール
1.Nginxをyumでインストールします(-yオプションは、インストール時に聞かれる質問を全てyesで通してくれるおまじない)sudo yum install -y nginx
2.Nginxが正しくインストールされているか確認
sudo systemctl status nginx
3.nginx.service〜って記載されているのでインストール成功
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
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
編集が完了したら、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.少し内容を変更
7.Laravelのインストール/プロジェクト作成
プロジェクト名は、個人で決めてください。例(asojobhive)
1.下記コマンドを実行して、www直下にLaravelプロジェクトを作成
cd /var/www/
composer create-project --prefer-dist laravel/laravel 【プロジェクト名】
2.Laravelプロジェクトが生成されているか確認
ls -a
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でアウトプットを始めたばかりで、読みにくい記事かもしれませんが
少しでも環境構築の参考にしていただけばありがたいです!
もし、質問などがあればぜひコメントを残してください(可能な限りお答えいたします!)