はじめに
やりたいことをザックリまとめると、
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 をオン/オフする方法
に詳しく書いてあるというか、その通りにやったらできました。
必要なものをインストール
-
- バージョン:6.0.2(導入当時の最新)
- ページ内に「Windows hosts」というリンクから入手。
- 重いので、DL始まってからトイレ休憩くらいを挟むと良い。
-
- バージョン: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接続同様に使えます。
つないだら、まずはyumの更新をしておきます。
sudo yum update
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.33.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.33.10/test.phpにアクセスすると、PHPの設定情報が表示される。