【基礎編】DockerでのLAMP環境構築からプロジェクト作成までの手順
みなさんこんにちは。Wakka Inc.のベトナム拠点テクニカルマネージャーの鍋山です。
近年はPHPのアプリケーション開発においても、コンテナによる開発環境の仮想化は一般的な開発手法になっています。その理由の一つは効率よく環境構築ができるからです。
例えば、複数名で開発をするときにOSやPHPのバージョンを揃えることは手間がかかります。Docker Imageを使うことで複数名の開発でも簡単に同じ開発環境を構築できることはチームでの開発でメリットになります。
開発責任者の方の中にはDockerを使って環境構築をしたいと考えている方も多いのではないでしょうか。そこで、今回はまずDockerやLAMPの基本概要を説明した上で、プロジェクト作成までの手順を解説していきます。
●開発リソースの不足にお悩みなら●
>>>Wakka.Inc独自の海外子会社設立サービスがおすすめ!
無料でサービス資料をダウンロードできますのでぜひご覧ください。
Dockerとは?
『Docker』とは、コンテナ技術を用いた仮想環境構築プラットフォームです。システム開発の中でもインフラやDevOpsで特に注目を集めています。
DockerはホストOS上のDocker Engineを利用してアプリケーションやミドルウェアを動かす仕組みです。仮想マシンと比較されることが多いですが、仮想マシンはハイパーバイザー上でゲストOSを動かし、ミドルウェアなどを起動します。Dockerはハイパーバイザーを利用しませんので、その点で大きな違いがあるといえるでしょう。
Dockerを利用するメリットは、具体的に下記の通りです。
- 軽量である
- 環境構築が容易
- 分担した開発がしやすい
それぞれのメリットについて詳しくチェックしていきましょう。
軽量なプラットフォーム
1つ目のメリットは、軽量であることです。Dockerはホストマシンのカーネルを利用します。そして、ユーザーやプロセスを隔離することで仮想化を実現しているのです。ゲストOSを動かさないため、とても軽量になります。起動や停止が高速で、開発効率をスムーズにしてくれるでしょう。
簡単に環境構築ができる
2つ目は、環境構築が簡単なことです。Dockerはターミナルを使用しなくてもホームページからダウンロード及びインストールすれば使うことができます。また、ほかのプログラムとの依存性が少ないため、インストールするだけでDockerの使用が可能です。
開発の分担が容易
3つ目のメリットは、分担が容易な点です。Dockerは誰でも同じ開発環境を作ることができます。例えば、MySQLのバージョンが自動で設定されるため、バージョンの違いによるエラーを回避することが可能です。また、作成した環境はほかのエンジニアに簡単に配布することができます。環境依存の問題を減らせるだけでなく、新しいメンバーが追加されたときのコスト削減にもつながるので非常に便利なプラットフォームです。
LAMPとは?
『LAMP』とは、Webアプリケーションを動作させるために必要なソフトウェアの総称です。具体的には、下記の頭文字を取り、LAMPと名付けられました。
- Linux
- Apache
- MySQL
- PHPなど
この4つの基本概要について簡単にご説明します。
Linux
Linuxは、サーバーで頻繁に使用されるオペレーティングシステムのひとつです。実際、RedHatやDebian、CentOSというような言葉を耳にすることも多いでしょう。これらはすべてLinuxに分類されます。
Webアプリケーションを構築するためには、まずサーバーが必要です。そのため、LAMPの「L」がLinuxになります。サーバーを用意することで、プログラムのインストールが可能です。Webサーバーやデータベースの構築、プログラミング言語のインストールには欠かせないものであり、Webアプリケーションの土台になります。
Apache
Apacheは、Webサーバーの一種です。Apacheをインストールして起動することで、httpもしくはhttpsのアクセスが可能になります。
近年では、Apacheも使用されていますが、Nginxも有名です。Webサーバーにはさまざまな種類があるため、自分に合ったものを選択することになるでしょう。
MySQL
MySQLは、リレーショナルデータベースのことです。データを入れるためのタンクといえばわかりやすいのではないでしょうか。テキストや数値、画像や動画などを保存することができます。
Webアプリケーションを運用する際は、ログイン情報やWebコンテンツ、画像などの情報をサーバーに保存しなければなりません。そのため、運用する際にはデータベースが必要です。
PHP
LAMPの「P」は、PHPやPerl、Pythonを指し示す言葉です。今回は、PHPを動かすための環境構築を目指すため、「P」はPHPとなります。
プログラミング言語をインストールすることで、Webアプリケーションの機能を実現することが可能です。例えば、入力されたログイン情報をデータベースに照合させるなどです。そもそもプログラミング言語がなければ、データベースとの連携はできず、機能性が限られるため、必ず使わなければならない要素のひとつです。
【おすすめ資料】海外開発拠点の設立を検討されていますか?
【保存版】成長企業が導入するWakkaのラボ型開発
>ラボ型開発を進めるポイントとWakka inc.の『独自の海外子会社設立サービス』を紹介した資料です。ぜひあわせてご覧ください。
Dockerを使用したLAMP環境の構築とプロジェクト作成までの手順
DockerとLAMPの概要を理解したところで、早速環境構築の手順について解説します。Dockerのインストールからプロジェクトの作成までの流れをステップにわけてご紹介しますので、ぜひ参考にしてください。
ステップ①「Dockerをインストールする」
まずは、下記の手順を参考にしてDockerをインストールしてください。ちなみに、インストールする環境は、MacOS Catalina 10.15.5です。
1.下記のようにHome Brewコマンドを使用してDockerをインストールします。
brew install docker
brew cask install docker
2.docker –versionと入力して下記の画像のようにバージョンが出力されれば、インストール完了です。
3.ちなみに下記のURLからダウンロード及びインストールすることも可能です。
https://www.docker.com
ステップ②「プロジェクトを作成する」
次に、プロジェクトファイルの作成と設定を行います。必要に応じてそれぞれの環境に合わせながら設定を進めてください。
1.まずは、プロジェクトファイルを作成します。
mkdir test-project
2.サーバー設定データ用のために、phpファイルを作成してください。
mkdir php
3.phpファイルの中にDockerfileを作成します。
touch php/Dockerfile
4.Dockerfileを編集し、下記を追加します。
FROM php:7.4-apache
RUN apt-get update && apt-get install -y libonig-dev && ¥
docker-php-ext-install pdo_mysql mysqli mbstring
ステップ②「」
4.PHPファイル用とMuSQLデータ用のファイルを作成してください。
mkdir mysql html
5.docker-compose.ymlを作成・編集し、下記を追加してください。環境に合わせて適切に変更を加えましょう。
version: ‘3’
services:
mysql:
image: mysql:5.7
volumes:
– ./mysql:/var/lib/mysql
ports:
– 3306:3306
environment:
– MYSQL_ROOT_PASSWORD=pass
– MYSQL_DATABASE=db
– MYSQL_USER=user
– MYSQL_PASSWORD=dbpass
php:
build: ./php
volumes:
– ./php.ini:/usr/local/etc/php/php.ini
– ./html:/var/www/html
ports:
– 8080:80
depends_on:
– mysql
ステップ③「LAMP環境を構築する」
次にLAPM環境を構築します。
1.下記のコマンドでコンテナを起動させます。
docker-compose up -d
2.下記を入力し、起動したコンテナを確認してください。
docker ps
ステップ④「HTMLフォルダーにファイルを追加して動作を確認する」
実際にHTMLファイルを追加して、Webサイトにアクセスしてみましょう。
1.HTMLフォルダーの中にHTMLファイルを作成します。
vi index.html
2.下記のようにお好みでHTMLファイルを編集してください。
LAMP environment with Docker
3. http://localhost:8080にアクセスすると、下記のように作成したHTMLファイルが出力されます。
Dockerを使用してLAMP環境を簡単に構築しよう!
今回は、Dockerを使ったLAMP環境の構築方法をご紹介しました。環境を構築することができれば、軽量な開発環境を手に入れることができます。また、今回はApacheを使用しましたが、Nginxなど異なるWebサーバーに関しても起動することができるのでおすすめです。
本メディアは、Web開発を手掛けるエンジニアの方々にわかりやすいコンテンツを提供しています。作業に躓いたときや情報を収集したいときにぜひご覧ください。
また、株式会社 Wakka Inc.では、開発に関するコンサルティングに加えて、オフショアラボ型開発や海外子会社設立で開発リソース強化の支援を行っています。
興味のある方は下記のリンクからお気軽にお問い合わせください。
【おすすめ資料】海外開発拠点の設立を検討されていますか?
【保存版】成長企業が導入するWakkaのラボ型開発
>ラボ型開発を進めるポイントとWakka inc.の『独自の海外子会社設立サービス』を紹介した資料です。ぜひあわせてご覧ください。
日系オンラインリサーチ会社のCTOとしてベトナムチームを立ち上げ、Wakka Inc.のテクニカルマネージャーとして参画。現在はベトナム拠点で開発チームの標準化や社内のインフラ管理・ITプロジェクト統括をやっています。モットーは『みんなで頑張りましょう』