静岡・浜松のWebマーケティング|株式会社シーエムエー

お問い合わせ

CMA BLOG

株式会社シーエムエー ホーム > CMA BLOG > ホームページ制作 > DockerでPHP環境を簡単に構築してみよう

ホームページ制作 システム関連 DockerでPHP環境を簡単に構築してみよう

  • このエントリーをはてなブックマークに追加

こんにちは。
今回はローカルでPHPが動作する環境を作る事ができるDockerを紹介したいと思います。
新規契約や、サーバに関する深い知識は必要がなく、Dockerを理解すれば簡単にサーバ構築ができるので、ぜひ最後までご覧ください。

Dockerとは?

  • 「データやプログラムを隔離できる」仕組み
  • OS(Linux)やPHP、SQLなどをそれぞれ一つのコンテナとして組み合わせて実行環境を作成する
  • 様々なサーバを構築する事も可能(webサーバ、メールサーバ…他多数)
  • 今回はwebサーバ、データベースサーバのみ使用

Dockerのメリットとデメリット

メリット

  • 独立しているため、一部だけ差し替えたり修正する事も安全に行える
  • 「イメージ化」が可能なので自分で1から作らなくても手軽に構築できる
  • コンテナにカーネルを含める必要がないので、かなり軽量
  • 全員に同じ開発環境を提供する事ができる

デメリット

  • Linux用ソフトウェアしか対応していない
  • 1つのマシンにたくさんのサーバを載せることができるが、親となるマシンが故障すると、全てのコンテナが影響を受ける

Dockerを使ってみよう

Dockerの使用条件

  • OSに求められること
    Windows10 64bit版であり、Build 16299以降のバージョンであること
  • ハードウェアに求められること
    CPUはSLAT機能をサポートした64ビットプロセッサ
    メモリ4GB以上
  • Mac版の使用条件
    2010年以降に発売されたモデルであること
    MacOS 10.13(Hign Sierra)以降のOSであること

Dockerのインストール

Docker Desktopをhttps://www.docker.com/からインストールし、起動します。

インストールできたら下記コマンドを実行してください。Dockerのバージョンが表示されたらインストール完了です。

docker —version

必要なファイル「docker-compose.yml」を作業ディレクトリの直下に設置し、コマンドを実行してDockerを起動させます。

作業ディレクトリ
├docker-compose.yml
├index.php(確認用ファイル)

代表的なコマンド

  • ps:コンテナの一覧表示
  • up:コンテナの生成と起動
  • scale:生成するコンテナ数の指定
  • logs:コンテナログの確認
  • run:コンテナの実行
  • start:コンテナの起動
  • Down:コンテナとネットワークを停止・削除
  • stop:コンテナの停止
  • restart:コンテナの再起動
  • rm:コンテナの削除

使用例:

docker-compose up -d

Docker Composeについて

  • 構築に関わるコマンド文の内容を1つのテキストファイルに書き込んで、一気に実行したり、停止・破棄したりできるプログラムです。
  • Docker ComposeはDocker Engineとは別のソフトウェアですがWindowsやMacで使うデスクトップの場合、既に入っています。
  • インストールされているか確認するには下記コマンドを実行してください。
docker-compose —version

定義ファイルの書式

ファイル名は「docker-compose.yml」です。※必ずこの名前にしてください。
ファイルは直下に設置してください。

version: '3'

services:
    php:
        image: php:7.2-apache
        volumes:
            - .:/var/www/html
        ports:
            - 8000:80
        container_name: php7.2-trial2
    mysql:
        platform: linux/x86_64 #Mac M1
        image: mysql:5.7
        volumes:
            - /var/lib/mysql
        environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_DATABASE=test
            - MYSQL_USER=test
            - MYSQL_PASSWORD=test
        container_name: mysql5.7-trial2

 

PHPを動かす環境を作ろう

  • PHP用のdocker-compose.ymlファイルを用意して下記コマンドを実行
    docker-compose up
  • 下記コマンドを実行してコンテナを削除できる
    docker-compose down
  • コマンド、Docker Desktopどちらでも操作が可能
  • 接続URL(http://localhost:8000/ 任意に変更可)にアクセスして確認用のindex.phpが表示されれば成功です。

まとめ

  • まずはDocker Desktopをインストール
  • docker-compose.ymlファイルを用意してdocker-compose up
  • 仕組みが分かれば簡単にWordPressもインストールできる

駆け足でDockerについて紹介しましたがいかがでしたでしょうか?
今では簡単に、ローカルにLinaxやデータベースを用意する事ができサイト制作や開発の作業パフォーマンスを上げる事が可能となっています。
今後PHP8系への移行も増えてくると思うのでローカルで環境を構築して検証する事は必須になってくるかと思います。
慣れてしまえばDockerなくしてコーディングできないくらい便利なのでぜひお試しください。

  • このエントリーをはてなブックマークに追加

人気の記事ランキング

  • posted on 2023/02/082023年度版 Google PageSpeed Insights(ページスピードインサイト)を使って読み込み速度を改善したら、何点になるのかチャレンジしてみた

  • posted on 2023/12/07迫る、浜松市の行政区再編(中央区、浜名区)。住所変更だけじゃない。Webサイトで必要な対応とは?

  • posted on 2022/04/21WordPressで画像をWebP(ウェッピー)に対応する方法

  • posted on 2022/10/21DockerでPHP環境を簡単に構築してみよう

  • posted on 2021/02/10インスタグラムが突然表示されなくなった!最新のInstagram Graph API(v9.0)を使って再表示する方法とは

おすすめタグ

ECサイト 動画 HTML レクリエーション 創業記念日 ASP SSL PageSpeed Insights スピードアップデート 動画広告 ECcube wordpress 構造化マークアップ カスタマイズ Transport Layer Security 保護されていない通信 HowTo Chrome TLS クリック率 ハウツー ノンデザイナー リッチリザルト Instagram広告 文字 デザイン フォント Core Web Vitals 自作PC 初心者 構造化データ Facebook広告 リモート iPhone CSS 動画制作 AMP 広告 HTML5広告 Google Chrome videoタグ GoogleMapsPlatform Zapier Facebook Audience Network Google my map ワイヤーフレーム Google for jobs Googleしごと検索 撮影 iPad 一眼レフカメラ 写真 自作パソコン ウェブサイト翻訳 Adobe XD PC組み立て XMLサイトマップ PHP タスクランナー gulp.js node.js WebP画像 楽天GOLD スマートフォン用新店舗トップページ Threads(スレッズ) Instagram Adobe Firefly 画像生成AI アセット生成 生成塗りつぶし Adobe MAX Japan 2023 UI UX Adobe Stock アンチックフォント Adobe Express Webマーケティング デジタルマーケティング 文字コード 符号化文字集合 生成拡張 Google Search Console レクタングルバナー 画質パラメーター shopify ショッピングサイト ショッピファイ Shopify使い方 WebP リモートワーク remotework プラグイン IE コーディング サイズパラメーター モダンブラウザ gridレイアウト object-fit aspect-ratio any-hover docker Photoshop クラウドドキュメント ディスプレイ広告 スマートオブジェクト gap Unicode(ユニコード)

Top