Edited at

VagrantでPHPの開発環境を作ってみる


はじめに

やりたいことをザックリまとめると、

Windows環境にXAMPP入れてPHP5.3入れて開発してるけど、PHP7.1の開発環境も欲しいので、仮想環境に作る。

です。


環境

Windows10 64bit

git-bash

※注

git-bashは、sshで繋ぎたいので利用しています。

PuTTYとか入っているならそっちでも良いはず。


準備


参考資料

Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築

Win10にVirtualBox+Vagrantを用いた環境構築する為の下準備


BIOSの設定

PCの「仮想化支援機構(Virtualization Technology)」を有効にします。

設定方法はPCごとに異なるので、

[メーカー名] [PC機種名] 仮想化支援機構

[メーカー名] [PC機種名] Virtualization

で検索すると多分出てくるかと。


Windowsの設定

Hyper-Vを無効化します。

これは

Hyper-V をオン/オフする方法

に詳しく書いてあるというか、その通りにやったらできました。


必要なものをインストール



  • VirtualBox


    • バージョン:6.0.2(導入当時の最新)

    • ページ内に「Windows hosts」というリンクから入手。

    • 重いので、DL始まってからトイレ休憩くらいを挟むと良い。




  • Vagrant


    • バージョン:2.2.3(導入当時の最新)

    • 「DOWNLOAD」ボタンがある。



それぞれにインストーラを起動し、画面の指示に従えばインストールは完了する。

基本的には、設定をいちいち変えたりせずに、Google翻訳の助けを借りながら書かれている内容を読みつつ進めれば良いと思う。

ある程度の理解ができたら、入れ直せばエエんちゃうかな、くらいに考えている。


Vagrantを動かしてみる

入れてみたからには動かしたいので、とりあえずやってみる。


Boxの入手

vagrant boxリスト

Searchという項目があるので、入れたいOSを打ち込むと絞り込んでくれる。

ProviderがVirtualBoxの、希望のバージョンのURLをこの後使う。

Copyボタンがあるので便利。

コマンドはvagrant box add [名前(自由入力)] [URL]です。

例えば、CentOS7を使いたい場合は、Windows PowerShellを起動し

vagrant box add CentOS7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

あとは、ちょっと待てば完了。


Boxって何よ?

乱暴に言うと「OSのisoイメージ」みたいなモノ。

CentOS7のBoxを使えば、CentOS7の仮想サーバを作れる。

当然ながら、環境構築したBoxを自分で作ることもできる。


作る

ここからは、作業ディレクトリを作ってからになる。

ご自由な場所に。

git-bush等を起動して、作業ディレクトリにcdします。

あとはvagrant init [boxの名前]です。

vagrant init CentOS7

完了するとVagrantfileが作られるので、開いて編集します。

今回設定したのは以下。

Vagrant.configure("2") do |config|

# Box名
config.vm.box = "CentOS7"

# ここで指定したIPを叩いてブラウザに表示させたりする
config.vm.network "private_network", ip: "192.168.33.10"

# メモリ(数値は自分の環境と相談)
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end

# Windows側のファイルを、仮想サーバに認識させる
# 直下(".")のファイルを、仮想サーバ内では`/vagrant`として扱う感じ
config.vm.synced_folder ".", "/vagrant", mount_options:['dmode=777','fmode=777']
end


起動

vagrant upで立ち上がります。

ちょっと時間かかりますが。


サーバに接続

vagrant sshで、普通のSSH接続同様に使えます。


WEBサーバとして動かしてみる


1. Webサーバの用意

ターミナルで以下のコマンドを実行して、httpdをインストールし、起動(自動起動も設定しておく)。

加えて、FireWallを止めておきます。

sudo yum -y install httpd

sudo systemctl start httpd.service
sudo systemctl enable httpd.service
sudo systemctl stop firewalld
sudo systemctl disable firewalld

※FireWall止めるまでHTML見れんかった。


2. HTMLを用意

Hello World用ファイルをWindows側で作る。

Windows(クライアント)側の作業ディレクトリ内に、index.htmlを作成。

中身はHello World!だけで良い。


3. Windows側で作ったファイルを仮想サーバ側で見えるようにする

DocumentRootを空にして、シンボリックリンクを設置する形。

sudo rm -rf /var/www/html

sudo ln -fs /vagrant /var/www/html

これで、http://192.168.30.10/をブラウザで開くとHello World!が表示される。

ひとまず、ここまでで「Vagrantで仮想サーバを作る」的なことまでができた。


PHPの導入

CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール

sshで接続してから、以下のコマンドを実行。

sudo yum -y install epel-release

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum -y install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt

インストールが終わったら、httpdを再起動

sudo systemctl restart httpd.service


確認用PHPファイルを作る

test.htmlと同じ階層に、test.phpを作る。

中身は、

<?php

phpinfo();

だけ。

http://192.168.30.10/test.phpにアクセスすると、PHPの設定情報が表示される。