はじめに
だいぶオジサンになってしまったのですがPHPを勉強しようと思い、
まずは手始めに開発環境の構築からやってみたいと思います。
VirtualBoxとVagrantをつかって構築してみたいと思います。
限りなく透明に近い素人なので、間違ってたらコメントください。
VirtualBoxとは
VirtualBox は、使用している PC 上に仮想的な PC を作成し、別の OS をインストール・実行できるフリーの PC 仮想化ソフトです。
例えば使用中のパソコンが Windows 7 だったとしましょう。PC 仮想化ソフトを使うと、その Windows 7 上で Windows 8 や LinuxOS を動作させることができます。
Vagrantとは
仮想マシン作成やその環境設定などを自動化するツール。
仮想環境の作成からセットアップ、そして破棄までを、簡単なコマンドを実行するだけで行える。
virtualboxをインストール
①.下記リンクからvirtualboxのインストーラーをダウンロードします。
②.ダウンロードが完了したら、ファイルを開き下記アイコンをダブルクリックします。
③.あとは画面の指示にしたがって進み、インストールを完了させます。
Vagrantをインストール
①.下記リンクからVagrantページを表示し、Downloadボタンを押してダウンロード画面を表示します。
②.下記からVagrantのインストーラーをダウンロードします。
③.ダウンロードが完了したら、下記アイコンをクリックしてVagrantをインストールします。
④.あとは画面の指示にしたがって進み、インストールを完了させます。
VagrantでCentOSを立ち上げる
ディレクトリ構成は下記のような形
.
└── vagrantDir
└── centosDir
centosにログイン
①.centosDirに移動後、Vagrantfileを作成する。
Vagrantでは、「Vagrantfile」というファイルに作成する仮想マシンの設定情報を記述する。
下記コマンドでこのファイルのひな形を生成することができる。
vagrant init bento/centos-6.7
Vagrantfileが作成される。
.
└── MyVagrant
└── mycentos
└── Vagrantfile
補足
普通は下記の手順なのかも
centosをvagrantに追加
vagrant box add CentOS7_x64 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
追加されたboxは下記で確認できる
vagrant box list
※Vagrantでいう「box」とは仮想マシンのテンプレート。
ちなみに、追加したboxはホームフォルダ内の.vagrant.d/boxex/
に入っています。
仮想マシンの作成する
vagrant init CentOS7_x64
②作成されたVagrantfileを編集する。
viエディタを立ち上げてVagrantfileを編集します。
vi Vagrantfile
下記コメント部分のコメントアウトを外します。
# config.vm.network "private_network", ip: "192.168.33.10"
③下記コマンドを実行するとcentosが立ち上がります。
vagrant up
④下記コマンドでvagrantを使ってcentosにログインする
vagrant ssh
ログインできると[vagrant@localhost ~]が表示される。
⑤ログイン後PHPとApacheをインストール
PHPとApacheをインストールします。
sudo yum install php
sudo yum install httpd
⑥index.htmlファイルを作成
centosにログインすると下記のようなディレクトリ構成になる。
私はVagrantfile以下のディレクトリ構成がそのまま、仮想環境のディレクトリ構成なのかと思っていた。。。
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── sbin
├── selinux
├── srv
├── sys
├── tmp
├── usr
├── vagrant
└── var
Apacheは/var/www/html
ディレクトリを見るため、htmlフォルダ配下にindex.htmlを作成する。
sudo vi /var/www/html/index.html
⑦下記手順でApatchを起動する。
$ sudo service httpd start//Apacheを起動する
$ sudo chkconfig httpd on //vagrant起動時にhttpdをスタートさせるようにしておく
あとこれもやったほうがいいみたい。
ファイアーウォールを切るみたいですが、ローカル環境なので問題ないみたい。
関係あるかわからないが、これをやらないとブラウザ更新する毎に接続が切れた。
$ sudo service iptables stop//iptablesを停止させる
$ sudo chkconfig iptables off//次回起動時も停止させる
centos7の場合下記
VagrantでCentOS7環境構築してWebページみたらエラーになったとき
⑧ページを表示する
②でコメントアウトを外した192.168.33.10
にブラウザでアクセスして、
index.htmlが表示されれば成功!
⑨シンボリックリンクの作成
Vagrantfileと同階層のファイルは、自動的に仮想マシンの/vagrantフォルダ配下に同期されます。
つまり、Vagrantfileと同階層に、index.htmlを作ったら、仮想マシンの/vagrantにも自動的に作成されます。
同期されるディレクトリは/vagrant
ですが、仮想マシンのApacheが参照するディレクトリは/var/www/html
です。
そこで、/var/www/html
にシンボリックリンクの作成して、同期先の/vagrant
配下がrootになるようにします。
//仮想マシーンのhtmlファイルを削除
sudo rm -r /var/www/html
//シンボリックリンクを作成
sudo ln -s /vagrant /var/www/html
リンク作成後は仮想マシンを再起動したほうがいいみたいです。
これで、sshでログインしなくてもファイルの編集などができるようになり便利です。
Provisioning設定
Provisioningとはvagrunt up
を実行した後に自動で実行される処理のことです。
Vagruntfileに下記を一行追加すると、外部ファイル(provision.sh)に記載したコマンドを、vagrunt up
時に実行してくれます。
config.vm.provision :shell, :path => "provision.sh"
sudo yum install httpd
sudo service httpd start
sudo chkconfig httpd on
sudo service iptables stop
sudo chkconfig iptables off
これで、vagrunt up
コマンドだけで、Apacheインストール、起動、ファイアーウォールの停止などを一気にやってくれます。
Provisioningだけ実行する場合は、下記になります。
vagrant provision
vagrantコマンド
仮想マシンにログインする
vagrant ssh
仮想マシンからログアウトする
exit
仮想マシンを立ち上げる
vagrant up
仮想マシンを停止する
vagrant halt
仮想マシンをスリープする
vagrant suspend
仮想マシーンを復帰する
vagrant resume
仮想マシンを削除する
vagrant destroy
仮想マシンを削除しても、Vagrantfileは残るので、vagrant up
で同じ設定で立ち上げることができる。
仮想マシンを再起動
vagrant reload
boxを追加
vagrant box add {名前} {centOSの物理パス}
boxを削除
vagrant box remove {名前}
追加されたboxを確認
vagrant box list
まとめ
とりあえず、ブラウザで表示することはできましたが、
色々不便なのでそのへんも調べていこうと思います。
参考
Vagrantbox.es(各OSごとのboxファイルダウンロードURL一覧)
VirtualBox のインストールと基本的な使用方法
仮想環境構築ツール「Vagrant」で開発環境を仮想マシン上に自動作成する
VirtualBoxとVagrantで開発環境を構築