Box

Boxの追加

$ vagrant box add OS名 URL
$ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20131103.box

Boxの一覧

$ vagrant box list

Boxの削除

$ vagrant box remove OS名
$ vagrant box remove centos64

仮想OS

起動

$ vagrant up

状態

$ vagrant status

終了

$ vagrant halt

再起動

$ vagrant reload

スリープ

$ vagrant suspend

スリープ解除

$ vagrant resume

削除

$ vagrant destroy

仮想OSにログイン

$ vagrant ssh

仮想OSとローカルフォルダのリンク

ローカルの~/Vagrant/Box名/と仮想OS上の/vagrant/はリンクしているため、以下のようにするとローカルからサーバー上のファイル操作ができる。

$ sudo rm -rf /var/www/html    # 既存のファイルを削除
$ sudo ln -fs /vagrant /var/www/html    # シンボリックリンクを作成

OSの設定

httpdサーバーのインストール

$ sudo yum -y install httpd

httpdサーバー起動

$ sudo service httpd start

httpdサーバーを再起動後にもON

$ sudo chkconfig httpd on

キャッシュによってWebサーバーが誤動作しないようにしないようにする

$ sudo vi /etc/httpd/conf/httpd.conf

EnableMMAPEnableSendfileのコメントアウトを外す

ファイアーウォールをOFF

$ sudo service iptables stop

ファイアーウォールを再起動後にもOFF

$ sudo chkconfig iptables off

Webページにアクセスするための設定

~/Vagrant/Box名/Vagrantfileの、下記の行のコメントアウトを外す:

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

CentOS6以降の高速化

仮想OS内の/etc/resolv.confの先頭に下記を追記する。

options single-request-reopen

プラグイン

プラグインをインストール

$ vagrant plugin install プラグイン名
$ vagrant plugin install sahara

プラグインをアンインストール

$ vagrant plugin uninstall プラグイン名
$ vagrant plugin uninstall sahara

プラグインの一覧を表示

$ vagrant plugin list

プラグイン - sahara

サンドボックスをON

ロールバック時にここまで戻る

$ vagrant sandbox on

サンドボックスの状態を表示

$ vagrant sandbox status

ロールバック

$ vagrant sandbox rollback

変更を確定

$ vagrant sandbox commit

次回rollbackしたときに、ここまで戻る。

実行時には$ vagrant sandbox suspendなどでスリープにした方が処理が速い。

サンドボックスをOFF

$ vagrant sandbox off

実行時には$ vagrant sandbox suspendなどでスリープにした方が処理が速い。

リポジトリの追加

EPEL

Epelepel-releaseから始まるものを仮想OSにダウンロードする。

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

Remi

RemiからCentOS6用のファイルを仮想OSにダウンロードする。

$ wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

リポジトリの追加

仮想OS上で以下のコマンドを実行する。

$ sudo rpm -Uvh ファイル名.rpm
$ sudo rpm -Uvh epel-release-6-8.noarch.rpm
$ sudo rpm -Uvh remi-release-6.rpm

EPELの無効化

仮想OS内の/etc/yum.repos.d/epel.repoの中のenabledを0にする。

sudo vi /etc/yum.repos.d/epel.repo

パッケージの追加

Vim

$ sudo yum install -y vim
$ vim --version

PHP

$ sudo yum --enablerepo=remi install -y php php-devel php-mysql php-mbstring php-gd
$ php -v

設定

設定ファイルの場所:/etc/php.ini

  1. 366行目:expose_php = Off
  2. 577行目:error_log = /var/log/php.log
  3. 869行目:date.timezone = Asia/Tokyo
  4. 1628行目:コメントアウトを外す
  5. 1634行目:mbstring.internal_encoding = UTF-8
  6. 1638行目:コメントアウトを外す
  7. 1656行目:コメントアウトを外す

上記の設定を有効にするにはサーバーを再起動する:

sudo service httpd restart

MySQL

$ sudo yum --enablerepo=remi install -y mysql-server
$ mysql --version

設定

設定ファイルの場所:/etc/my.cnf

3行目に下記を挿入する。

character_set_server=utf8
default-storage-engine=InnoDB
innodb_file_per_table
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8

起動

$ sudo service mysqld

セキュリティ設定

$ /usr/bin/mysql_secure_installation

1回目はReturn、2回目はy、3回目はパスワード設定、4回目はパスワード確認、それ以外はReturnする。

再起動時にも自動起動する:

$ sudo chkconfig mysqld on

PostgreSQL

PostgreSQLからPostgreSQL Yum Repositoryのコマンドを実行する。例:

$ sudo yum install -y http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
$ sudo yum install -y postgresql93-server postgresql93-contrib
$ sudo service postgresql-9.3 initdb
$ sudo chkconfig postgresql-9.3 on
$ sudo service postgresql-9.3 start

ユーザー設定

$ sudo passwd postgres
$ su - postgres
$ psql
  create user vagrant createdb password 'vagrant' login;
  \q
$ exit
$ psql --version

Python

PythonのリリースノートからXZ compressed source tar ballなどをダウンロードし、インストールする。例:

$ wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
$ tar xJvf Python-2.7.8.tar.xz
$ ./configure --enable-shared --with-threads
$ make
$ sudo make install
$ sudo cp libpython2.7.so libpython2.7.so.1.0 /usr/lib
$ sudo /sbin/ldconfig
$ python --version

Git

$ sudo yum install -y git
$ git --version

Ruby

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install -v 2.1.2
$ rbenv rehash
$ rbenv global 2.1.2
$ ruby -v

$ rbenv versions:インストール済みRubyの一覧

$ rbenv rehash:rbenv・gemを使用後に実行する

Ruby on Rails

$ gem update --system
$ gem install rails --no-ri --no-rdoc -V
$ rbenv rehash
$ rails -v