WindowsでVagrant + VirtualBox + LAMP環境構築(Cake PHP)を自動化
WindowsでVagrant + VirtualBox + LAMP環境構築(Cake PHP)その1 - かつおブログ
WindowsでVagrant + VirtualBox + LAMP環境構築(Cake PHP)その2 - かつおブログ
WindowsでVagrant + VirtualBox + LAMP環境構築(Cake PHP)その3 - かつおブログ
で書いた内容をVagrantfleでの仮想マシン起動時に出来るだけ構築できるようにしてみた。 MySQLは初回パスワードの取得などの都合上、仮想マシン起動後に設定が必要
vagrant
仮想マシン起動後にスクリプトを実行するようにします。 Vagrantfile内にも書けるのですが、長くなるので、シェルファイル化し、シェルファイルを実行するようにします。
Vagrant.configure("2") do |config| config.vm.box = "bento/centos7" ~~~ 中略 ~~~ config.vm.provision :shell, :path => "./provision.sh" end
下記provision.shをVagrantfileと同じディレクトリに配置し、 vagrant upを実行することで、一通りインストールまで完了します。 vagrant sshでMySQLの初回ログインや必要なテーブル作成が完了すれば環境構築は完了です。
provision.sh
#!/bin/sh echo ------------------------------- echo ロケール、タイムゾーン設定 echo ------------------------------- export LANG=ja_JP.utf-8 locale timedatectl set-timezone Asia/Tokyo date echo ------------------------------- echo remiレポジトリ取得 echo ------------------------------- yum install -y epel-release yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm echo ------------------------------- echo Apacheインストール echo ------------------------------- yum install -y httpd echo ------------------------------- echo Apache自動起動設定 echo ------------------------------- systemctl start httpd systemctl enable httpd echo ------------------------------- echo MySQLインストール echo ------------------------------- rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server systemctl start mysqld.service systemctl enable mysqld.service echo ------------------------------- echo MySQLDB作成、初期パスワード設定 echo ------------------------------- echo ------------------------------- echo PHPインストール echo ------------------------------- yum install -y --enablerepo=remi,remi-php72 php php72-php php-devel php-mbstring php-pdo php-gd php-xml php-intl php-mysqlnd echo ----- phpバージョン php -v echo ------------------------------- echo Composerインストール echo ------------------------------- cd /home/vagrant php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" echo ----- composer移動 mv composer.phar /usr/local/bin/composer echo ----- composerバージョン /usr/local/bin/composer --version echo ------------------------------- echo CakePHPプロジェクト作成 echo ------------------------------- php /usr/local/bin/composer create-project --prefer-dist cakephp/app cms chown -R vagrant cms