Docker Laravel PHP

WindowsにLaravel 5.4をインストールする

投稿日:

どうもPHP初心者、Laravel初心者のものです。
今回の案件ではPHPのフレームワークにLaravelを使うことにしましたのでインストール手順をまとめたいと思います。

環境

ホストOS:Windows 10
Docker:Docker for Windows
PHP: 5.6(稼働環境の関係で7.x系にできない・・・)
Laravel: 5.4
いつものようにGitHubにプッシュしてあります。
laravel-docker-for-windows

Docker

開発はすべてWindowsで行いますがartisanコマンド等はDocker上で行います。
なのでdocker run時にアプリケーションディレクトリをマウントして起動します。
プロダクション環境はオンプレでDockerは動かせないので、Dockerはあくまで開発環境として使用します。
Windowsにphpをインストールしても同様なことができると思いますので、ここはお好みで。

phpはオフィシャルのイメージをベースにしても良いのですがパッケージ等インストールするので今回はCentOSのイメージから作りました。

FROM centos:7
RUN yum -y update
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm \
    && yum -y install --enablerepo=remi-php56 php php-mysql php-gd php-mbstring php-xml php-mcrypt
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

docker build -t php56 .等を実行してエラーがでなければ大丈夫だと思います。

Docker Compose

Dockerfileだけで大丈夫なんですけど、起動オプションとかマウントとか毎回入力するの面倒なので環境情報などをdocker-compose.ymlに書いてdocker-composeで実行すると楽です。
あとDcoker Composeを使うとマウントするときに相対パスが使えるようになります。

version: "3"
services:
  php56:
    build: ./src/Docker/php56
    ports:
      - 8080:8080
    volumes:
      - src/app:/app
    command: tail -f /dev/null

docker-compose up -dでコンテナを立ち上げてdocker-compose ps等で起動していれば大丈夫です。
Docker for Windows使っている人はDocker for Windowsの設定でShared Drivesを適切に設定しておく必要があります。

Laravelのインストール

Laravelはインストーラーを使う方法とComposerを使う方法があるのですが、今回はComposerを使ってインストールしました。
上で作成したphp56コンテナにComposerがインストールしてあるのでphp56コンテナに入って作業します。
docker-compose exec php56 bashでphp56コンテナに入る。

### Laravelをインストールする
composer create-project --prefer-dist laravel/laravel . "5.4.*"

### artisanコマンドが実行できるか確認する
php artisan -V

### 内蔵httpサーバーを起動する
php artisan serve --host 0.0.0.0 --port 8080

ブラウザでhttp://localhost:8080/にアクセスしてLaravelのページが表示されればインストール完了です。

まとめ

Docker for WindowsをインストールするとDocker Composeも使えるようになります。
アプリケーションがRDBMSを使う場合もdocker-compose.ymlにサービスを追加すると使えるようになるので拡張性も高いと思います。

-Docker, Laravel, PHP

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Laravelでテーブルの主キーに文字列型を使う場合のモデルの定義

ポストタイトルの通りなんですけどLaravelでテーブルの主キーに文字列型を使う場合ですがModel#findで検索すると結果は帰ってくるのですが主キー項目の値を表示されると0と表示されてしまいました …

クローズドな環境で動いているシンプルなhtmlアプリケーションを一部Docker環境へ移行した話

経緯 クローズドな環境で動いている非常にシンプルなCMSを、一部Docker環境へ移行しました。 このアプリケーションは簡単に3つのサービスで構成されており、それぞれ以下の様な感じです。 ・CMS(h …

Windows10にChocolateyを使ってPHPをインストールする

Webの業界にはそれなりの年数いるのですが、PHPはお試しでCakePHPを少し触ったことぐらいしかなくプロダクション環境で構築したことはありませんでした。 それが、今回初めてPHPでアプリケーション …

CakePHPで独自のコントローラーを継承する方法

CakePHPで独自に作ったコントローラーを継承する方法を調べました。 自分はJavaをよく使っていたというのは変かもしれませんがコントローラーの継承というのはそれほど違和感はないのですがCakePH …

no image

Windows7でXAMPPを使う <インストール編>

Windows7を使う機会があったので、PHPを実行できるように環境を整えてみました。 環境 Windows7 Professional なんで、Windows8ではなくWindows7ということは聞 …

ad-sidebar




カテゴリー