LoginSignup
26
25

More than 5 years have passed since last update.

VagrantにCentOS6.5 + Apache2.2.15 + MySQL5.6.17 + PHP5.5 + phpMyAdmin4.1.13の構築方法

Last updated at Posted at 2014-09-09

CentOSのboxをadd & init

CentOS 6.5 x86_64をaddする。
※boxの名前はcentos6.5_64にしている。

vagrant box add centos6.5_64 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

boxは以下のページにある。
http://www.vagrantbox.es/

VM用ディレクトリを作成し、移動
※ディレクトリ名は好きな名前を指定。

mkdir local_server
cd local_server

初期化

※boxの名前はcentos6.5_64にしている。

vagrant init centos6.5_64

Vagrantfile編集

vagrant initで出来たVagrantfileを下記の内容に差し替える。
※boxの名前はcentos6.5_64にしている。
※privateなipは192.168.33.50にしている。
※Vagrantfileのあるディレクトリにrootというディレクトリを作り、
     そのrootディレクトリをローカルサーバのルートディレクトリにしている。

# -*- mode: ruby -*-
# vi: set ft=ruby :


# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"


Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "centos6.5_64"
  config.vm.network "private_network", ip: "192.168.33.50"
  config.vm.synced_folder "root", "/var/www/html", :create => "true"



  $script = <<SCRIPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
service iptables save
service iptables restart
yum -y update
yum -y install httpd vim git wget ntp
touch /etc/httpd/conf.d/vhosts.conf
chown vagrant: /etc/httpd/conf.d/vhosts.conf
echo "NameVirtualHost *:80" >> /etc/httpd/conf.d/vhosts.conf
echo "<VirtualHost *:80>" >> /etc/httpd/conf.d/vhosts.conf
echo "  DocumentRoot /var/www/html" >> /etc/httpd/conf.d/vhosts.conf
echo "</VirtualHost>" >> /etc/httpd/conf.d/vhosts.conf
chkconfig httpd on
service httpd start
service iptables stop
chkconfig iptables off
echo ----------------------------------------------------------------------------
echo FINISH
echo ----------------------------------------------------------------------------
SCRIPT
  config.vm.provision :shell, :inline => $script
end 

/var/www/htmlに移動。

cd /var/www/html

index.htmlを作成する。
※中身はなんでも良い。

sudo vim index.html

下記アドレスにアクセスし、先ほど作成したindex.htmlが表示されるか確認。
http://192.168.33.50/

時刻をNTPで合わせる。ついでに日本時間にする。

タイムゾーンの確認

date "+%Y/%m/%d %H:%M:%S %Z"

※上記で表示される時間の末尾がJSTでなければ日本標準時にする

sudo cp /usr/share/zoneinfo/Japan /etc/localtime

再度、タイムゾーンの確認

date "+%Y/%m/%d %H:%M:%S %Z"

※表示される時間の末尾がJSTなら完了。

時刻合わせの対象を NICT の NTP サーバに変更する。

sudo sed -i.bak -e "s:^server:#server:g" /etc/ntp.conf
cat << EOS | sudo tee -a /etc/ntp.conf > /dev/null
server ntp.nict.jp iburst
EOS

NTP デーモンを開始する。

sudo chkconfig ntpd onsudo service ntpd start

時刻を合わせる。
※しばらくすれば同期するが、下記コマンドを実行するとすぐに同期する。

sudo ntpdate -s ntp.nict.jp

動作状況の確認。
※下記コマンドを実行後、サーバ(remote)の横にがついていれば同期できている。
※下記コマンドを実行してもサーバ(remote)の横に
がつかなければ、VMを再起動して、再度下記コマンドを実行して確認してみる。

ntpq -p

参照
CentOS 6.5 の時刻を NTP で合わせる
http://momijiame.tumblr.com/post/71824818067/centos-6-5-ntp

MySQLのインストール

以下のページから最新版のRPMファイルをダウンロードする
※CentOS6.5を使っているので、Red Hat Enterprise Linux 6のRPMをダウンロードする。
http://dev.mysql.com/downloads/repo/

※使用したrpmファイルのURLは以下。
http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

ダウンロードしたRPMを/var/www/htmlに置いておく。
※/var/www/htmlは上記Synced Folderの設定で
Vagrantfileの置いてあるディレクトリになっているはずなので、
Finderでファイルの移動を行っても良い。

/var/www/htmlに移動。

cd /var/www/html

RPMパッケージのインストール。

sudo rpm -i mysql-community-release-el6-5.noarch.rpm

※上記コマンドはダウンロードしたrpmファイルを使用しているが、
下記を実行することにより、ダウンロードせずにRPMパッケージをインストールできる。

sudo rpm -i http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

MySQLのインストール。

sudo yum install -y mysql-community-server mysql-community-client mysql-community-devel

インストールを確認する。

mysql --version

※mysql Ver 14.14 Distrib 5.6.17, for Linux (x86_64) using EditLine wrapperが表示される。

mysqld --version

※mysqld Ver 5.6.17 for Linux on x86_64 (MySQL Community Server (GPL))が表示される

MySQLを自動起動に登録する

sudo chkconfig mysqld on

自動起動に登録されたか確認する

sudo chkconfig --list mysqld

※runlevel 2, 3, 4, 5でonになっていればOK

MySQLを起動する

sudo service mysqld start

