目次
前提条件
実行日:2021年6月
環境:kusanagi(最新),Nginx,さくらVPS
Laravel:8.x
他:composerが使える、sudo実行権限がある、GitHubでコードを管理している
いちおう、yum updateで最新にしておく
sudo yum update
※あくまで備忘録です。丁寧な解説は期待しないでください。
プロビジョニングする
kusanagiだとめっっっっっっちゃ簡単
SSHでつなげて、
kusanagi provision --lamp 名前
あとは言われるがままに情報を入力。重要情報ばかりなので、メモを忘れずに。
コードをサーバーに送り込んで設定する
git cloneとDocumentRoot削除
できたディレクトリに移動して、
git clone リポジトリのリンク
リポジトリのリンクはGitHubより
privateのリポジトリだとパスワードなどを要求されます。(publicなリポジトリなら上のコマンドで終わり)
これでコードがサーバーに送られる
次にもともとあるDocumentRootのディレクトリを消す
rmdir DocumentRoot
Laravelの.envファイルを作る
cd クローンしたディレクトリ名
.env作成
クローンしたディレクトリに移動したあと、.env.exampleから.envを作成(コピー)
cp .env.example .env
次に
vim .env
で必要な情報を入力していく。
app_nameとかurlとか、DBの情報(プロビジョニングで設定したやつ)、他デバッグの無効化などを設定して保存
権限周り
ケースバーイケースだけど、おそらく最低限は下記コマンドでカバーできる
sudo chmod -R 777 ./storage/
sudo chmod -R 777 ./bootstrap/cache/
sudo chown -R httpd.www storage/
sudo chown -R httpd.www bootstrap/cache/
composer installする
おそらく多くの方はcomposerで生成されるファイルをgit管理していないと思われるので、composer installする
composer install
artisanとかも使えるようになるので
keyの生成
php artisan key:generate
これをした際に、「Aplication key set successfully」と出たら成功!
マイグレーションする
わりと緊張の瞬間です。
php artisan migrate
/envの設定、正しいコード、kusanagiが古くなければ、エラー無く終わるはずです。
Nginxの設定を書き換える
nginxの設定に下記コマンド移動しまして、
cd /etc/nginx/conf.d
プロビジョニングのときの名前.ssl.confみたいなやつ
プロビジョニングのときの名前.http.conf
をそれぞれvimで開いてrootを変える
root なんとかかんとか/DocumentRoot
を
root なんとかかんとか/cloneしたリポジトリの名前/public/
みたいな感じ。
Laravelのpublicがrootになるようにする。
Let's encrypt のrootも変える
これしないとSSL証明書が自動更新されず、悲しいことになります……
cd /etc/nginx/conf.d
プロビジョニングのときの名前.confみたいなやつ
をvimで開いてrootを変える
webroot_path= なんとかかんとか/DocumentRoot
と
[[webroot_map]]
サイトドメイン=なんとかかんとか/DocumentRoot
を
webroot_path= なんとかかんとか/cloneしたリポジトリの名前/public/
[[webroot_map]]
サイトドメイン=なんとかかんとか/cloneしたリポジトリの名前/public/
にして保存します。
再起動
すべて終わったら再起動
sudo kusanagi restart
これでアクセスしてみてください!!
コードを更新した時(GitHub)
コードを更新し、GitHubでmainブランチに上げたら、
サーバー上のgit cloneしたリポジトリで
git pull origin main
これでサーバー上にも反映できます。簡単。