LoginSignup
22
26

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-02-18

はじめに

だいぶオジサンになってしまったのですがPHPを勉強しようと思い、
まずは手始めに開発環境の構築からやってみたいと思います。

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

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

VirtualBoxとは

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

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

Vagrantとは

仮想マシン作成やその環境設定などを自動化するツール。
仮想環境の作成からセットアップ、そして破棄までを、簡単なコマンドを実行するだけで行える。

virtualboxをインストール

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

_Volumes_VirtualBox.png

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

_Volumes_VirtualBox.png

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

Oracle_VM_VirtualBox_のインストール.png

Vagrantをインストール

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

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

22
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
26