※上記、sudo service mysqld startを実行しても「MySQL Daemon failed to start.」と表示され
MySQLが起動しない場合は以下のコマンドを実行してログを確認する。

sudo cat /var/log/mysqld.log

上記で表示したログに
「InnoDB: Using atomics to ref count buffer pool pages」が含まれている場合、
バッファが足りていないので、以下の手順に従いSwap領域を設定する。

メモリ確認

free

スワップ用ファイルの作成

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

※デフォルトではSwapのtotal、used、freeとも0になっている。

スワップ領域の作成

sudo mkswap /swapfile

スワップ領域を有効にする

sudo swapon /swapfile

再度メモリを確認

free

※Swapのtotalとfreeは1048572になっている。

これでMySQLが起動できるので、再度コマンドを実行する。

sudo service mysqld start

MySQLのプロセス確認

sudo ps auxwf | grep mysql

※mysqlのプロセスがリストアップされていればOK

MySQLの初期設定

sudo mysql_secure_installation

※上記コマンドで以下の操作を行う。
・rootユーザのパスワード設定(Enter current password for root (enter for none)) => Enter
(Set root password? [Y/n]) => Y入力後、新しいパスワードを登録。
・アノニマスユーザの削除(Remove anonymous users? [Y/n]) => Y
・rootユーザのリモートログイン禁止(Disallow root login remotely? [Y/n]) => Y
・テスト用データーベースの削除(Remove test database and access to it? [Y/n]) => Y
・変更した情報の再読み込み(Reload privilege tables now? [Y/n]) => Y

動作確認

sudo mysql -u root -p -e "select user, password, host from mysql.user;"

※パスワードの入力を求められたら、先ほど登録したrootユーザのパスワードを入力する。

PHPインストール

epelレポジトリ追加。

sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

remiレポジトリ追加。

sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

インストール。

sudo yum install -y --enablerepo=remi,remi-php55 httpd-devel php php-devel php-common libxml2-devel openssl-devel gd-devel curl-devel libmcrypt-devel re2c
sudo yum install -y --enablerepo=remi,remi-php55 php-pecl-apc php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

PHPがインストールされているか確認。

rpm -qa | grep php
php -v

php.iniを/var/www/htmlにコピー。
※viやvimで直接php.iniを編集してもいいが、使い慣れていないので
Sublimetextで編集するために一度/var/www/htmlにコピーする。

sudo cp -a /etc/php.ini /var/www/html

※php.iniの場所は下記のコマンドで確認できる。

php --ini

php.ini編集

;date.timezone =

上記の行を検索して、下記に変更。

date.timezone = Asia/Tokyo

;mbstring.internal_encoding = UTF-8

上記の行を検索して、下記に変更。

mbstring.internal_encoding = UTF-8

編集したphp.iniでリプレイスする。

sudo cp -a /var/www/html/php.ini /etc

php.confを/var/www/htmlにコピー。
※viやvimで直接php.confを編集してもいいが、使い慣れていないので
Sublimetextで編集するために一度/var/www/htmlにコピーする。

sudo cp -a /etc/httpd/conf.d/php.conf /var/www/html

php.conf編集
※下記の内容が記述されているか確認し、記述されていなければ追加する。

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

編集したphp.confでリプレイスする。

sudo cp -a /var/www/html/php.conf /etc/httpd/conf.d

Apache再起動

sudo service httpd restart

動作確認用PHPファイル作成。
※下記の内容を記述したファイルを/var/www/html/info.phpとして保存。<?php phpinfo(); ?>

動作確認
※下記URLにアクセスしてPHPInfoが表示されればインストール成功。
※IPはVagrantfileの「config.vm.network "private_network", ip:」の値によって変わる。
http://192.168.33.50/info.php

参照
【シンプル】CentOS6にPHP5.5をyumで簡単にインストールする手順
http://blog.ybbo.net/2014/01/22/%E3%80%90%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%80%91centos6%E3%81%ABphp5-5%E3%82%92yum%E3%81%A7%E7%B0%A1%E5%8D%98%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/

CentOS6.5 に PHP5.5.7 を入れる
http://d.hatena.ne.jp/yoya/20131217/centos

phpMyAdminインストール

phpMyAdminダウンロード

sudo wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.1.13/phpMyAdmin-4.1.13-all-languages.tar.gz

gzファイル解凍

sudo tar zxvf phpMyAdmin-4.1.13-all-languages.tar.gz

解凍してできたディレクトリの移動&リネーム

sudo mv phpMyAdmin-4.1.13-all-languages /var/www/html/phpMyAdmin

gzファイル削除

sudo rm phpMyAdmin-4.1.13-all-languages.tar.gz

動作確認
※下記URLにアクセスしてログインしてみる。
※ユーザ名、パスワードはMySQLのユーザ名、パスワードを入力する。
http://192.168.33.50/phpMyAdmin/

画面下に以下のエラーメッセージが表示されているのが確認できる。

「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」

config.sample.inc.phpからconfig.inc.phpファイル作成

sudo cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php

config.inc.php編集

下記の行を見つけ出し、値を変更する。

$cfg['blowfish_secret'] = 'a8b7c6d';
     ↓
$cfg['blowfish_secret'] = 'hove';

動作確認
※再度、下記URLにアクセスする。
今度はエラーメッセージが消えているのが確認できるはず。
http://192.168.33.50/phpMyAdmin/

参照
phpMyAdminインストール
http://www.dbonline.jp/phpmyadmin/install/

26
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
25