@ Tips

Vagrantで構築する仮想環境(Ubuntu 12.04 LTS)

Vagrant(ベイグラント) を利用した LAMP(Ubuntu 12.04 LTS + Apache2.2 + MySQL 5.5 + PHP 5.4)環境構築手順です。

以下の環境を前提としています。(2017/04/02)

Windows10x86

VirtualBox 5.1.18

Vagrant 1.9.3

Git 2.12.2

Vagrantの役割

Vagrant(ベイグラント)は VirtualBox をはじめとする仮想化ソフトウェアの支援ツールです。
Vagrant を使うと、仮想マシンの構成を記述した設定ファイル(Vagrantfile)を元に、仮想環境の構築から設定までを自動的に行う(Provisioning)ことができます。

共有ディレクトリの作成

Vagrant で作業をするためのディレクトリーを作成します。どこに作成してもいいようですが、ここでは C ドライブ直下に vagrant というディレクトリを新規作成することにします。

C:\
 └ vagrant

ターミナルの起動

vagrant を右クリックしてコンテキストメニューに表示される Git Bash Here を選択して、ターミナルを起動します。

ターミナルが起動すると、「ユーザー名@コンピューター名 ~$」が表示され、カーソルが点滅し Vagrant コマンド入力ができます。「~(ティルド)」サインは現在ターミナル上で開いているユーザーのホームディレクトリ(/home/user)を表示しています。

コマンド 機能 備考
vagrant box add <name> <url> BOXの追加 論理名とBOXファイルの場所を指定してBOXファイルを追加する。
vagrant box remove <name> BOXの削除
vagrant box list BOXの一覧
vagrant init [name [url]] Vagrantの初期化 仮想マシンを作成するための準備をします。(Vagrantfile のひな型を作成)
vagrant ssh sshログイン
vagrant up 仮想マシンの起動 コマンドの初回起動時に、仮想マシンが構築されます。
vagrant halt 仮想マシンの停止
vagrant reload 仮想マシンの再起動
vagrant destroy 仮想マシンの削除
vagrant package パッケージを作成 仮想マシンをパッケージングします。(BOX形式で出力)
vagrant plugin install <name> プラグインの追加
vagrant plugin list プラグインの一覧

ubuntu/precise32のBOXを追加する

vagrant box add precise32 http://files.vagrantup.com/precise32.box

BOX とは Vagrant で使用できるインストールパッケージです。

vagrant box add では BOX を一度ローカルへ展開しキャッシュを作ります。

Vagrantは、このキャッシュされた BOX を使い仮想マシンを構築します。

Vagrantbox.es には数多くの BOX が公開されています。対象とする BOX の URL 取得して vagrant box add <name> <url> で BOX を追加します。

Vagrantの初期化

$ vagrant init [name [url]]

vagrant init で、Vagrantfile(仮想マシンの構成を記述するファイル)を作成し、vagrant box add <name> <url> でキャッシュされた BOX で仮想マシンを構築する準備をします。

C:\
 └ vagrant
  └ Vagrantfile

Vagrantfileの編集

Vagrant では、サーバー起動から初期設定やソフトウェアのインストールまでの一連の作業を自動化させるためのプロビジョニング(Provisioning)機能があります。

プロビジョニング の実行には Vagrantfile に Vagrant の設定と Linux を起動した際の初期化処理を記述した bootstrap.sh を指定ます。

C:\
 └ vagrant
  ├ Vagrantfile
  └ bootstrap.sh

Vagrantfile

# 1. APIのバージョン指定 // 1 or 2
VAGRANTFILE_API_VERSION = "2"

# 2. 仮想環境の設定
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

# 3.仮想環境のもとになるBoxの情報
config.vm.box = "ubuntu/precise32"

# 4. シェルスクリプトの設定
config.vm.provision :shell, path: "bootstrap.sh"

# 5. ポートのフォワード設定 // ホストマシン からは http://localhost:8080 でアクセス
config.vm.network :forwarded_port, guest: 80, host: 8080

