てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

今まで 面倒くさかったので MAMP で 済ませていましたが
気分転換に Vagrant を 使って CentOS Apache MariaDB PHP の 環境を 作ってみました


仮想環境作成


Vagrant コマンドが使えるようになったので 実際に 環境を 作っていきます


ディレクトリ構造


参考までに 僕の ディレクトリ構造 は

Repository
 - tekuaru
  - html
  - script
  - vagrant

みたいにしています

tekuaru を Git 管理しているので そのディレクトリに .git とか .gitignore とか README.md とかが置かれていますが とりあえず そんな感じです

これで このリポジトリを 共有すれば 他の誰かとも 同じ環境で 作業することが出来ますね

ここが 最大の 利点ですよね!!

例えば 開発する環境がわかれば 全く同じ環境を 作り出すことができて git で 共有まで出来てしまうのですよ

しかも 共有された方は vagrant up するだけで 同じ環境が 出来てしまいます


CentOS 7


今回は 特に 何も決めていないので CentOS 7 を 選びました

Vagrant box centos/7
https://app.vagrantup.com/centos/boxes/7

vagrant ディレクトリに 移動したあと 上記 URL の Newタブ の 内容通り 実行しました

これで CentOS 7 の 仮想環境 が 作れます!!


LAMP ( CentOS Apache MariaDB PHP ) へ


CentOS 7 の 仮想環境 が 作れたところで 一回 仮想環境を 破棄して 一気に LAMP の 環境が立ち上がる 設定紹介 です

PHP は 7.1 で DB は MariaDB です

今回は お試しの 環境構築なので 参考にしてみてください
より良い設定がありましたら 教えてください!!

$ vagrant destroy

このコマンドで 仮想環境を 破棄できます


vagrant ディレクトリ に Vagrantfile という ファイルが出来ているかと思います

これが 設定ファイル です

僕は この設定を 以下のようにしました

VAGRANT_NAME          = "sample"
VAGRANT_NETWORK       = "192.168.33.10"

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

  config.vm.hostname = VAGRANT_NAME

  config.vm.network "private_network", ip: VAGRANT_NETWORK

  config.vm.synced_folder "../html/", "/var/www/html/", create: true, owner: 'vagrant', group: 'vagrant', mount_options: ['dmode=777,fmode=777']
  config.vm.synced_folder "../script/", "/var/www/script/", create: true, owner: 'vagrant', group: 'vagrant', mount_options: ['dmode=777,fmode=777']

  config.vm.provider "virtualbox" do |vb|
    vb.name = VAGRANT_NAME
  end

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

end

仮想環境 の 名前 と ネットワーク を 変えやすいように 変数に入れて 使い回ししやすいようにしました

そして html と script を シンク するようにしたので このディレクトリに ファイルを入れると 仮想環境 にも ファイルがあります


さらに vagrant ディレクトリ に setup.sh を 作成して

echo '# firewalld disable --------------------------------------------------------------------------------'
systemctl stop firewalld
systemctl disable firewalld

echo '# SELinux disable ----------------------------------------------------------------------------------'
setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config

echo '# remi ---------------------------------------------------------------------------------------------'
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

echo '# yum ----------------------------------------------------------------------------------------------'
yum -y update

echo '# PHP7.1 -------------------------------------------------------------------------------------------'
yum -y install --enablerepo=remi,remi-php71 --skip-broken php php-fpm php-cli php-common php-dba php-devel php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pdo php-pear php-pecl-apc php-pecl-apc-devel php-pecl-imagick php-pecl-memcache php-pecl-memcached php-pecl-oauth php-pecl-xdebug php-pgsql php-soap php-xml php-xmlrpc
sed -i.bak "/AllowOverride/s/None/All/g" /etc/httpd/conf/httpd.conf

echo '# apache -------------------------------------------------------------------------------------------'
yum -y install httpd
systemctl start httpd
systemctl enable httpd.service

echo '# MariaDB ------------------------------------------------------------------------------------------'
yum -y install mariadb mariadb-server
systemctl start mariadb.service
systemctl enable mariadb.service

echo '# SQLite3 ------------------------------------------------------------------------------------------'
yum -y install sqlite

echo '# zip unzip ----------------------------------------------------------------------------------------'
yum -y install zip unzip

echo '# Composer -----------------------------------------------------------------------------------------'
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

echo '# WP-CLI -------------------------------------------------------------------------------------------'
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

と しました

上から順にザックリ説明しますと

ファイヤーウォール を 切って
アクセス制御機能 を 切って
remi パッケージをインストール
yum を アップデート
PHP7.1 を インストール
apache を インストール
MariaDB を インストール
WordPress用に ユーザと DB を 作成
SQLite3 を インストール
Composer を インストール
WP-CLI を インストール

ってな 感じです


仮想環境完成


これで 仮想環境 の 完成 です

cakePHP とか WordPress が 動くかと思います

Related Article

Gutenberg の カスタムブロック を 作ってみる

more »

ポストメタ が 肥大化して 管理ページが 遅くなっていた…

more »

データベース接続確立のエラー ページ の カスタマイズ

more »