初学者向けの開発環境
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」を一括でインストールします。
XAMPP(Windows向け)
Windowsでは、XAMPPを利用して「Apache + MySQL + PHP」を一括でインストールします。
Linux環境
Linuxとは
LinuxはオープンソースのOS(オペレーションシステム)です。個人パソコンのホストOSはmacOSやWindows 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ソフトウェアには、VMware、Microsoft Hyper-V、Oracle 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
VagrantはVirtualBoxの構築を簡略化できるツールです。
ただ、最近は 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 ToolsはXCodeの関連ライブラリ管理ツールです。
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)の基本」を参考にしてください。