初学者向けの開発環境

Webサーバについて

作成したHTMLを、Webページとして公開するには、Webサーバの構築が必要になります。Webサーバには Apache(アパッチ) や Nginx(エンジンエックス)といったソフトウェアがあります。

Webサーバの構築方法

Webサーバ(Apache、Nginx)の構築方法はさまざまですが、Macや Windowsの開発環境で考えられるの候補をあげます。

構築例

ソフトウェア ホストOS 補足 現場向けおすすめ度
Homebrew + Apache Mac Macネイティブ ★★
Apache Mac Macネイティブ&標準インストール
Apache Windows Windowsネイティブ&別途インストール
WSL + Apache Windows 仮想PC ★★★
Docker + Linux + Apache Mac、Windows 仮想PC ★★★
VirtualBox + Vagrant + Linux Mac、Windows 仮想PC ★★
MAMP Mac 初学者向け&Macネイティブ
XAMPP Windows 初学者向け&Windowsネイティブ

初学者向けの開発環境

PCやLinux知識がない場合、一番簡単な方法は、Apache + MySQL + PHPの統合パッケージソフトの利用です。Macなら MAMP、Windows ならXAMPPです。ただし、学習用なので、将来的に現場用のLinux開発環境構築をできるようにしましょう。

MAMP(Mac向け)

Macでは、MAMPを利用して「Apache + MySQL + PHP」を一括でインストールします。

MAMP公式サイト

XAMPP(Windows向け)

Windowsでは、XAMPPを利用して「Apache + MySQL + PHP」を一括でインストールします。

XAMPP公式サイト

Linux環境

Linuxとは

LinuxはオープンソースのOS(オペレーションシステム)です。個人パソコンのホストOSはmacOSWindows OSが一般的ですが、通常、Webサーバの環境はLinux(リナックス)が採用されています。

Linuxカーネル

Linuxは、OSのカーネル(コア部分)を指します。Linuxカーネルは、PCとソフトウェアを仲介し、プロセス管理、メモリ管理、デバイス管理などの基本機能を提供します。

Linuxの基礎知識が必要

世の中のWebサーバ(Apache、Nginx)は、基本的にLinux OSで動作するためLinuxの知識が必要です。Linuxのインストール、ソフトウェアやネットワーク管理のために、ターミナルコマンドを覚える必要があるため、初心者にはハードルが高くなりますが覚えておくべき技術です。

ディストリビューション

Linuxは、カーネルに基礎に構築されたディストリビューション(OSの種類)を指すこともあります。Linuxのディストリビューションが存在しますが、開発者、サービス提供者によってどれを選択するかは異なります。

Debian系とRedHat系

Linuxのディストリビューションは大きくDebian(デビアン)系とRedHat(レッドハット)系にわかれます。以下は代表的なディストリビューションです。

系統 ディストリビューション
Debian Debian
Ubuntu
Linux Mint
RedHat Red Hat Enterprise Linux
CentOS
Fedora

LinuxをMac、WIndowsで直接起動できない

LinuxはOSなので、MacやWindows環境で直接起動できません。そこで、MacやWindowsを起動しながら、仮想的にLinuxを起動させる、VPC(仮想PC)という技術があります。

VM(Virtual Machine)

VMとは

VM(Virtual Machine)は仮想マシンの意味で、PC上で複数の独立した仮想的なコンピュータ環境を作成・実行する技術です。VMを利用すると1つの物理的なPC上に複数のOSやアプリケーションを同時に実行できます。

ハイパーバイザとは

VMは、ハイパーバイザ(仮想化ソフトウェア)と呼ばれる特別なソフトウェアレイヤーによって管理されます。

VMの種類

主なVMソフトウェアには、VMwareMicrosoft Hyper-VOracle VirtualBox、*KVM(Kernel-based Virtual Machine)*などがあります。これらのソフトウェアはハイパーバイザを提供し、仮想マシンの管理と実行を可能にしています。

VMのメリット

ハードウェア抽象化

VMは物理ハードウェアをエミュレートするため、ソフトウェアレベルでハードウェア抽象化が行われます。異なるPC上で同じVMのイメージを実行できるため、移植性が向上します。

環境の隔離

VMは互いに独立して実行できるため、異なるVM間で環境を隔離できるため、セキュリティ強化とアプリケーション間の相互干渉を防ぎます。

さまざまなOSを起動

VMはさまざまOSを実行できるため、MacやWindowsなどの物理的なPC上でLinuxを仮想的に起動できます。これは開発、テスト、互換性にとても有効です。

リソースの効率的な利用

1つの物理PC上で複数の仮想PCが起動できるため、リソースがとても効率的です。ハードウェアの資源(CPU、メモリ、ハードディスク)を最大限して、コスト削減につながります。

VirtualBox + Vagrant

VirtualBox

VMで代表的なソフトウェアが、VirtualBoxです。ホストPCのハイパーバイザー機能でLinux PCをまるごと構築できます。

