◆phpの練習のためにvagrantサーバを一つ作る
※メール送信のテストをしたいのでmailcatcherを使って練習用に設定する
本当はpostfixを設定してgmail経由でメールが送信できるのが望ましいが。。。
とりあえず練習ようなのでmailcatcherを使ってみる。
◆vagrantの設定
必要なツールインストールと設定手順
設定1
sudo yum -y update
設定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
設定3
sudo /etc/rc.d/init.d/yum-cron start
sudo chkconfig yum-cron on
設定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
設定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
設定6
sudo yum -y install mysql-devel.x86_64 --enablerepo=remi
以下ファイルの設定
設定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
設定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
設定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をインストール
設定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で最新のbバージョンを確認
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の設定
設定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のファイルを作ってテスト
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);
?>
実行
※phpコマンドでテスト
php mail.php
実行結果
備忘録
◆mailcatcherの実行方法
実行
mailcatcher --http-ip=192.168.33.10
※もし間違えたらtopコマンドで実行中のpidを確認してkillするしかない(調べたところ)
killコマンド例
kill -9 1625