LoginSignup
17

More than 5 years have passed since last update.

vagrant+VirtualBoxの環境構築(CentOS7,PHP,Python,MySQL)

Last updated at Posted at 2016-07-07

参考:vagrantの導入と構築

環境

  • windows7 64ビット
  • VirtualBox4.3.12
  • vagrant1.8.4

※VirtualBox5.0や4.3.38で実行するとvagrant upが以下のエラーで終わる。
「vagrant up で rails-dev-box が起動しない」を参考にして4.3.12にしたところ動いた。

Command: ["startvm", "xxxx-xxxxxxxx-xxxxxxxx-a4b1", "--type", "headless"]

Stderr: VBoxManage.exe: error: The virtual machine 'rails-dev-box_default_1461997523333_77253' has terminated unexpected
ly during startup with exit code -1073741819 (0xc0000005).  More details may be available in 'C:\Users\xxx\VirtualBox
 VMs\rails-dev-box_default_1461997523333_77253\Logs\VBoxHardening.log'
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine

※vagrant1.8.5で、vagrant up時に「Authentication failure. Retrying...」が繰り返されるバグに遭遇。 2016/09/15追記

参考:http://ytooyama.hatenadiary.jp/entry/2016/07/23/213132

Vagrant導入

VirtualBox/Vagrantインストール

Box取得

Box取得

//vagrant box add 任意のBox名 Box取得先
vagrant box add centos7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

取得されているBoxを確認

vagrant box list

有志によって作られたBoxが掲載されているサイト。ここからBOXを取得する。
http://www.vagrantbox.es/

仮想マシン初期化/起動

一つの仮想マシンにつき、ひとつのフォルダを割り当てる。
フォルダを作りそこへ移動して初期化や起動を行う。

mkdir Myvagrant
cd Myvagrant

//vagrant初期化
//vagrant init Box名
vagrant init centos7

//vagrant起動
vagrant up

注意 PCの「仮想化支援機構(VT-x/AMD-V)を有効化」をしていないと動かない。

1.事象

default: SSH auth method: private keyで止まる

2.対応

BIOSで仮想化支援機構(VT-x/AMD-V)を有効化する。

①再起動して、F10(HP)やF2(その他)を押してBIOS画面へ
②Virtualization Technologyを有効化する。
(PCによって若干表記異なる)

仮想化支援機構(VT-x/AMD-V)を有効化できません Vagrant upでOS起動失敗した」がまんま参考になる。

仮想マシンへの接続

テラタームで127.0.0.1へ接続する。
ユーザ/パスワード vagrant/vagrant
ユーザ/パスワード root/vagrant

※特定のIPアドレスをプライベートアドレスとすることも可能。
フォルダ内のVagrantfileを開き以下をコメントアウトする。

config.vm.network :private_network, ip: "192.168.33.10"

変更を反映する。

vagrant reload

192.168.33.10でアクセスすることが可能。

共有フォルダの設定

ローカル上のinitしたフォルダは、仮想マシン上の/vagrantに該当する。
ローカルのフォルダ(ここでいえばMyVagrant)を仮想マシン上の/var/www/htmlに対応させる。
※Django使う場合は、ドキュメントルート使わないので必要ない。

rm -fr /var/www/html
ln -fs /vagrant /var/www/html

vagrantコマンド一覧

vagrant -hもしくはvagrant box -hでヘルプ

Boxのリスト表示

vagrant box list

Boxの初期化

vagrant init

仮想マシン立ち上げ

vagrant up

仮想マシン現状確認

vagrant status

仮想マシン一時停止

vagrant suspend

suspendからの復帰

vagrant resume

仮想マシン再起動

vagrant reload

仮想マシンシャットダウン

vagrant halt

Boxの追加

vagrant box add

仮想マシンの消去

vagrant destroy

Boxを削除する

vagrant box remove

CentOS7サーバ構築

言語の変更

取得してきたBoxがなぜかドイツ語なので英語へ変更。
CentOS7では/etc/locale.confに言語が定義されている。

vim /etc/locale.conf

LANG="en_US.UTF-8"

参考:RHEL7 のシステムロケールを変更する

ファイアフォール停止/自動起動停止

ローカルなので停止する。

CentOS7ではiptablesではなく、firewalldを使用する。
chkconfigではなくて、systemctlを使う。

//ファイアフォール停止
systemctl stop firewalld

//ファイアフォール自動起動停止
systemctl disable firewalld

参考:CentOS7 ファイアウォール停止方法

各ミドルウェアのインストール

【環境構築】LAMP環境構築のメモ

Apache

yum install httpd

/etc/httpd/conf/httpd.confを修正

ServerTokens Prod
ServerSignature Off
Options -Indexes FollowSymLinks
ServerName XXX:80 #XXXはホスト名を指定
AllowOverride All
DirectoryIndex index.html index.html.var index.php
systemctl start httpd.service
systemctl enable httpd.service

PHP

yum install --enablerepo=remi,remi-php56 php php-devel php-mbstring php-mcrypt php-mysql

/etc/php.iniを修正

expose_php = Off
max_execution_time = 120
error_log = syslog
post_max_size = 20M
default_charset = "UTF-8"
upload_max_filesize = 20M
allow_url_fopen = Off
date.timezone = Asia/Tokyo
session.hash_function = 1
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output =  UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none

Python

yum install python

MySQL5.6

yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum -y install mysql-community-server

/etc/my.cnfを修正する。

[mysqld]
character-set-server=utf8 #追加
default-storage-engine=InnoDB #追加
innodb_file_per_table #追加

[mysql]
default-character-set=utf8 #追加

[mysqldump]
default-character-set=utf8 #追加

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
17