さくらVPS契約からWordPressの初期設定まで

社長から有料サーバーを使ってもいい許可が出たので、人のお金を使ってWordPressを構築します:laughing: 
あ、僕サーバー関連ちっともわからないWindowsマンですので似ている境遇のひとの参考になるかと。 
CentOSとかMS-DOSのことを [黒い画面](https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=%E9%BB%92%E3%81%84%E7%94%BB%E9%9D%A2) とか言っちゃう人です :blush:

#参考ページ
・[さくらVPS借りて最初にやったこと](http://qiita.com/komax/items/7b3d3a8d3f447c262e23)
・[「Webサイトを公開しよう」～初心者でもよくわかる！VPSによるWebサーバー構築講座(5)](http://knowledge.sakura.ad.jp/beginner/3146/)

#環境
・Mac OS X
・PyCharm + Anaconda3
・Google Chrome

#行動開始
#１．VPSの初期設定
・基本的に [さくらVPS借りて最初にやったこと](http://qiita.com/komax/items/7b3d3a8d3f447c262e23) をトレースします。
・一般ユーザーとして追加する名前は「op」です。
##※エラーとのたたかい
気をつけるのはこのへんかなぁ。これらを押さえれば何回でもOS再インストールからやり直せると思う。

##・ログインが拒否られる（refusedは拒絶の意）
なんかいろいろわかんなくなってさくらのVPSのOSを再インストールしたときに起こる拒否られ　

```text:ターミナル１（VPS接続用）
$ ssh root@xxx.xxx.xxx.xxx
ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused
```
この状況は「VNCコンソール（HTML５版）」からコンソールをのぞくと、なんか動いてる可能性大だから「待つ！」（１０分ぐらい？）
[さくらのVPSの初回起動時に応答が無くなるように見えるけど、気長に待つ](https://blog.fudi55.net/archives/454.html)
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/5cd64d93-1cb9-2c02-c4fc-2e5c0ec4cf48.png)

##・VPSのOS入れ直したんだろ？前にローカルPCに作った古い鍵が邪魔してるぜ？
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/a792de0e-f8bf-5593-0423-63c9adeb197d.png)
SSH認証の署名がごみとして残っているのでそれを削除する
[.ssh/known_hosts から特定のホストの情報を消す方法](http://qiita.com/satococoa/items/296645852ccf993cc796)

```text:ターミナル１（VPS接続用）
$ ssh-keygen -R xxx.xxx.xxx.xxx
$ ssh root@xxx.xxx.xxx.xxx
Are you sure you want to continue connecting (yes/no)? yes
$ ssh root@xxx.xxx.xxx.xxx
SAKURA Internet [Virtual Private Server SERVICE]
[root@tk2-224-21879 ~]# 
```
（削除したら ssh root〜 で入れました！）
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/44a3ad80-a60a-6a6e-fbcc-a8f64c48b98c.png)

##・viエディタについて
　　viが操作できる前提の説明がされる。鬼畜！ :fearful: 
　　[行番号の表示・非表示](http://qiita.com/spyder1211/items/c5dd49a3a799bd146599)
　　[viコマンド（vimコマンド）一覧](http://uguisu.skr.jp/Windows/vi.html)
　　・vi起動時は「コマンドモード」になっている。
　　・「i」を押して「挿入モード」にしてから文字編集ができる。
　　・「esc」を押して「コマンドモード」にしてから「ZZ」（保存して閉じる）でvi終了。
　　Windowsマンにはマジで鬼畜！<B>ぶっとばすぞ！</B> :muscle: :collision: :eyes: （まずはきみが落ち着け）

ターミナルの動きも記録しようとしたけど途中で viエディタとかどう表現するかわかんなくなってきた... :cyclone: 
なので [さくらVPS借りて最初にやったこと](http://qiita.com/komax/items/7b3d3a8d3f447c262e23) のとぉ〜りにやりました。何回かOSを入れ直して回数こなしたほうがよさそうです。

##・SSH設定時の "この質問" はカラで Enter する
<font color='lightgrey'>これね→</font>　「Enter file in which to save the key (/Users/<B><font color='red'>(username)</font></B>/.ssh/id_rsa):」
[MacでSSH認証のための公開鍵と秘密鍵を生成する](http://d.hatena.ne.jp/crosshope/20110509/ssh_keygen)
[sshの設定（passwordなしでsshログイン（scp）する）](http://qiita.com/hnishi/items/5dec4c7fca9b5121430f)
[SSHの公開鍵と秘密鍵の関係](http://blog.playispeace.com/145/ssh_publickey_login/)
「.ssh」フォルダはMacには最初からあるっぽいね...隠しフォルダだけど

```text:ターミナル２（Mac操作用）
$ ssh-keygen -t rsa -v
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yoshitaka/.ssh/id_rsa): 
/Users/yoshitaka/.ssh/id_rsa already exists.
Overwrite (y/n)? y
$ ls ~/.ssh/
id_rsa		id_rsa.pub	known_hosts	known_hosts.old
```

![image](https://qiita-image-store.s3.amazonaws.com/0/94562/3c8ee58c-cf99-7bde-c95b-8582e2536c35.png)

（確認方法）
Finderから「Command＋Shift＋Ｇ」で "~/.ssh" と入力して開く。お、ホントにローカルにできた。
（ドットから始まるフォルダやファイルは、どうやらMacでは隠しフォルダらしい）
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/3ae05317-c848-a4cd-b600-c067c8f4d716.png)

##・Are you sure you want to continue connecting？？
「Are you sure you want to continue connecting」と問い合わされたのは，初めてのsshログインであることを意味し，ここで「yes」を選択することで「known_hosts」ファイルが接続元に自動生成される

##・ポート番号を変えるときは先頭の「#」も削除
こんな色にならないとダメね
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/5997290b-36d1-91a6-c7d7-a943695ad771.png)

##・ :scream:大ハマリ 「Macを操作するコンソール」と「VPSを操作するコンソール」の２つを立ち上げろ
<U><B>コンソールのマークがわかってなかった！</B></U> :collision: 
というか、つまりローカルとリモートの区別がついていなかった :cyclone: 
<font color="red">VPSの操作中にMacの〜ってしれっと出てきたらコンソールをもうひとつ立ち上げたほうがいいね</font>
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/41529bef-4563-a306-a5cf-2f11b368fdee.png)

１．[op@xxx-xxx-xxxxx ~]$
２．$ ssh-keygen -t rsa -v
２のときはVPSをログアウトしてMacのコンソールとして入力しなきゃいけないのを <font color="red">[op@xxx-xxx-xxxxx ~]</font> のまま進めてたんだな...下の図のようになったとこで気づくべきだった :cyclone: 
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/01cf6c24-4fcb-fea1-705e-d772b57a528d.png)
[チルダ](http://ameblo.jp/macpg/entry-11212892334.html) とか 「$」 とか 「op@xxx-xxx-xxxxx ~」 とか... 文化の違いにFuckだぜ...
<font color='lightgrey'>（ログインできなくなってOSの再インストールにもどる）</font>

##・:scream:大ハマリ「VirtualHostの設定」は不要！
バーチャルホストというのは、IPひとつを複数のサイトで使いまわす「USBハブ」みたいなもの（？）だとわかりました。まだそんな使い方はしないし、ここはやらなくてもよい。ただ、ここの説明に含まれている権限設定だけは必要。WordPressを入れた際に、WordPress側から更新しようとすると、WordPressは「apache」という自動生成アカウントから更新しようと試みる。

参考：[Webサーバーを構築しよう(1)「3. ドキュメントルートの権限を変更する」](http://knowledge.sakura.ad.jp/beginner/2978/)（※このページでの vpsuser は op です）

```text:ターミナル１（VPS接続用）
これらを実行すると FTPからのopアカウントからとWordPressからのapacheアカウントに許可が通る
(op)$ sudo -s
(root)# cd /var/www
(root)# chown apache:op html
(root)# chmod 775 html
(root)# ls -l
```

#２．WordPressのインストール
・基本的に [「Webサイトを公開しよう」～初心者でもよくわかる！VPSによるWebサーバー構築講座(5)](http://knowledge.sakura.ad.jp/beginner/3146/) をトレースします。「VirtualHostの設定」をコピペしたばかりに沼にハマったが、そこを乗り越えたら特に問題はなかった。

（IPをブラウザに打ち込んだらこの画面に飛んだ！ようやく！）
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/f062065c-e573-f343-331f-720b40c74607.png)

##・使ってる途中でテーマの更新ができなくなった！？
:eyes: <font color="red"><B>たぶん、どこかで間違ってあるファイルを消してしまって root 状態でファイルを作ってしまったことが原因</B></font>
ブラウザ上のWordpressが「テーマ更新できねぇよ！たぶんパーミッションが悪い！」って言ってきたら、そこに書いてあるファイルをコンソール上で追いかけて該当のディレクトリに行き、権限を変える。そしてブラウザ上のWordpressからテーマの更新をかけるとできるはず。
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/b16e9f8c-bfc3-1714-9826-caab2a7a50f1.png)


#３．MySQLへの外部からの接続について
ここもコンソールか...
Macの画面からMySQLWorkbench使いてぇ～って思って調べてみたら [だめなのね](https://help.sakura.ad.jp/hc/ja/articles/206228781) 
あ、でもサポートに聞いたらVPSは大丈夫らしい

で、Workbench設定してるんだけど、、、つながらんのよねー・・・
![image](https://qiita-image-store.s3.amazonaws.com/0/94562/52cf1dcf-e500-f693-b9a4-74379f2d6ced.png)

とりあえず Error No.60 でググってみたら、、、ログを見ろよって書かれてあって
‘/var/lib/mysql/mysql.sock’ にログがあるらしいので見てみたら

```text:ターミナル１（VPS接続用）
$cd ../../../var/log/
$vi mysqld.log
```
↓これと同じ原因だった
・[mysqlでmysql.sock関連のエラーが出たよ](http://mikaduki.info/db/1908/)

やること
１．MySQLを停止
２．socketファイルを削除（socketファイルがない場合、起動すると自動的に生成される）
３．MySQL再起動

```text:ターミナル１（VPS接続用）
$ mysql_config --socket
（ /var/lib/mysql/mysql.sock と出てきた ）

$ cd ...mysql
$ ls
( 出てきた )

$ rm -f mysqld.sock
$ service mysqld restart
```

```mysql:memo
#db名：wordpress
#選択したいテーブル名：wp_users

#mysql起動
mysql -u root -p

#wordpressというデータベースのなかには何のテーブルがあるんだっけ？
SHOW TABLES FROM wordpress;

#データベース選択
USE wordpress;

#SQL発行
SELECT * FROM wp_users;
```

#MySQL消しちゃった！！
いや、[ちょっといろいろあって]()復旧メモ
MySQLへの外部からの接続についてをやろうとして mysql.sock を削除したら動かなくなったオチ
・MySQLを入れ終わったら、create database wordpress;でカラのデータベースを作成。
・IPをブラウザに打ち込むと初期設定（ようこそ）が現れるので大丈夫なはず
・プラグインはインストールしなおしではなくすべて無効化の状態になってるだけなのでまとめて有効化する
・固定ページはサンプルの文字を消してスラッグの表記のしかたを設定から page_id=2 みたいにすればOK
・カスタムフィールドは全再現が必要
・ユーザーは全部消えてる

#４．この先どうすんの？
WordPressのテーマを選んで、db連携して顧客管理と通販を作っていこうと思います。