こざさのぶろぐ

アプリケーション開発における備忘録や思ったこと

VagrantでPHP7.1 + MySQL5.7の仮想環境を構築する

vagrantとは簡単に仮想マシンを立てることができるソフトウェアです。
こちらの記事は下の記事の続きとなります。

sasdfe.hatenablog.com

動作環境

Mac OS 10.13.1
Vagrant 2.0.1
VirtualBox 5.2.2
仮想環境のOSはCentOS 7.1

前提

1.プロビジョニングを設定

Vagrantにはプロビジョニングと呼ばれる機能があります。
この機能を用いることで、コマンドを多く入力することなく仮想環境の構築ができます。
プロビジョニングとは、サーバがサービスを提供できるようにするまでの一連の作業のことを言います。
もっと詳しく知りたい場合は下記リンクを参照してください。

Vagrant入門 – プロビジョニング (Provisioning) | WEB ARCH LABO

Vagrantfileを開いて設定を追加します。

$ vi Vagrantfile

Vagrantfileに下記を追記

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

こちらの設定を追加することで、provision.shがプロビジョニング実行されます。
また、provision.shをVagrantfileとおなじフォルダ内に作成し、中身を記述します

$ vi provision.sh

provision.shの中身

#Apache
sudo yum -y install httpd
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

#firewalld
sudo systemctl start firewalld.service
sudo systemctl enable firewalld.service
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

#MariaDB
sudo yum -y remove mariadb*
sudo rm -rf /var/lib/mysql/

#wget
sudo yum -y install wget

#vim
sudo yum -y install vim

#MySQL
sudo wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/mysql-community.repo
sudo yum -y --enablerepo=mysql57-community install mysql-community-server
sudo systemctl start mysqld.service
sudo systemctl enable mysqld.service

#PHP
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo yum -y --enablerepo=remi-php71 install php php-mysql php-mbstring php-intl php-xml
sudo systemctl restart httpd.service

# chmod
sudo chmod -R 777 /var/www/html

2.プロビジョニングの実行

$ vagrant provision

たまに警告が発生しますが、たしかめてみて大丈夫そうなら飛ばしましょう。

3.インストールの確認

仮想環境にssh接続を行い、インストールが正常に行われたか確認します。

$ vagrant ssh

VagrantにてApachePHPMySQLのバージョン確認を行います

[vagrant@localhost ~]$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Oct 19 2017 20:39:16
[vagrant@localhost ~]$ php -v
PHP 7.1.12 (cli) (built: Dec  1 2017 13:53:12) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
[vagrant@localhost ~]$ mysqld --version
mysqld  Ver 5.7.20 for Linux on x86_64 (MySQL Community Server (GPL))

このように表示されていればOKです。

4.Webサーバの確認

PHPファイルをサーバに作成して、Webサーバが正常に動作しているか確認します

[vagrant@localhost ~]$ echo "<?php phpinfo(); ?>" >> /var/www/html/index.php

http://192.168.33.10/index.phpにブラウザでアクセスして下記のような画面が表示されていれば、
Webサーバは正常に動作しています。

f:id:sasdfe:20171212005628p:plain

もしアクセスして表示されない場合、vagrantのリロードを実施後再度確かめてみてください

$ vagrant reload

参考になった記事

下記ブログは大変参考になりました。
記載内容はほぼ類似していますが、今回PHP7.1の環境を構築したかったのでこちらの記事を作成しました。 fnya.cocolog-nifty.com