開発環境構築メモ|PHP、Apache、MySQL、その他をCentOSに

Vagrant の機能に、環境設定のためのスクリプトを実行する機能がある。
それを、「プロビジョニング」と呼ぶ。

こちらの記事が参考になる

http://fnya.cocolog-nifty.com/blog/2015/12/vagrant-centos7.html

手順

①Vagrantfileに設定を記述する
②スクリプトファイルを作成する
③実行する

①Vagrantfileに設定を記述する

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

②スクリプトファイルを作成する

Vagrantfileと同じ階層に、「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/mysql-community-release-el7-5.noarch.rpm
sudo rpm -Uvh mysql-community-release-el7-5.noarch.rpm
sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/mysql-community.repo
sudo yum -y --enablerepo=mysql56-community install mysql-community-server 
sudo systemctl start mysqld.service
sudo systemctl enable mysqld.service

#PHP
sudo yum -y install php php-mysql php-mbstring
sudo systemctl restart httpd.service

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

 

③実行する

②のファイルをプロビジョニングで実行するコマンド。

$ vagrant provision

 

いろいろ赤いエラーが出たが、
目的のPHP、Apache、MySQLは無事インストールされていた。

[vagrant@localhost ~]$ php -v
PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
[vagrant@localhost ~]$ httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jul 18 2016 15:24:00

追記

WEBサーバーもPHPもインストールした。
さて、PHPファイルでも確認してみようと、
/var/www/html/
の下にindex.phpファイルを作成して、
「192.168.33.10」
をブラウザに叩きこむ。

しかし、
ERR_CONNECTION_REFUSED
で接続できない…

何故か。

これは、iptablesが設定されていて、
外部からの通信を遮断するファイアウォール設定がされているため。
②の中で登場する、「firewalld」も、iptablesの一種。(CentOS7からなので6以前は無視してOK)

対処としては、仮想マシンにログインした状態で、下記3コマンドを実行。

$ sudo chkconfig httpd on
$ sudo service iptables stop
$ sudo chkconfig iptables off

これでファイアウォールの設定を変更し、外部アクセスを許可する。