1
0

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 3 years have passed since last update.

EC2のAmazonLinux2でLaravel8環境を構築する

Posted at

自分のための備忘録。

先に書いておくハマりどころ

  • Laravel8 には php7.3 以上が必要!!
  • yum で必要なバージョンが入ってくれるとは限らない!!

ちゃんと確認しておきましょう(自戒)

(前準備)EC2インスタンス立ち上げ

今自分がどこのリージョンにいるかを確認しつつ、「EC2」->「インスタンスを起動」。
AMI は Amazon Linux 2 AMI (HVM), SSD Volume Type を選択。
セキュリティグループには http(80) と https(443) を追加しておく。

起動したら適当な term でログイン。
image.png
ここでは作業ユーザは ec2-user で進めます。

いろいろインストール

まずは今の状態で yum update。

$ sudo yum update

php7.3 のインストール

何も考えずに yum install php とかすると5系が入るので論外。
remi を使う手もあるが、AmazonLinux2 なので Amazon Linux Extras を使う。

$ sudo amazon-linux-extras install php7.3
$ sudo yum install php-mbstring php-dom    # 追加で必要なものは yum でOK

httpd2.4 のインストールと設定変更

こっちは yum で素直に入ってくれる。

$ sudo yum install httpd
$ sudo systemctl start httpd                        # httpd 起動
$ sudo systemctl enable httpd                       # 以後システム起動とともに httpd も起動
$ sudo usermod -a -G apache ec2-user                # ec2-user を apache グループに追加
$ exit                                              # usermod 反映のため一旦ログアウト(ログインしなおす)
$ sudo chown -R ec2-user:apache /var/www            # /var/www 以下のオーナー、グループを ec2-user:apache に変更
$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \; # ディレクトリの許可設定を変更
$ find /var/www -type f -exec sudo chmod 0664 {} \; # ファイルの許可設定を変更

https の対応。

$ sudo yum install mod_ssl             # mod_ssl をインストール
$ cd /etc/pki/tls/certs                # ディレクトリを移動して…
$ sudo ./make-dummy-cert localhost.crt # オレオレ証明書を作成
$ sudo vi /etc/httpd/conf.d/ssl.conf   # ssl.conf を開いて、下記の行をコメントアウト
          SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
$ sudo systemctl restart httpd         # httpd 再起動

ここまでできたら http://~ でも https://~ でも apache のテストページが表示されるはず。
もちろんオレオレなので https でのアクセスは警告が出る。
image.png

mariadb のインストール

mariadb も amazon-linux-extras からインストール。執筆時点の最新は10.5。
yum だと5系が入るので論外。

$ sudo amazon-linux-extras install mariadb10.5  # mariadb をインストール
$ sudo systemctl start mariadb                  # mariadb を起動
$ sudo systemctl enable mariadb                 # mariadb をシステム起動時に起動
$ sudo mysql_secure_installation                # mariadb のルートパスワード設定。その他の項目も全てY

接続できたら成功。
image.png
laravelで利用するDBを作っておく。

MariaDB[(none)」> create database laravel; 

Laravel8 の準備

composer インストール

$ sudo curl -sS https://getcomposer.org/installer | php  # composer をインストール
$ sudo mv composer.phar /usr/local/bin/composer        # composer.phar を "composer" で動かせるように bin 下へ

Laravel を クローン

8.x であることを確認。

$ sudo yum install git       # git が入っていなかったらインストール
$ cd /var/www                # httpd のドキュメントルートへ移動
$ git clone https://github.com/laravel/laravel.git # クローン

httpd.conf の設定変更

$ sudo vi /etc/httpd/conf/httpd.conf   # DocumentRoot変更、Directoryディレクティブ追加
        DocumentRoot "/var/www/laravel/public"

       <Directory /var/www/laravel/public>
           AllowOverride All
       </Directory>
$ sudo systemctl restart httpd         # 再起動

クローンしたLaravelの下でパッケージ取得

$ cd /var/www/laravel
$ composer update

必要な場所へパーミッションの変更

$ sudo chmod -R 777 /var/www/laravel/storage
$ sudo chmod -R 777 /var/www/laravel/bootstrap/cache

.env ファイルの作成

$ cp .env.example .env
$ vi .env
    APP_URL、DB_* を設定

アプリケーションキーの生成

$ php artisan key:generate

マイグレーションとシーディングでDB構築

$ php artisan migrate 
$ php artisan db:seed  

完成

アクセスできるはず。
image.png

参考文献

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?