Laravelをubuntu 20 LTSをVagrant開発環境で作る話

やっはろー

今回はLaravelの開発環境を Vagrantでubuntu 20で作った話です…

分かる人にしか分からない次元になってきましたねw

まずは、シンプルに出来上がりバージョンを…

$ php artisan --version
Laravel Framework 8.15.0
$ php -v
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
$ vagrant version
Installed Version: 2.2.14

激烈最新ですw

作り方は… try&errorでしょう。試行錯誤しました!
Vagrantfileを出しますとこんな感じ

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

Vagrant.configure("2") do |config|
    config.vm.box = "ubuntu/focal64"
    config.vm.network "forwarded_port", guest: 80, host: 8080
    # VBOXの共有ディレクトリ
    config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
    config.vm.provision "shell", inline: <<-SHELL
        cd /vagrant
        apt-get -qq update
        apt-get -y -qq upgrade
        apt-get -y -qq install npm apache2 php php-fpm unzip mcrypt php-fpm php-common php-mbstring php-xmlrpc php-gd php-xml php-mysql php-cli php-zip php-curl php-imagick php-phpdbg git curl
        php -v

        curl --silent https://getcomposer.org/composer-stable.phar -o /usr/local/bin/composer
        chmod +x /usr/local/bin/composer
        su - vagrant -c composer -V

        test ! -f .env; cp vagrant-config/.env .env

        su vagrant -c 'composer update'
        su vagrant -c 'php artisan key:generate'

        su vagrant -c 'npm install'

        chmod -R 777 ./storage
        chmod -R 777 ./vendor
        chmod -R 777 ./node_modules

        cp -f /vagrant/vagrant-config/apache2/000-default.conf /etc/apache2/sites-available/000-default.conf

        apache2ctl configtest
        service apache2 restart

    SHELL
end

見たとおり、シンプル系です。

難しかったところは… まず、20LTSでないと最新のphp 7.4ではなかったので、18LTSなら7.0位でlaravelが7.3以上必須!だめだめぷんぷんって怒られて大変でした。

試行錯誤の末ですが、

        su vagrant -c 'composer update'

が少しトリッキーですね。作成されるファイルがroot権限になっちゃったりしてめんどくさかったです

うん、こんな感じ

あとは、storageの権限を付与しないとLaravelアクセスで落ちますw

    chmod -R 777 ./storage

Exceptionページになっちゃうから泣きそうでしたw

npm関係はもう少し調整が必要ですかね。

    su vagrant -c 'npm install'

まだ、ERRが出ます… 初期状態なのにw

今回は、ご紹介までに、Laravel開発環境作ったどぉ〜の話でした

以上.