vagrant php環境　mailcatcherの設定　備忘録　（途中）

# ◆phpの練習のためにvagrantサーバを一つ作る
**※メール送信のテストをしたいのでmailcatcherを使って練習用に設定する**
本当はpostfixを設定してgmail経由でメールが送信できるのが望ましいが。。。
とりあえず練習ようなのでmailcatcherを使ってみる。


## ◆vagrantの設定
必要なツールインストールと設定手順

```lang:設定1
sudo yum -y update
```

```lang:設定2
sudo yum -y install yum-cron wget vim install openssl-devel httpd mysql mysql-libs vim-enhanced bind-utils tree ImageMagick-devel mysql-devel libxml2-devel libxslt-devel　libcurl-devel git gcc mysql-devel mysql2 libffi-devel　ruby-devel gcc-c++ httpd httpd-devel apr-devel apr-util-devel libcurl-devel mariadb-server mariadb-devel ImageMagick ImageMagick-devel ipa-pgothic-fonts ruby-devel rubygems sqlite sqlite-devel
```

```lang:設定3
sudo /etc/rc.d/init.d/yum-cron start
sudo chkconfig yum-cron on
```

```lang:設定4
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh epel-release-6-8.noarch.rpm

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6.rpm
```

```lang:設定5
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install
```

```lang:設定6
sudo yum -y install mysql-devel.x86_64 --enablerepo=remi
```


## 以下ファイルの設定

```lang:設定7
◆apacheの設定ファイル編集
－バックアップを作成する
sudo cp -pr /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

－以下のファイルを編集
sudo vim /etc/httpd/conf/httpd.conf

# 44行目 OS情報を表示しないようにする
ServerTokens Prod

# 331行目 -(ハイフン)を追加
Options -Indexes FollowSymLinks

# 402行目　index.phpとindex.cgiを追加する
index.php index.cgi

# 536行目 OS情報を表示しないようにする
ServerSignature Off

# 990行目　コメントを外す（バーチャルホストを使えるようにする）
NameVirtualHost *:80

◆apacheの編集後確認コマンド
apachectl configtest
```

```lang:設定8
◆◆◆PHPとMYSQLのインストールおよび・設定をおこなう。◆◆◆
◆◆remiとepelのインストール　各インストールできるパッケージが最新かどうか確認する。
yum info php
→この時に5.3.3になることを確認する。

◆設定ファイル変更
sudo vim /etc/yum.repos.d/epel.repo

※最初に出てくる↓の部分だけを変更するそれ以外は不要！！！
enables = 0

remiを使用してphpをインストールした時のバージョン確認
yum info --enablerepo=remi php
→この時に「Version:5.4.34」になればOK※もしくはバージョンが新しくなっていればOK

◆phpインストールコマンド
sudo yum --enablerepo=remi install -y php php-devel php-mysql php-mbstring php-gd

◆php.ini設定ファイルの編集　※各設定箇所をコピーして検索してください。
－バックアップ取得
sudo cp -pr /etc/php.ini /etc/php.ini.org

sudo vim /etc/php.ini

※errorログの出力場所
error_log = /var/log/php.log

◆文字コード設定
検索：mbstring
1628行目：コメント削除：mb-string

1634行目：文字コードを変更：sjis　→　UTF-8

1638行目：コメント削除：http_input

1644行目：コメント削除：http_output

1656行目：コメント削除：detect-order

366行目：expose_php = Off

869行目：タイムゾーン変更：timezone Asia/Tokyo

◆変更したら保存して終了します。※このコマンドはvi,vimのコマンドです。各コマンドは調べてください。
:wq
```

```lang:設定9
◆mysql install
sudo yum install -y --enablerepo=remi mysql-server

◆設定ファイ編集
－バックアップファイルの取得
sudo cp -pr /etc/my.cnf /etc/my.cnf.org

－設定ファイルの編集
sudo vim /etc/my.cnf

◆設定
※1行目からこちらに上書きしてください。全部で22行入る

-----
[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log_slow_queries
long_query_time = 1
slow_query_log_file=mysql-slow.log
log-queries-not-using-indexes

character_set_server=utf8
default-storage-engine=InnoDB
innodb_file_per_table

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8
-----

◆DB起動
sudo service mysqld start

◆DBをつねに起動しておく
sudo chkconfig mysqld on

◆◆◆DBを初期化◆◆◆
mysql_secure_installation

◆◆◆DBを確認◆◆◆
mysql -u root -p
```


## rbenvを使ってrubyをインストール
```lang:設定10
◆◆◆◆◆◆◆◆◆◆　rubyをrbenvで導入する手順　◆◆◆◆◆◆◆◆◆◆◆
vagrant userでrubyのバージョン確認
ruby -v
→必ずコマンドがないと聞かれるので慌てないでください。

※rbenvはgitからインストールする
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

※実行ファイルにpathを通す以下コマンド実行
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL -l

◆rbenvがインストールされているか確認
rbenv -v

◆ruby-buildインストール
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

◆rbenvで最新のｂバージョンを確認
rbenv install --list

◆補足：rubyの最新バージョンをインストール※バージョンは任意に選ぶことが可能です。その際は下のv以降を変更してください。
rbenv install -v 2.1.2
※新バージョンをインストールすることも可能です。

◆インストールしたら必ず以下のコマンドを実行する。※もしなにかしたら「rbenv rehash」
rbenv rehash

◆設定確認
rbenv versions

◆バージョンを選択
rbenv global 2.1.2

◆インストールしたら必ず以下のコマンドを実行する。※もしなにかしたら「rbenv rehash」
rbenv rehash

→この後もう一度バージョン確認

◆gemファイルをアップデート
gem update --system

◆バージョン確認
rails -v

◆gemの確認
gem env

◆必ずここでrehashすること。
rbenv rehash

◆bundleをインストールする。
gem install bundler

◆mailcatcherをインストール
gem install mailcatcher
```


## mailcatcherの設定
```lang:設定11
◆php.iniの設定
sudo vim /etc/php.ini

# 950行目 localhostから127.0.0.1に変更する
SMTP = 127.0.0.1

# 952行目 port番号を25→1025に変更する
smtp_port = 1025

# 957行目 sendmail_fromを追加する（メールアドレスは適宜変更する。）
sendmail_from = no-reply@example.com

# 961行目 sendmail_pathをmailcatcherに変更する。
sendmail_path = /usr/bin/env catchmail

※ちなみにデフォルトはこうなっています。
sendmail_path = /usr/sbin/sendmail -t -i
```


## メール送信テスト
◆phpのファイルを作ってテスト

```lang:php
◆mail.php
※例によって、$toと$headersの中身を変更する
<?php
$to      = 'tet@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: no-replay@example.com';
mail($to, $subject, $message, $headers);
?>
```

```lang:実行
※phpコマンドでテスト
php mail.php
```

## 実行結果
![2015-07-19_185933.png](https://qiita-image-store.s3.amazonaws.com/0/56318/1f90577b-c959-3c5d-daaa-f4bd05f17424.png)


## 備忘録
**◆mailcatcherの実行方法**

```lang:実行
mailcatcher --http-ip=192.168.33.10
```

※もし間違えたらtopコマンドで実行中のpidを確認してkillするしかない（調べたところ）

```lang:killコマンド例
kill -9 1625
```