VM上のubuntu18.04でlaravel開発環境構築

概要

  • virtualbox上のubuntu18.04にlaravel開発環境を作る
  • hoomesteadというパッケージがあるらしいけどphp開発環境理解のためにも1から構築していこうと思います

準備

  • bento/ubuntu-18.04
  • virtualbox
  • vagrant

  • bento/ubuntu-18.04のvagrant boxでVM作成

  • Vagrantfileでprivate接続できるように修正
  • 1
    2
    /*以下の部分のコメントアウトを外す*/
    config.vm.network "private_network", ip: "192.168.33.10"

VM上のubuntu18.04

  • パッケージ更新
  • 1
    2
    $ suod apt update -y
    $ sudo apt upgrade -y

phpインストール

  • phpインストール
  • 1
    sudo apt install php7.0 -y

composerのインストール

  • 1
    curl -sS https://getcomposer.org/installer | php
  • curlしたディレクトリにcomposer.pharがあるのでパスが通っているディレクトリに移動させ、composerディレクトリに配置することで「composer」コマンドで動かせるようにする

  • 1
    sudo mv composer.phar /usr/local/bin/composer
  • 動くか確認

  • 1
    2
    $ composer -V
    $ Composer version 1.6.5 2018-05-04 11:44:59

laravelのインストール

  • composerでglobalにインストール
    • 「Changed current directory to /home/vagrant/.composer」 ← ここがcomposerのglobal require 時のディレクトリっぽい
  • 1
    composer global require "laravel/installer"
    • 怒られます
    • 1
      You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
  • 必要なモジュールをインストールする

  • 1
    sudo apt install curl php7.2-cli php7.2-zip php7.2-mbstring php7.2-xml
  • 再度 global require

  • インストールされたか見てみる

    • 1
      2
      $ ls /home/vagrant/.composer/vendor
      autoload.php bin composer guzzlehttp laravel psr symfony
    • インストールされてる。symfonyはどの段階で入ってるんでしょうか…(要調査)

laravelコマンドでプロジェクト作成

  • laravelがインストールされた場所にパスを通す
  • .bashrcを編集
  • 1
    2
    3
    4
    5
    $ vi ~/.bashrc

    /*ファイルの一番下に下記を追加(=の前後にスペースを空けるとエラーになる)*/
    /*rootユーザ以外の場合は$HOME/.config/composer/vendor/bin*/
    PATH=$PATH:$HOME/composer/vendor/bin
  • 変更を反映

  • 1
    $ source .bashrc
  • プロジェクト作成

    • 1
      $ laravel new test

laravelプロジェクトを起動してアクセス

失敗した例

  • 作成したプロジェクトディレクトリで描きコマンド実行
  • 1
    $ php artisan serve
    • ゲストOS(ubuntu)内で 127.0.0.1:8000 でプロジェクトが立ち上がる
    • ホスト側で プライベートアドレス:8000 でアクセスできるかと思ったらできない…

nginxで試してみる

  • nginxを起動するとプライベートアドレスでアクセスできる
  • artisan serve する前に何かが足りてない可能性

laravelをプライベートアドレスでアクセスできるようにする方法

次にやる

参考