# 6. 同期フォルダの設定
config.vm.synced_folder "/vagrant", "/srv/website"
end

bootstrap.sh

# 1. bash で実行する
#!/usr/bin/env bash

# 2. Apache で公開するディレクトリーの指定
rm -rf /var/www
ln -sf /vagrant /var/www

# 3. PHP 5.4 の配布元の指定
add-apt-repository -y ppa:ondrej/php5-oldstable

# 4. パッケージを最新バージョンにアップデート
apt-get update

# 5. Apache をインストール
apt-get install -y apache2

# 6. PHP と MySQL 接続モジュール Apache2 用モジュールをインストール
apt-get install -y php5 php5-mysql libapache2-mod-php5

仮想マシンを起動

$ vagrant up

vagrand up で仮想マシンを起動すると。設定ファイル(Vagrantfile)に基づき、ひな型にするBOXファイルのキャッシュを決定して仮想マシンを構築します。vagrant ディレクトリ直下には .vagrant が生成されて、必要なファイル群が格納されます。

C:\
 └ vagrant
  └ .vagrant
   └ machines
    └ default
     └ virtualbox
      ├ action_provision
      ├ action_set_name
      ├ creator_uid
      ├ id
      ├ index_uuid
      ├ private_key
      └ synced_folders

仮想マシンにログイン

$ vagrant ssh

ssh はセキュアシェルと呼ばれるソフトウェアの一つです。安全な通信手段を用いて、コンピュータに外部からログインし、操作するために使います。

ログイン後は Linux コマンドでゲスト OS(Ubuntu)を操作します。

Apacheのインストール

手動で Apache をインストールする場合は次のようになります。

# パッケージの更新
$ sudo apt-get update
# Apache のインストール
$ sudo apt-get -y install apache2
# Apache のバージョン確認
$ apache2 -v

Apache の起動・停止・再起動

# Apatch の起動
$ sudo service apache2 start
# Apatch の停止
$ sudo service apache2 stop
# Apatch の再起動
$ sudo service apache2 restart

PHP5のインストール

手動で PHP5 をインストールする場合は次のようになります。

# リポジトリを追加
$ sudo add-apt-repository -y ppa:ondrej/php5-oldstable
# パッケージの更新
$ sudo apt-get update
# PHP5 と MySQL 接続モジュール Apache2 用モジュールをインストール
$ sudo apt-get install -y php5 php5-mysql libapache2-mod-php5
# PHP のバージョン確認
$ php -v

MySQLのインストール

# パッケージの更新
$ sudo apt-get update
# MySQL のインストール
$ sudo apt-get install -y mysql-server

インストール中に、root ユーザのパスワードを設定するダイアログが表示されるので、適切なパスワードを設定してください。

Apache の再起動をします。

$ sudo service apache2 restart

MySQL の起動・停止・再起動

# MySQL の起動
$ sudo service mysql start
# MySQL の停止
$ sudo service mysql stop
# MySQL の再起動
$ sudo service mysql restart

MySQL のアンインストールは次のようになります。

$ sudo apt-get remove --purge mysql-server* mysql-common
$ sudo apt-get autoremove --purge
$ sudo rm -r /etc/mysql
$ sudo rm -r /var/lib/mysql

MySQLにログインする

ログインするユーザが root で、パスワードが password の場合は次のようになります。

$ mysql -u root -p
password:password

文字コードの確認

mysql> show variables like 'char%';

ログアウト

mysql> exit

MySQLの文字コード設定

vi エディターで my.cnf を編集します。

$ sudo vi /etc/mysql/my.cnf

my.cnf

# 以下を追加
[client]
default-character-set = utf8
[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8

文字コード設定後 MySQL を再起動します。

$ sudo service mysql restart

ubuntu desktopのインストール

デスクトップのインストールが可能です。インストール後、日本語環境にすることもできます。

$ sudo apt-get install ubuntu-desktop

インストール後 startx を実行して、デスクトップを起動します。

$ startx

– user : vagrant
– password : vagrant