Edited at

PHPをやってみたいので、環境構築からはじめてみる

More than 3 years have passed since last update.


はじめに

だいぶオジサンになってしまったのですがPHPを勉強しようと思い、

まずは手始めに開発環境の構築からやってみたいと思います。

VirtualBoxVagrantをつかって構築してみたいと思います。

限りなく透明に近い素人なので、間違ってたらコメントください。


VirtualBoxとは


VirtualBox は、使用している PC 上に仮想的な PC を作成し、別の OS をインストール・実行できるフリーの PC 仮想化ソフトです。

例えば使用中のパソコンが Windows 7 だったとしましょう。PC 仮想化ソフトを使うと、その Windows 7 上で Windows 8 や LinuxOS を動作させることができます。



Vagrantとは


仮想マシン作成やその環境設定などを自動化するツール。

仮想環境の作成からセットアップ、そして破棄までを、簡単なコマンドを実行するだけで行える。



virtualboxをインストール


①.下記リンクからvirtualboxのインストーラーをダウンロードします。

https://www.virtualbox.org/wiki/Downloads

_Volumes_VirtualBox.png



②.ダウンロードが完了したら、ファイルを開き下記アイコンをダブルクリックします。

_Volumes_VirtualBox.png



③.あとは画面の指示にしたがって進み、インストールを完了させます。

Oracle_VM_VirtualBox_のインストール.png


Vagrantをインストール


①.下記リンクからVagrantページを表示し、Downloadボタンを押してダウンロード画面を表示します。

https://www.vagrantup.com/

Vagrant_by_HashiCorp.png



②.下記からVagrantのインストーラーをダウンロードします。

Download_-_Vagrant_by_HashiCorp.png



③.ダウンロードが完了したら、下記アイコンをクリックしてVagrantをインストールします。

_Volumes_Vagrant.png



④.あとは画面の指示にしたがって進み、インストールを完了させます。

Vagrant_のインストール.png



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_のインストール.png


④下記コマンドでvagrantを使ってcentosにログインする

vagrant ssh

ログインできると[vagrant@localhost ~]が表示される。

Vagrant_のインストール.png


⑤ログイン後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時に実行してくれます。


Vagruntfile

  config.vm.provision :shell, :path => "provision.sh"



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で開発環境を構築

  • Vagrantをインストール
  • VagrantでCentOSを立ち上げる
  • centosにログイン
  • Provisioning設定
  • vagrantコマンド
  • まとめ
  • 参考