今更だけど Vagrantで 開発環境 の ベースを 作ってみた ( 2 )
今まで 面倒くさかったので 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 が 動くかと思います