さくらのレンタルサーバにoh-my-zshを入れたらWordPressのWP-CLIの補完が効いてすごく便利だった

# はじめに
WordPressを動かすためのサーバは色々とありますが、さくらインターネットのサーバが特に気に入っています :relaxed: 

![wp_sakura_1.gif](https://qiita-image-store.s3.amazonaws.com/0/47327/10c5a27e-6b2f-be79-0595-d9749d225b8c.gif)


さくらインターネットのウェブホスティング、「さくらのレンタル」ではSSH接続が使えます。
http://www.sakura.ne.jp/

ここでWP-CLIを使っているのですが、合わせてoh-my-zshを導入したところ凄く便利だったのでメモです。

# 何が便利になるの？

* wpコマンドの次には何を入れることが出来たっけ
* ユーザを追加するときのコマンドって`wp create user`だっけ、`wp user create`だっけ
* メールアドレスのオプション名って具体的に何だっけ

というときに補完が効くのでググる時間が短縮できます。
使ってて楽しいです:yum: 


# SSH接続
さくらのレンタルサーバではデフォルトでssh接続が可能です。
FTPなどと接続情報は同じです。

| 情報名 | 内容 |
|--------|---|
| ユーザ名 | (サブドメインの箇所) |
| 接続先 | *****.sakura.ne.jp といったような、契約時に発行されるドメインです。 |
| パスワード | 初期にメールで来ていると思います。 |


例えば `example` という名前でアカウントを作成していれば、次のようにして接続します。　

```bash
$ ssh example@example.sakuran.ne.jp
```

[SSH について | さくらのサポート情報](https://help.sakura.ad.jp/app/answers/detail/a_id/2263/~/ssh-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)


接続はMacであればTermina.appやiTerm2、WindowsであればputtyやPoderosa、秀termで接続します。

# oh-my-zshの導入
さくらのレンタルでのログインシェルはデフォルトではcshです。
oh-my-zshを導入してログインシェルを変更します。
oh-my-zsh公式の方法では`$`の解釈がうまく出来名かったのでパイプを利用しました。

```csh
% curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
```

インストールの途中でデフォルトシェルの変更のためにパスワードを聞かれます。ssh接続時のパスワードを入力しましょう。

<img width="503" alt="Screen Shot 2016-06-15 at 4.54.18 PM.png" src="https://qiita-image-store.s3.amazonaws.com/0/47327/dea8b764-3ef6-9cf2-4eb1-a2d5095624b7.png">

ここで入力を間違えた場合には以下のように手動で変更します。

```csh
% chsh -s /usr/local/bin/zsh
```

# プラグインの読み込み
zshの設定ファイルを変更します。
pluginsという箇所にwp-cliを追記します。

```conf:~/.zshrc
...
plugins=(git wp-cli)
...
```

追記完了したらsourceコマンドで設定を読み直します。

```zsh
$ source ~/.zshrc
```

# WP-CLIのインストール
WP-CLIを配置するディレクトリを作り、ダウンロードし、実行権限を付けます。

```zsh
$ mkdir ~/bin/
$ cd ~/bin/
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ mv wp-cli.phar wp
$ chmod +x wp

$ wp # ヘルプが表示さればOKです
```

あとはWordPressのインストールディレクトリに移動してWP-CLIを満喫します。 :innocent: 

# 補完
タブキーで補完が効きます。
二回押すと候補を辿ることができて、エンターキーで確定させることができます。

オプションについてはハイフンを一つ入れてタブキーを押すと候補を出してくれます。

# 補足

## プラン
注意点としてプランはスタンダード以上でないとダメとのことです。

> SSHはスタンダードプラン以上のプランでご利用可能です。
> https://help.sakura.ad.jp/app/answers/detail/a_id/2263/~/ssh-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

## 503エラーが出てしまうので注意
さくらのレンタルでは同時アクセス数に制限を掛けているようです。
WordPressなどのPHPであればCGIとして動作しており、各契約者のユーザで動作しています。
このCGIのプロセス数に制限があるようで、その制限を超えたアクセスは503として弾かれてしまうようです。
メールで問い合わせたところ下記のような返答をもらいました。

> 本サービスでは多くのアクセスにも耐え得るよう、サーバ環境を設計、構築しておりますが、1ユーザがサーバリソース(CPU、メモリ、ネットワーク帯域等)を独占することの無いよう、いくつかの項目について予め制限を設けております。

SSH接続は負荷としては軽いですが、制限があるのは当然ですね。

SSHでログインするとそれだけでプロセスが立ってしまうので、並列でいくつもログインしたりピーク時にログインしっぱなしにしていると503が頻発する恐れがあります。
というか503が出まくりました :innocent: 
注意してください。

## WP-CLIについて

WP-CLIの使い方について、忘れそうな事柄を備忘録として纏めていっています。
http://qiita.com/yousan/items/c925f0a241be02a55292#wp-cli

## メールチェックか何かで怒られる
zshに変更するとpermission deniedで怒られる事があります。

```zsh
$ cd
zsh: permission denied: /var/mail/eleon
```

次のようにするとチェックしなくなるので怒られなくなります。

```zsh
$ echo 'export MAILCHECK=0' >> ~/.zshrc; source ~/.zshrc
```
> さくらの共有サーバーでシェルを zsh に変更してから、zsh: permission denied: /var/mail/youraccount と怒られないようにするAdd
> http://d.hatena.ne.jp/littlebuddha/20090216/1234785251

## oh-my-zshのアップデートについて
ログインすると「アップデートしますか？(Y/n)」と聞かれる事があります。
アップデートをしておけばWP-CLIの補完も強力になるのでエンターキーで行っています。

## oh-my-zshのアンインストールについて

```zsh
$ rm -rf ~/.oh-my-zsh
```

## 他のサーバ
SSHがログイン可能なサーバであれば同様のことは可能だと思われます。
例えばエックスサーバーを仕事で使うことがあったりしますが色々と各社使ってみるのは楽しいですね。
でも試すだけで課金するのは辛いです。