速くなった（らしい）さくらのサーバーにlaravelプロジェクトを移転した

#動機
ずっとさくらのレンタルサーバーを使ってきたのだが、最近
「速くなったからぜひ新しく登録し直して移転してね！初期費用と１ヶ月分のクーポンつけるから！」
とメールが来たのでごちゃごちゃしてたサーバーの整理を兼ねて移転してみることにした。

#もくじ
1. 登録
2. 前準備
3. 移転
4. 移転後作業

#1.登録
##スタンダードプラン
https://www.sakura.ne.jp/standard.html
上記ページの「２週間無料で始める」より
- 初期ドメイン
- 支払い方法
を入力して登録

#2.前準備
##仮登録完了メールを確認
登録してしばらくすると「仮登録完了のお知らせ」というメールが来るので確認
ここに初期パスワードやFTP、メール関連の情報が載っているので大切に扱う
##パスワードの変更
初期パスワードのままだとメールが盗まれた場合に非常にまずい事態となるのでまずはじめに変更する
[サーバコントロールパネル](https://secure.sakura.ad.jp/rscontrol/)
にログインして左メニュー「サーバパスワード変更」から変更する

##ssh作業
ここからターミナルを使用する
macの場合は[ターミナル]
windowsの場合は「git for windows」をインストールした際についてくる[git bash]が便利
###SSHログイン
``` 
$ ssh (初期ドメイン名)@(初期ドメイン名).sakura.ne.jp
```
パスワードを聞かれるので入力してログイン
###シェルをbashに変更
(参考：http://blog.orepedia.com/entry/2015/12/06/000000)
ログインして

```
Welcome to FreeBSD!
%
```
ならば

```
% chsh -s /usr/local/bin/bash
```
を叩いてパスワードを入力
続いて.bash_profileと.bashrcを作成

```
touch .bash_profile
touch .bashrc
```
.bash_profileの編集

```
vi .bash_prifile
```

```bash:.bash_profile
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
```
今のところ.bashrcがあれば読み込んでねっていう指示のみ
再ログインし直して

```
Welcome to FreeBSD!
[hoge@www3333 ~]$
```
のようになっていれば成功
###php、gitバージョン確認
```
php --version
```
2018年8月13日現在でデフォルトが7.2.*が入っている

```
git --version
```
これも2.7.0が入っている
###binディレクトリ作成
さくらのレンタルサーバーでは$home/binにあらかじめパスが通っているがディレクトリは無いので作成する

```
mkdir /bin
```
###composerインストール
(参考：https://c-rtx.com/2015/09/22/laravel-on-sakura-rental-server/)

```
$ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin --filename=composer
$ chmod 755 bin/composer
```
```
$ composer
```
と打ってヘルプが出てくれば成功
##DB作成
[サーバコントロールパネル] - [データベースの設定] - [データベースの新規作成]
よりDBを作成
##メールアカウント作成
[サーバコントロールパネル]　- [メールアドレスの管理] - [メールアドレスの追加]
よりメールアドレスを追加

#3.移転
##wwwディレクトリ以下の移転
さくらのサーバは ~/www 以下がルートディレクトリになっているが、
今回は ~/(プロジェクト名) にプロジェクトを配置し、
 ~/www 以下にシンボリックリンクを設置する方法を取る。

 ~/www 以下にリンクの他に静的サイトを設置していたの場合は
FileZilla等を使って旧サーバから新サーバに移転
##laravelプロジェクト移転
###プロジェクトをclone
プロジェクトはBitbucket上のリポジトリにpushしている前提で話を進める。
~/(プロジェクト名)にプロジェクトをcloneする

```
[hoge@www3333]$ mkdir ~/(プロジェクト名)
[hoge@www3333]$ cd ~/(プロジェクト名)
[hoge@www3333]$ git clone git clone https://(アカウント名)@bitbucket.org/(アカウント名)/(プロジェクト名).git
```
###.env
```
[hoge@www3333　~/(プロジェクト名)]$　cd　(Bitbucketプロジェクト名)
[hoge@www3333 ~/(プロジェクト名)/(Bitbucketプロジェクト名)]$　cp .env.example .env
```

``` env:.env
APP_NAME=(アプリ名)
APP_ENV=production　　←本番環境の場合
APP_KEY=
APP_DEBUG=false
APP_LOG=daily  ←お好みで
APP_LOG_LEVEL=error　　←お好みで
APP_URL=(アプリURL)

DB_CONNECTION=mysql
DB_HOST=(データベースサーバ)
DB_PORT=3306
DB_DATABASE=(データベース名)
DB_USERNAME=(アカウント名)
DB_PASSWORD=(データベースパスワード)
```

###laravelインストール
```
[hoge@www3333 ~/(プロジェクト名)/(Bitbucketプロジェクト名)]$ composer install
[hoge@www3333 ~/(略)]$ php artisan key:generate
[hoge@www3333 ~/(略)]$ php artisan config:cache  ←適宜
```

###DB設定
```
[hoge@www3333 ~/(略)]$　php artisan migrate
```

旧サーバのコントロールパネル
→データベースの設定
→管理ツールログイン
→左のツリーからデータベース選択
→エクスポート
→sqlファイル保存

単純にレコードのみ挿入するファイルにする

``` sql:hoge.sql
*テーブル「migrate」と「password_resets」に関する行を削除
*CREATE TABLEから始まる行をすべて削除(laravelのmigrateですでにやっているので)
*各テーブルへのINSERT文のみ残しそれより下の設定に関する行も削除(同上)
```

新サーバのコントロールパネル
→データベースの設定
→管理ツールログイン
→左のツリーからデータベース選択
→インポート
→編集したsqlファイルを選択
→実行

###link設定
ターミナルで新サーバにsshログイン

```
ln -s ~/www/(プロジェクト名等※１)　~/(プロジェクト名)/(Bitbucketプロジェクト名)/public
```
###動作確認
404出たりした場合は public/.htaccess あたりを疑うべし
##独自ドメイン登録変更

###旧サーバ―から削除
コントロールパネル
→ドメイン/SSL設定

(SSLを設定している場合)
→証明書欄の「更新」
→証明書作成の中止
→画面に従って完全に削除


→ドメイン名の一番右「削除」
→削除

###新サーバーに登録
コントロールパネル
→ドメイン/SSL設定
→新しいドメインの追加
→画面に従って追加してください

(SSLを追加する場合)
→証明書欄の「登録」
→画面に従って登録してください

#4.移転後作業
###旧サーバーの削除
ファイル・DB・メールすべて移転orバックアップが完了したら旧サーバの登録を解除しましょう