フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

AWS EC2にComposer/Laravelをインストール②

はじめに

  • 前回の続きでlaravelのプロジェクトを作成する際にメモリー不足のエラーが発生したので、swap領域を確保してエラーを解消する

  • EC2にswap領域を割り当てる手順 aws.amazon.com

swap領域の作成

  • 下記の手順で作成することが出来る。インスタンスタイプはt2.microの想定です
$ sudo /bin/dd if=/dev/zero of=/var/swapfile bs=1M count=1024
$ sudo /sbin/mkswap /var/swapfile
$ sudo /sbin/swapon /var/swapfile
$ sudo chmod 0600 /var/swapfile
  • fstabファイルに下記の行を追加してサーバー再起動時でもswap領域がマウントされるように設置する
vi /etc/fstab

swap        /swapfile    swap    defaults        0   0

swap領域の確認

  • 割り当てられていることを確認する
$ free -m
              total        used        free      shared  buff/cache   available
Mem:            983          55         846           0          81         817
Swap:          1023          25         998

laravelのインストール

  • ext-mbstringがインストールされていないエラーが発生する
 $ laravel new <プロジェクト名>

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework v8.6.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.5.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.4.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.3.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.2.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.1.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.0.4 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.0.3 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.0.2 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.0.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework v8.0.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - laravel/framework 8.x-dev requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - Installation request for laravel/framework ^8.0 -> satisfiable by laravel/framework[8.x-dev, v8.0.0, v8.0.1, v8.0.2, v8.0.3, v8.0.4, v8.1.0, v8.2.0, v8.3.0, v8.4.0, v8.5.0, v8.6.0].
  • 下記のパッケージをインストールする。domをインストールする理由は、こちらもlaravelインストール時にエラーで怒られるため。
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum install --enablerepo=remi-php74 php-mbstring
sudo yum install php-xml

Nginxの設定

-/etc/nginx/default.d/php.confのファイルを下記のように設定する

location / {
   index  index.php index.html index.htm;
   try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
   fastcgi_pass   unix:/var/run/php-fpm/www.sock;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
}
  • /etc/nginx/nginx.confのファイルを下記のように設定する
   server {
 
       listen       80;
        listen       [::]:80;
        server_name  _;
        #root         /usr/share/nginx/html;
        root          /srv/www/<laravelのプロジェクトフォルダ>/public;

    }

Laravelの設定

  • storageフォルダにアクセス権限を与える
 chmod -Rf 777 storage/

動作確認

f:id:PX-WING:20200923203831p:plain