Amazon Linux2 nginx Let’s Encrypt laravel

Amazon Linux2 nginx Let’s Encrypt laravelASのおもちゃ箱開発ブログ

ポートフォリオを作るために、一からlaravelをセットアップ。
今時なので、https対応にする。

AWSでEC2インスタンスを立ち上げて、sshログインするまでは省略。

ログイン後、
まずは、念のため。

$ sudo yum update -y

のちのちメモリエラーが発生するので、swapを作っておきます。

$ sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
$ sudo /sbin/mkswap /var/swap.1
$ sudo /sbin/swapon /var/swap.1



nginxとphpをインストール
amazon linuxでは、amazon-linux-extras を使うのが流儀のよう。

$ sudo amazon-linux-extras install nginx1.12
$ sudo amazon-linux-extras install php7.2

これも当然必要ですね。
$sudo yum install git

pythonは最初から入っているので、
$ python -V
Python 2.7.16

pipだけいれる
$ sudo yum install python-pip

$ cd ~
$ git clone https://github.com/certbot/certbot
$ cd certbot

certbotがamazon linux2に対応してないので、手を加えます。

$ vi certbot-auto
– elif [ -f /etc/issue ] && grep -iq “Amazon Linux” /etc/issue ; then
+ elif grep -i “Amazon Linux” /etc/issue > /dev/null 2>&1 || \
+   grep ‘cpe:.*:amazon_linux:2’ /etc/os-release > /dev/null 2>&1; then

$ sudo ./certbot-auto –debug
メールアドレスやドメインを入力します。

certbotがnginx.confを編集します。
問題無ければ、再起動します。

$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

PHPに必要なライブラリをインストール
$ sudo yum install php-mbstring php-pdo php-gd php-xml

$ curl -sS https://getcomposer.org/installer | php

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

laravelをインストールする先のディレクトリに移動(sitenameというディレクトリが作成されます)
$ composer create-project –prefer-dist laravel/laravel sitename

いろいろ面倒なので、移動させます。
$ mv sitename /usr/share/nginx/html

$ cd /usr/share/nginx/html/sitename

$ composer update

$ php artisan key:generate

動作チェック
$ php artisan route

$ chmod -R 777 storage/
$ chmod -R 777 bootstrap/cache/

$ sudo vi /etc/nginx/nginx.conf

root         /usr/share/nginx/html/companylist/public;

$ sudo systemctl restart nginx; sudo systemctl restart php-fpm

URLからindex.phpを排除するには、以下をnginx.confに入れます。
location / {
try_files $uri $uri/ /index.php?$query_string;
}

完了

ついでにmysqlもインストールする。

$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y

8.0はいろいろ面倒なので、5.7にします。
$ sudo yum-config-manager –disable mysql80-community
$ sudo yum-config-manager –enable mysql57-community

$ sudo yum install mysql-community-server -y
$ sudo systemctl start mysqld.service
$ sudo systemctl enable mysqld.service
$ systemctl status mysqld.service

$ sudo cat /var/log/mysqld.log | grep “temporary password”

2019-09-01T08:07:36.826520Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: temporarypassword

$ mysql -u root -p
Enter password: [上記で確認できた初期パスワード]
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘[新しいパスワード]’;

laravel用のデータベースとユーザーを追加しておきます。
mysql> create database laravel;
mysql> GRANT ALL PRIVILEGES ON laravel.* TO laravel@’localhost’ IDENTIFIED BY ‘dbpassword’;

.envに作成したデータベースとユーザーを設定します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください