LoginSignup
1
3

More than 5 years have passed since last update.

laravel5.3をローカルからサーバーにデプロイするbashスクリプト

Last updated at Posted at 2017-06-28

ssh接続でアップロードしてインストールします
環境はubuntu16.04で、webサーバーはapacheです
このスクリプトはlaravelのルートディレクトリに保存してそのディレクトリに移動してから実行します
DIR_NAME,APACHE_USER,SSH_USERを書き換えて
$./deploy.sh upload
でアップロード
$./deploy.sh install
でインストールします

#!/bin/sh
DIR_NAME="service_name"
APACHE_USER="www-data"
SSH_USER="ubuntu"
case $1 in
  "")
    echo "./deploy.sh upload then install"
    ;;
  "upload")
    #アップロード先のファルダを作成
    ssh ${SSH_USER} mkdir -p /var/www/${DIR_NAME}_uploaded
    #高速にアップロードするために、ローカルで圧縮してからサーバーにアップロードしてサーバー側で展開する
    tar cvf - . | ssh ${SSH_USER} tar xvf - -C /var/www/${DIR_NAME}_uploaded
    ;;
  "install")
    #デバッグモードをオフにしてファイルやフォルダの権限を設定
    ssh -t ${SSH_USER} "\
    sudo sed -i -e "s/APP_DEBUG=true/APP_DEBUG=false/g" /var/www/${DIR_NAME}_uploaded/.env \
    && sudo chown -R ${SSH_USER}:${APACHE_USER} /var/www/${DIR_NAME}_uploaded \
    && sudo chmod -R 750 /var/www/${DIR_NAME}_uploaded \
    && sudo chmod -R 770 /var/www/${DIR_NAME}_uploaded/storage/ /var/www/${DIR_NAME}_uploaded/bootstrap/cache/ \
    "
    #アップロードしたバージョンと現在稼働中のバージョンが存在しバックアップが存在すればバックアップを削除
    ssh ${SSH_USER} "\
    [ -d /var/www/${DIR_NAME}_uploaded ] \
    && [ -d /var/www/${DIR_NAME} ] \
    && rm -rf /var/www/${DIR_NAME}_backup \
    "
    #アップロードしたバージョンと現在稼働中のバージョンが存在すればバックアップに
    ssh ${SSH_USER} "\
    [ -d /var/www/${DIR_NAME}_uploaded ] \
    && [ -d /var/www/${DIR_NAME} ] \
    && mv /var/www/${DIR_NAME} /var/www/${DIR_NAME}_backup \
    "
    #アップロードしたバージョンが存在すれば稼働させる
    ssh ${SSH_USER} "\
    [ -d /var/www/${DIR_NAME}_uploaded ] \
    && mv /var/www/${DIR_NAME}_uploaded /var/www/${DIR_NAME} \
    "
    ;;
esac

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