PHP7とLaravel 5でFacebookアカウントでログインできるTODOアプリをつくる 4日目(環境再構築編)

これからの作業のために

前回の記事から多少時間が空いてしまいました。

ここまでの作業で環境構築とLaravel 5のインストール、Facebookログインのためのライブラリ読み込みまで進めてきましたが、

今後の開発にあたって、やはりアプリケーションのコードもGitで管理しておいたほうが都合がいいので少し構成を変更しようと思います。

どう変更するか

変更のステップひとつひとつを説明してもあまり面白くないので、環境をどのように再構築したいかをまとめます。

  • vagrant upするだけで開発が始められるようにしたい
  • ここまでの作業で何回かに分けてインストールしていたミドルウェアは一括でインストール・設定してしまいたい
  • Laravel 5のアプリケーションもリポジトリに含めたい
    • composer installVagrantの起動時にプロビジョニングで済ませたい
  • VagrantのSynced Folderを使って、ホスト上のアプリケーションをVM内で実行したい
    • 幾つかのディレクトリーはApacheの実行ユーザーから書き込みできる必要があるので、権限を適切に設定する

上記の変更をすべて適用したVagrantfile

以下のようなVagrantfileになりました。このファイルとアプリケーションのコードを合わせてGitHubにもpushしておきました。

github.com

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

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.synced_folder "./todo/bootstrap/cache", "/vagrant/todo/bootstrap/cache", owner: "vagrant", group: "www-data", mount_options: ["dmode=777,fmode=666"]
  config.vm.synced_folder "./todo/storage", "/vagrant/todo/storage", owner: "vagrant", group: "www-data", mount_options: ["dmode=777,fmode=666"]

  config.vm.provision "shell", privileged: false, inline: <<-SHELL
    sudo sed -i s/archive.ubuntu.com/ftp.jaist.ac.jp/ /etc/apt/sources.list
    LC_ALL=en_US.UTF-8 sudo add-apt-repository -y ppa:ondrej/php
    sudo apt-get update
    sudo apt-get -y install apache2 php7.0 php7.0-sqlite3 php7.0-curl git curl language-pack-ja
    sudo chown vagrant.vagrant /var/www/html
    sudo a2enmod rewrite
    sudo cp /vagrant/default.conf /etc/apache2/sites-enabled/000-default.conf
    sudo service apache2 restart
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    composer global require "laravel/installer"
    echo 'export PATH=~/.composer/vendor/bin:$PATH' >> .bashrc
    cd /vagrant/todo; composer install
  SHELL
end

このVagrantfileで構築した環境を前提に、次回は引き続きTODOアプリの開発に入っていきたいと思います。