さくらのレンタルサーバにgitcloneしてみよう


以前の勤務先で研修がてら自分を含めたひよっこ数名でmac,win混合開発した際に、
全員環境設定ができるよう共有したメモです。
環境設定が一番苦手です。。。

環境：
mac OS 
backlog(git)
さくらレンタルサーバー（スタンダード）
ドメインは取得済み
***


■1■
◇まず、さくらのサーバにSSH接続◇
***

```
ssh hogehogeo@wwwxxxx.sakura.ne.jp
```

パスワードを聞かれるので、サーバのパスワードを入力
のちほど共有します

```
Last login: Sun Sep 17 00:28:19 2017 from kd121109183198.ppp-bb.dion.ne.jp
FreeBSD 9.1-RELEASE-p24 (SAKURA17) #0: Thu Feb  5 10:03:29 JST 2015

Welcome to FreeBSD!
```

ラストログイン履歴と、welcomeメッセージが表示されたら接続OKです

```
pwd//現在の自分の場所確認
```

で現在のディレクトリ位置を確認すると、デフォルトはhome/ユーザーディレクトリ名/にいます

今回はbacklogのgitを使用して、masterブランチ（成果物として公開用のソース）のリポジトリと
個人ごとのリポジトリを個別にサーバー上に置くスタイルにしました。
（自分含め初心者が多かったので、一人一人のリポジトリで暴れまわってもいいようにこの方法をとりました）

メインのフォルダに移動

```
cd home/hogehogeo/www/sakura_chan_master
```

個人用のディレクトリは１階層下までもどります

```
cd ..//戻る
ls//リスト表示のコマンド
dev_mi_sa（個人リポジトリを作成済） php.ini 

```

各自のリポジトリに入って自分のブランチのリポジトリを置きたいので

```
cd dev_mi_sa //移動先の各自のリポジトリを指定
ls //リスト表示し空（何もファイル名がない）ことを確認

//各自のブランチを指定してbacklogのリポジトリをクローンする
git clone -b feature/mi_sa https://hoge.backlog.jp/git/PROJECTAN_X/sakura_chan.git

```
backlogのリポジトリのため、IDとPASSを求められますので入力します。
error表示されずにdoneとなっていればOKです。
自分のディレクトリに「sakura_chan」が入っています。

```
cd home/hogehogeo/www/dev_mi_sa/sakura_chan

git branch
```

と打つと自分のブランチ名が表示されるはずです

***
■2_1■
◇cakePHP3で表示されるための修正◇

さくらのリモートサーバ上の個人ディレクトリに
git cloneで自分のブランチのリポジトリをクローンしてきた後、行う作業を記載します。

intl拡張モジュール？なるものがcake3にはなく、
cake2のように標準の設定ではさくらのレンタルサーバで表示してくれないため、
下記プラグインを導入してさくらでもcake3を使えるように変更が必要になります。。。
https://github.com/chinpei215/cakephp-intlless/blob/master/README.ja.md
上記のプラグインを導入しました。
composerのインストールや、一部変更以外のソース変更はすでにbacklogのdevelopブランチにアップしているのですが、
下に記述する作業は必要になります。

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

現在のディレクトリ位置を確認し、/home/hogehogeo/www以外の位置なら移動
home/hogehogeo/wwwの中で、sakura_chan/vendorの中身を自分のディレクトリにコピーする

```
cp -r sakura_chan/vendor dev_mi_sa/sakura_chan/
```
lsコマンドなどでvendorの中身が変わっていることを確認してください。

次にconfigファイルの中のいくつかのファイルを変更します。

app.default.phpを変更
viコマンドでサーバ上から変更できますが、外部サーバで処理が遅めなので、
慣れていなければこの作業は自分のローカルで変更→filezillaなどでさくらサーバに転送でも大丈夫です。
/home/hogehogeo/www/個人名/configに移動して
lsコマンドでapp.default.phpを見つけたら

```
vi app.default.php

```

クリック使えないのでカーソル移動して
以下の箇所を見つけます。
行数長いのでshift+fか何かで該当箇所調べます。

```
'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',//ここを変更 'mysqlxxx.db.sakura.ne.jp',
            /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => 'my_app',//ここを変更'hogehogeo',
            'password' => 'secret',//ここを変更'ID',
            'database' => 'my_app',//ここを変更'PASSWORD',
            'encoding' => 'utf8',
            'timezone' => 'UTC',//ここを変更'+09:00',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,
```

変更箇所にカーソルがある状態で文字を削除し、「i」を打つと
一番下に--INSERT--と表示され、
文字の入力ができるインサートモードになります。
そこでコメントアウトの「//ここは変更」部分をコメント通りに変更します。
入力完了したら、「esc」押した後、「:wq!」で保存します。
この時インサートモードのままになっていると「:wq」が入力されてしまいます。
日本語入力のままになっていると正しく入力完了しなかったりしますので、
esc前に英数入力に変更してから:wq!してください。

完成したら、このapp.default.phpをリネームします。
configディレクトリに入っている状態で「app.php」に変更

```
mv app.default.php app.php
```

このapp.phpも変更してdevelopブランチにあげてくれればいいじゃない！と思うかもしれません。。
そうしたいのですが、
このapp.phpは.git ignoreファイルのなかの、gitには反映しないよう指定されているファイルに含まれているため、
変更してもgitにアップされません。
面倒ですが、この手順が必要となります。


***



ちなみにMYSQLにも接続しましょう

```
mysql -h mysqlxxx.db.sakura.ne.jp -uusername -ppassword --default-character-set=utf8;
```

さくらの仕様なのか、-pのあとにスペース入れると接続ができない謎です
そしてさくらレンタルサーバのスタンダードプランはroot権限がないため、
大元の設定を変更できず
文字コードの設定＝charsetを毎回してあげなくてはいけないようで、すみませんです。。。
ちなみにTBを参照するとき、データが多くないときは、\Gすると見やすいです。
参考；http://blog.syuhari.jp/archives/1883