sudo yum update -y
nginxの導入
sudo amazon-linux-extras enable nginx1
sudo yum install nginx -y
EPELの導入
通常、EC2でパッケージをインストールするときはamazon-linux-extras
を使用するが、php8.1を導入することはできない。
そのため、epelを使用してphp8.1を導入していく。
sudo amazon-linux-extras install epel -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
PHP8.1の導入
sudo yum install php81 php81-php-mbstring php81-php-mysqlnd php81-php-gd php81-php-xml php81-php-fpm -y
現時点ではphp81と打ち込まないと、phpコマンドを使用することはできないが、これだと面倒なので、修正する。
sudo alternatives --install /usr/bin/php php /usr/bin/php81 1
composerの導入
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
php-fpmの設定
sudo vim /etc/opt/remi/php81/php-fpm.d/www.conf
ファイル内の下記の記述を書き換える
- user = apache
+ user = nginx
- group = apache
+ group = nginx
- listen = 127.0.0.1:9000
+ listen = /var/opt/remi/php81/run/php-fpm/www.sock
- ;listen.owner = nobody
- ;listen.group = nobody
- ;listen.mode = 0660
+ listen.owner = nginx
+ listen.group = nginx
+ listen.mode = 0660
sudo vim /etc/nginx/conf.d/laravel.conf
上記のコマンドで新しく設定ファイルを作成し、ファイルの中に下記の内容を記述する。
upstream php-fpm {
server unix:/var/opt/remi/php81/run/php-fpm/www.sock;
}
server {
listen 80 default_server;
listen [::]:80;
server_name example.com;
root /var/www/[アプリ名]/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 php-fpm;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_hide_header X-Powered-By;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
gitのインストール
sudo yum install git -y
Laravelアプリをclone
まずはアプリ用ディレクトリを作成する
sudo mkdir /var/www
cd /var/www
書き込み権限を付与
sudo chown ec2-user /var/www
アプリをcloneしてくる
git clone https://github.com/[アカウント名]/[アプリ名].git
Laravelアプリ初期設定
cd /var/www/[アプリ名]
composer install
cp .env.example .env
php artisan key:generate
storageフォルダへの書き込み権限を付与する
sudo chmod -R 777 storage/
プロジェクトを起動
sudo systemctl start nginx
sudo systemctl start php81-php-fpm
mysqlのインストール
sudo yum install mysql -y
.envの編集
DB_CONNECTION=mysql
DB_HOST=[RDSのエンドポイント]
DB_PORT=3306
DB_DATABASE=[DB名]
DB_USERNAME=[RDSで設定したユーザー名]
DB_PASSWORD=[RDSで設定したパスワード]
nodeの環境構築
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs
エラーログの見方
sudo tail -f /var/log/nginx/error.log
tail -f storage/logs/laravel.log