Vagrant / VirtualBox を使って5分でPHP7が使えるWEBサーバを立ち上げる

とにかく急ぎで検証用環境が欲しい方に。
今回作業するマシンはMac。インストールする仮想マシンのOSは ubuntu とします。

● Vagrantのインストール

https://www.vagrantup.com/downloads.html 

● 仮想マシンを実行する VirtualBoxのインストール

http://www.oracle.com/technetwork/jp/server-storage/virtualbox/downloads/index.html

● Vagrantのboxを検索する

ここにインストールしたいOSの種類を入力して検索します。
https://app.vagrantup.com/boxes/search

● 1. Vagrant を使って仮想マシンをダウンロードし起動する

今回はこのボックスを使用します

https://atlas.hashicorp.com/michaelward82/boxes/trusty64-php7

まず仮想マシンを格納したいフォルダ( Ubuntu_PHP7 とします )を作成しそこに移動します。
ターミナルから

mkdir Ubuntu_PHP7
cd Ubuntu_PHP7

次に vagrant コマンドを使ってインストールと起動を行います

vagrant init michaelward82/trusty64-php7;
vagrant up

# ● Vagrantfile の編集

インストールが完了すると Vagrantfile というファイルが作成されているのでそれを好きなエディタアプリで起動し編集します。
下記の行の先頭のコメントを取って実行できるようにします

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

再びターミナルから次のコマンドを実行して ssh の接続情報を表示します

vagrant ssh-config

表示例

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2200
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/hogehoge/.vagrant.d/boxes/michaelward82-VAGRANTSLASH-trusty64-php7/1.1.13/virtualbox/vagrant_private_key
  IdentitiesOnly yes
  LogLevel FATAL

この情報から ssh での接続コマンドが分かるので 実行して ssh 接続します。

ssh vagrant@127.0.0.1 -p 2200 -i /Users/hogehoge/.vagrant.d/boxes/michaelward82-VAGRANTSLASH-trusty64-php7/1.1.13/virtualbox/vagrant_private_key 

【ここから先は vagrant 内の仮想マシンでの作業となります】

・ PHP の足りないモジュールをインストールする。

su - (パスワードは vagrant)
apt-get update
apt-get install php7.0-mbstring

・Apache の設定内の実行ユーザを書き換える

 vi /etc/apache2/apache2.conf

ユーザーとグループを下記のように書き換えておきます

User  vagrant
Group vagrant

・apache をリスタートする

/etc/init.d/apache2 restart

・curl でアクセスして確認する

curl localhost

● ホストマシン mac からも接続を確認する

ウェブブラウザに以下のように入力してアクセスする

http://192.168.33.10/

以上です。

● MacからSFTPで仮想マシンに接続する

さきほど表示したSSH設定にでてきた鍵を使用します。
/Users/hogehoge/.vagrant.d/boxes/michaelward82-VAGRANTSLASH-trusty64-php7/1.1.13/virtualbox/vagrant_private_key
これをFTPソフトの鍵選択画面から選択してください。 (接続プロトコルは SFTP にします)
Mac だとTransmit がお勧めです。



関連エントリー

No.1108
07/02 13:49

edit

Apache
PHP