Laravel+React+EC2の備忘録


注意

個人的なメモです。

EC2インスタンスにログイン

各々に応じてログイン。

EC2のセットアップ

[ec2-user ~]$ sudo yum update -y
[ec2-user ~]$ sudo yum install -y git
[ec2-user ~]$ sudo git clone git://github.com/creationix/nvm.git /opt/nvm
[ec2-user ~]$ sudo source /opt/nvm/nvm.sh
[ec2-user ~]$ sudo nvm install v8.11.3
[ec2-user ~]$ sudo yum install -y httpd24 php71 mysql56-server php71-mysqlnd php71-mbstring

node関連参考:https://www.yoheim.net/blog.php?q=20161202

私の場合phpのバージョンが7.1以下だと後々にcomposer installする時なぜだか怒られたので状況に応じてバージョンは管理する。

custom.conf

※参考:https://qiita.com/atto/items/e1effd28c212c3829cb0
Apacheの設定ファイルである/etc/httpd/conf/httpd.confの最後にIncludeOptional conf.d/*.confとありカスタムのany.confを受け入れてくれるとあります。

この原理に基づき、

[ec2-user ~]$ sudo vim /etc/httpd/conf.d/custom.conf

上記のように、custom.confを設置する。

エラーログファイルの場所の変更なども上記参考URLにあるのでやるといい。

[ec2-user ~]$ sudo mkdir /var/www/log
/etc/httpd/conf.d/custom.conf

# ドキュメントルート
DocumentRoot "/var/www/yourproject/public"

# .htaccess 有効化
<Directory /var/www/yourproject/public>
    AllowOverride All
</Directory>

# エラーログ
ErrorLog "/var/www/log/error_log"

# アクセスログ
<IfModule log_config_module>
    CustomLog "/var/www/log/access_log" combined
</IfModule>

パーミッション設定

[ec2-user ~]$ sudo groupadd www
[ec2-user ~]$ sudo usermod -a -G www ec2-user
[ec2-user ~]$ exit
[ec2-user ~]$ groups // 確認

ec2-user wheel www と表示されればOK。

[ec2-user ~]$ sudo chown -R root:www /var/www
[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} +
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} +

Composer Install

  • composer

[ec2-user ~]$ curl -sS https://getcomposer.org/installer | sudo php
    // Downloading...
[ec2-user ~]$ sudo cp composer.phar /usr/local/bin/composer
[ec2-user ~]$ sudo ln -s /usr/local/bin/composer /usr/bin/composer
  • 拡張ライブラリ
[ec2-user ~]$ sudo yum install -y php71-pdo php71-mysqlnd

git clone

[ec2-user ~]$ cd /var/www
[ec2-user ~]$ mkdir yourproject
[ec2-user ~]$ cd yourproject
[ec2-user ~]$ git clone yourrepository

これでlaravel+reactのプロジェクトをEC2にクローンしましたが、.envと/venderがgitignoreのためこのままじゃ動きません。

[ec2-user ~ /youreproject]$ vim .env

上記で、.env設定します。(内容は当たり前すぎるので省略)

/venderを調達のため、自分のプロジェクトrootで

[ec2-user ~ /youreproject]$ composer install

php artisan -Vでバージョン出たら成功。

あとLaravel周りのmigrateとかは当たり前すぎるので省略

Reactのnpm install及びnpm run prod

インストールとbuildやります。