Vagrant

VagrantVirtualBoxの構築を簡略化できるツールです。

ただ、最近は Docker の登場でシェアは減ってきてるかもしれません。

Docker

Dockerとは

Dockerはアプリケーションをコンテナと呼ばれる軽量な仮想化単位にパッケージ化し、異なる環境で一貫したソフトウェアの実行を可能にするオープンソースのプラットフォームです。

Dockerコンテナ

Dockerコンテナは、アプリケーション、その依存関係、ライブラリ、設定などを一つの単位にまとめ、これを独立した環境で実行できるようにします。簡単にいうと、アプリケーションを独立した「箱(コンテナー)」に詰め込んで、どこでも同じように動作させるイメージです。

VMとの違い

VMとは異なり、DockerコンテナはホストOSのカーネルを共有するため、より効率的で軽量な仮想化が可能です。これにより、アプリケーションのデプロイやスケーリングが容易になります。

Dockerコンテナの特徴

軽量性

コンテナはホストOSのカーネルを共有するため、リソースの効率が高く、素早い起動と停止が可能です。

一貫性

コンテナはアプリケーションとその依存関係を含む一貫した実行環境を提供するため、移植性が向上します。簡単にいうと、開発で構築したDockerコンテナ環境を、本番環境でそのまま利用できます。

スケーラビリティ

Dockerコンテナは単一のコンテナイメージから複数のインスタンスを起動することができ、スケーリングが容易です。

環境の共有

開発から本番まで同じコンテナ環境を使用することで、問題を早期に特定しやすくなります。

Dockerの環境構築

Dockerを利用するには、Macは Docker for Mac、Windows は Windows Desktop で構築するのが一般的です。

DockerはWebサーバやプログラム言語などのソフトウェアを、コンテナという単位で別々に起動します。

Macネイティブ環境

UNIXベース

macOSはUNIX OSベースで設計されているため、Linuxに似たような環境になっています。よって、Webサーバー(Apache、Nginx)やWebプログラム言語(PHP、Ruby、Python)などが既にインストールされていたり、カスタムインストールできるため、Webサーバ構築も比較的簡単です。

Xcode Command Line Tools

Xcode Command Line Toolsとは

Macの開発環境構築で便利なのが、Appleが提供する開発環境ツールXcode Command Line Toolsです。XcodeはmacOSやiOSアプリ開発のIDE(統合開発環境ツール)ですが、Xcode Command Line ToolsXCodeの関連ライブラリ管理ツールです。

Xcode Command Line Toolsのインストール

  • 十分なハードディスク容量の確認とインストールには時間がかかるので注意が必要です。

「アプリケーション > ユーティリティ > ターミナル.app」を起動します。

Xcodeのインストールコマンドを入力します。

xcode-select --install

Homebrew

Homebrewとは

Homebrewは、macOSおよびLinuxOS上で、コマンドラインでソフトウェアをインストール・管理するためのパッケージ管理ツールです。

パッケージの管理

Homebrewを使用することで、ターミナル上からアプリケーションやユーティリティ、ライブラリなどのソフトウェアを簡単にインストール・アップデート・削除できます。

依存関係の自動解決

ソフトウェアインストール時に、関連するライブラリやツールなどの依存関係を自動的に解決してくれます。

Formulaリポジトリとセキュリティ

Homebrewは公式なFormulaと呼ばれるリポジトリを管理しており、多くの信頼性の高いソフトウェアのインストールスクリプトが含まれています。

カスタマイズ可能

自分用のFormulaを作成して、独自のソフトウェアを管理できます。

Homebrewの構築

  • Homebrewをインストールする前に、Xcode Command Line Toolsのインストールが必要です。

Homebrewのインストール

Homebrewを利用するには、Homebrew本体のインストールが必要です。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストールの確認

brewコマンドで、Homebrewのバージョンを確認します。

brew --version
結果例
Homebrew 4.0.11
Homebrew/homebrew-core (git revision 8e8aa22f909; last commit 2023-04-04)
Homebrew/homebrew-cask (git revision 36e5545e21; last commit 2023-04-03)

主なコマンド

コマンド 動作
brew install パッケージをインストール
brew upgrade パッケージをアップデート
brew uninstall パッケージをインストール
brew search キーワードを使ってパッケージを検索

Windows環境

WSL

WSL(Windows Subsystem Linux) は、Windows に Linux の仮想PCを起動するソフトウェアです。WindowsにWSL2をインストールして Linuxの仮想PCを環境構築できます。インストール方法は「Linux 用 Windows サブシステムとは」を参考にしてください。

VSCode

Webの標準エディタ

VSCodeはマイクロソフトが無償で提供する、高機能エディタを含むIDE(統合開発環境ツール)です。Web開発のテキストエディタが特に決まっていなければ VSCode(Visual Studio Code) の使用をオススメします。

VSCodeについて

インストールや基本事項は別講座「VisualStudioCode(VSCode)の基本」を参考にしてください。