【未完成】 PHP7.3 + MySQL5.7 + Apache2.4環境の構築をシェルスクリプトで書こう

[参考] http://yamacent.hatenablog.com/entry/2015/05/31/235900

1. Apacheを入れる
2. MySQLを入れる
3. ComposerとPHPを入れる
4. ApacheとMySQLをサービスとして立ち上げる



ディレクトリ構成

$ tree
.
├── Vagrantfile
└── provision
    ├── files
    │   ├── httpd.conf
    │   └── php_app.conf
    └── scripts
        ├── provision.sh
        └── provision_root.sh



Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "centos/7"

  config.vm.network "forwarded_port", guest: 80, host: 8080

  config.vm.provision "file", source: "provision/files/httpd.conf",
    destination: "httpd.conf"
  config.vm.provision "file", source: "provision/files/php_app.conf",
    destination: "php_app.conf"
  config.vm.provision "shell", path: 'provision/scripts/provision_root.sh'
  config.vm.provision "shell", path: 'provision/scripts/provision.sh', privileged: false
end



シェルスクリプト

provision/scripts/provision_root.sh

#!/bin/env bash

sudo yum update -y
sudo yum install -y vim
sudo yum install -y openssl-devel # for Ruby

# Apache
sudo yum install -y httpd



for i in /etc/httpd/conf.d/*; do sudo mv $i $i.bk; done
mv httpd.conf /etc/httpd/conf/httpd.conf
sudo mv php_app.conf /etc/httpd/conf.d/



# MySQL
sudo yum localinstall -y http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
sudo yum install -y mariadb-server


# Service
sudo systemctl enable httpd
sudo systemctl enable mariadb

## provision/scripts/provision.sh

# PHP
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-mysqlnd php-pdo php-gd
sudo systemctl restart httpd