MacでWordPressをローカルインストールする(MAMPなし, phpmyadminなし)

# 条件
* macを使う
* MAMP使わない
* phpmyadmin使わない
* 基本ターミナルで操作する

私は毎日、代わり映えのない生活をしていますが、このまま一生砂糖水を売り続けるのは嫌だったので、macを買ってWEB開発のスキルを身につけようと思いました。
勉強のためにまずwordpressを使ってみます。
macにはデフォルトでapacheとphpが入っているらしいので、MAMPやphpmyadminは使わずにやってみました。
操作はできるだけターミナルで行います。

# apache
デフォルトでインストールされていました。
何だか知らんが、とにかくよし！

…というわけにはいきませんでした。やったことは、

* apacheの設定を変更する
  - ドキュメントルートを扱いやすい場所に変更する(~/workspace)
  - .htaccess を使えるようにする
  - PHP を有効にする
* apacheを起動する

## apacheの設定を変更する

apacheが参照するデフォルトのドキュメントルートは

```
/Library/WebServer/Documents
```

と長いので、簡単にアクセスできるように変更しました。
別に必須ではないですが、以後の説明はこの変更をした上で説明します。

「.htaccess」「PHP」も有効にしておきます。

これらは[こちら](https://github.com/qckanemoto/php-abc-quests/blob/master/01-environments/install-apache-php.md#setup-apache)のページの手順を実行させていただきました。
**ここでは詳細は省きますので、リンク先を参照して実行してください。**

## apacheを起動する

apacheを起動します。もう起動してる場合は再起動してください。
ターミナルで行います。

```bash
# apacheを起動する
$ sudo apachectl start

# apacheを終了する
$ sudo apachectl stop

# apacheを再起動する
$ sudo apachectl restart
```

# mysql
デフォルトでインストールされていませんでした。
何でだ！

やったことは、

* Homebrewインストール
* mysqlインストール
* mysqlサーバ起動
* mysqlユーザ、データベース作成

##Homebrewインストール

mysqlはHomebrewからインストールしようと思います。
なのでまずHomebrewをインストールします。念のため更新もします。
ターミナルで行います。

```bash
# rubyからHomebrewをインストール
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# 念のため Homebrew を更新
$ brew update
```

これらは[こちら](https://github.com/qckanemoto/php-abc-quests/blob/master/01-environments/install-cli.md)のページを参考にさせていただきました。
Rubyもデフォルトでインストールされていますね。いいね！


##mysqlインストール、サーバ起動

mysqlをHomebrewからインストールします。
インストールは簡単ですが、インストールで出来たフォルダの権限を変更しないと実行できませんでした。
インストールしたらmysqlサーバを起動して確認します。
ターミナルで行います。

```bash
# Homebrewからmysqlインストール
$ brew install mysql

# mysqlフォルダの権限を変更
$ chown -R _mysql:_mysql /usr/local/var/mysql

# mysqlサーバ起動
$ sudo mysql.server start

# mysqlサーバが動いてるか確認
$ mysqladmin ping
```

##mysqlユーザ、データベース作成

mysqlを操作してユーザとデータベースを作成します。
ここではユーザ名を「vegeta」、データベース名を「supersaiyan」、パスワードを「bargainsale」としていますが、用途に応じて必ず変更してください。
ついでにmysql.sockの場所も確認しておきます。あとで使います。
ターミナルで行います。

```bash
# mysqlの操作を開始する
$ mysql -u root -p

# mysqlのルート権限のパスワード入力(デフォルトは空白)
Enter password: 

# ユーザ作成
mysql> create user 'vegeta'@'localhost' identified by 'bargainsale';

# データベース作成
mysql> create database supersaiyan;

# ユーザにデータベース操作の権限追加
mysql> grant all privileges on supersaiyan.* to 'vegeta'@'localhost';

# データベース一覧で作ったデータベースがあるか確認する
mysql> show databases;

# ユーザ一覧で作ったユーザがあるか確認する
mysql> select host, user, password from mysql.user;

# ついでにmysql.sockの場所を確認しておく
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.23, for osx10.10 (x86_64) using  
　：
UNIX socket:		/tmp/mysql.sock   <- これを覚えておく

# mysqlの操作を終了する
mysql> quit
```

これらは[こちら](http://qiita.com/daichi87gi/items/f9dac6cd8acc3ad4330d)のページを参考にさせていただきました。

# php
デフォルトでインストールされていました。
何だか知らんが、とにかくよし！

…というわけにはいきませんでした。やったことは、

* php.iniを作成
* php.ini内のmysqlソケットファイルパスを変更

これらは[こちら](http://tukaikta.blog135.fc2.com/blog-entry-184.html)のページを参考にさせていただきました。

## php.iniを作成

php.iniがなかったので作ります。アクセス権も変えます。
ターミナルで行います。

```bash
#php.ini.defaultをコピーしてphp.ini作成
$ sudo cp /etc/php.ini.default /etc/php.ini

#ファイルのアクセス権を設定
$ sudo chmod 644 /etc/php.ini
```

私の環境では ```/etc``` にありましたが、あなたの環境では違うかもしれません。
もしファイルがなければファイル検索で探してみましょう。

```bash
# php.ini.defaultのある場所を検索する
$ sudo find / -name "php.ini.default"
```

##php.ini内のmysqlのソケットファイルのパスを変更

phpとmysqlはソケット通信でやりとりするらしいので、ソケットファイルのパスを指定する必要があるらしいです。(よくわかりまテン！)

php.ini内の該当項目を変更します。(デフォルトは空白でした。)
先ほどmysqlデータベース作成時についでに確認したパスを入力します。
エディタで行います。

```
mysql.default_socket = /tmp/mysql.sock
```

# Wordpress

Wordpressはデフォルトでインストールされていませんでした。
そりゃそうだ。

やったことは

* Wordpressダウンロード、移動、解凍
* Wordpressインストール

これらは[こちら](http://www.adminweb.jp/wordpress/install/index4.html)のページを参考にさせていただきました。

## Wordpressダウンロード、移動、解凍

まず[こちら](https://ja.wordpress.org/)のページからワードプレスのファイルをダウンロードします。
ブラウザで行います。
できますか？大丈夫？

ダウンロードしたファイルはダウンロードディレクトリに入っているので、最初に設定したドキュメントルートへ移動して解凍します。
解凍したディレクトリの中にwp-config-sample.phpというファイルがあるので、wp-config.phpという名前でコピーします。
ターミナルで行います。

```bash
# ダウンロードしたファイルをドキュメントルートディレクトリへ移動
$ mv ~/Downloads/wordpress-4.1.1-ja.zip ~/workspace

# ドキュメントルートディレクトリへ移動
$ cd ~/workspace

# ダウンロードしたガイルを解凍
$ unzip wordpress-4.1.1-ja.zip

# 作成したワードプレスディレクトリへソニックブーム！
$ cd wordpress

# wp-config-sampleをコピーしてwp-configファイル作成
$ cp wp-config-sample.php wp-config.php
```

## Wordpressインストール

[こちら](http://localhost/wordpress/)にアクセスするとインストール画面が出ます。
mysqlに設定したデータベース名、ユーザ名、パスワードを入力してください。
私が先ほど作成した例で言うと、

* データベース名：supersaiyan
* ユーザ名：vegeta
* パスワード：bargainsale
* データベースのホスト：localhost
* テーブル接頭辞：wp_

になります。あとは画面に従って設定してください。

# 終わりに

どうですか？動きましたか？

## 動かないよ！
え？動かない？そうでしょう、そうでしょう！
私もググっては動かず、ググっては動かずの日々でした。
動かない理由としては以下が考えられます。

* データベース名、ユーザ名、パスワードが間違っている
 - 間違っていても意外と気がつかないので注意しましょう
* apache、mysqlが動いていない
 - 確認コマンドで起動しているか確認しましょう
* 権限が与えられていない
 - ディレクトリの権限は ```$ ls -al /usr/local/var``` などで調べましょう
 - 権限が必要な操作は管理者権限(su)で実行しましょう
* 設定ファイルのパスが違う
 - 見つからないファイルは ```$ sudo find / -name "mysql.sock"``` などで検索しましょう
* Windowsでやっている
 - あーそれは、他をあたってください…
* 時代が違う
 - もしやあなたは２０２０年にこのページを参照していませんか？
* 記事が間違っている
 - え！そんなバカな！

なんかちょっとでも違うと動かないんですよね。根気強く頑張りましょうｂ