VagrantとVirtulBoxを使用してLAMP環境を構築する方法メモ


VagrantとVirtulBoxを使用してLAMP環境の構築を目指す。

MACを使用。

用意するソフト

すべてフリーソフト

・VirtulBox
・Vagrant

仮想マシンの準備

LAMPのLの部分。
まず、CentOS7のboxを追加する。

console
$ vagrant box add centos/7

virtualboxを使用しているので「3」を選択

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3

CentOS7用のboxが入っているかどうかを確認する。

console
$ vagrant box list
centos/7 (virtualbox, 1905.1)

*特定のboxを削除する場合は次のコマンドを使用。

console
$ vagrant box remove centos/7

仮想マシン用のフォルダを作成して、作成したフォルダに移動しておく。

console
$ mkdir CentOS/ 
$ cd CentOS/

追加したcentos/7というboxを選択する。

console
$ vagrant init centos/7
フォルダにVagrantfileができていればOK。

Vagrantfileにある下記をコメントアウトしておく。

Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"

仮想マシンを起動

仮想マシンを起動する

console
$ vagrant up

仮想マシンの状態を確認する。runningになっていれば稼働している。

console
$ vagrant status

Current machine states:

default                   running (virtualbox)

仮想マシンへ接続

console
$ vagrant ssh

コマンドラインが下記のようになっていればOK.
[vagrant@localhost ~]$

これでLinuxが準備できた。

仮想マシンを停止したい場合

haltコマンドで仮想マシンを停止できる。

console
$ vagrant halt

仮想マシンを削除したい場合

destroyコマンドで仮想マシンを削除できる。

console
$ vagrant destroy

rootユーザーへの切り替え

console
$ sudo su

vagrantユーザーに戻す場合

console
$ su vagrant

Apacheをインストール

LAMP環境のAの部分。

vagrant
$ sudo yum -y update
$ sudo yum -y install httpd
バージョンの確認
$ httpd -v
Server version: Apache/2.4.6 (CentOS)
インストール確認
$ rpm -qa | grep httpd

この時点でIPアドレスに接続するとApacheのテスト画面が表示されるはず。

http://192.168.33.10/
「Testing 123..」という画面が表示される。

表示されない場合は、firewalldコマンドが原因となっている場合がある。下記コマンドでfirewalldをストップさせてから、再接続してみる。

vagrant
$ sudo systemctl stop firewalld

MySQLをインストール

LAMP環境のMの部分。

vagrant
$ sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
$ sudo yum install -y mysql-community-server
$ sudo yum install -y mysql-devel
$ mysqld --version

起動確認をしておく。

vagrant
起動
$ sudo systemctl start httpd.service
$ sudo systemctl start mysqld.service
自動起動
$ sudo systemctl enable httpd.service
$ sudo systemctl enable mysqld.service
状態確認
$ sudo systemctl status httpd.service
$ sudo systemctl status mysqld.service
起動確認
$ ps aux | grep httpd
$ ps aux | grep mysqld

PHPをインストール

LAMP環境のPの部分。

vagrant
$ 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
$ php --version

Webサイトにアクセス

html配下にindex.htmlを作成する。

vagrant
$ cd /var/www/html
$ sudo vi index.html
index.html
<html>
<head></head>
<body>
        <h1>Hello World</h1>
</body>
</html>

この時点でIPアドレスに接続すると「Hello World」と表示されるはず。

http://192.168.33.10/

PHPをApacheに対応させる。

vagrant
$ sudo vi /etc/httpd/conf/httpd.conf

httpd.confに下記を追加する。

  AddType application/x-httpd-php .php          //追加
  AddType application/x-httpd-php-source .phps  //追加

下記のように追加する。

httpd.conf
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
  AddType application/x-compress .Z
  AddType application/x-gzip .gz .tgz
  AddType application/x-httpd-php .php          //追加
  AddType application/x-httpd-php-source .phps  //追加

phpファイルを作成する。

vagrant
$ cd /var/www/html
$ sudo vi test.php
test.php
<html>
<head></head>
<body>
<?php
        echo('Hello World');
?>
</body>
</html>

下記のIPアドレスに接続して「Hello World」と表示されればOK.

http://192.168.33.10/test.php/