Help us understand the problem. What is going on with this article?

【環境構築】プログラミング未経験者がローカル開発環境を構築するための基礎知識

More than 3 years have passed since last update.

はじめに

開発環境を構築するためのチュートリアルやツールのまとめ記事はよくありますが、「なぜ」という視点からまとまっている資料がなかったので、作成してみます。
具体的な作業内容やツールの使い方は記載していません。
随時更新予定です。

そもそもローカルとは

ローカルとは、インターネットなどのネットワーク越しに存在する環境ではないという意味です。
ざっくり言ってしまえば、個人のPC内部は基本的にローカルな環境です。
あなたが自分のPC内にあるエクセルやパワーポイントなどのファイルを操作するときは、ローカルで作業しているわけです。

インターネット上にサービスを公開するために

この記事を読んでいる方は、WebサイトやSNSなどのアプリケーション開発に興味があるのだと思います。
インターネット上にそれらのサービスを公開し、ブラウザ経由で誰もがアクセスできるようにするためには、インターネットに接続されたコンピュータ、つまりサーバーが必要です。
サーバーはレンタルサーバーやVPS, クラウドなどいくつかの種類がありますが、多くの場合はLinuxというOSにより動作しています。

しかし、私を含め多くの方はWindowsかMacいずれかのPCを使用しています。
これらはそれぞれWindows, OSXといったOSを搭載しています。
もちろんそういった環境で開発をすることはできますが、結局サービスを公開するにはLinuxで動作するサーバーに、プログラムが記述されたファイル群をアップロードしなければなりません。
そして、WindowsやOSX上で正しく動作したからといって、Linux上でも正しく動作するとは限りません。
そのため、開発する環境(自分のPC)と、公開する環境(サーバー)のOSを揃える必要があります。

仮想化ソフトウェア

ここで登場するのが、VirtualBox をはじめとする仮想化ソフトウェアです。
これを使用することで、自分のPC内に、コンピュータ(仮想マシン)を作成することができます。
つまり、WindowsやMacを使用している人でも、同一PC内にLinuxで動作するコンピュータを持つことができるのです。
このLinux上で開発をすることで、先ほどの"OSが異なる問題"が解決します。

ターミナル

仮想化ソフトウェアで作成した仮想マシンに接続し、作業を行うために使用するのがターミナルです。
ターミナルとは、通信回線などを通じて他のコンピュータなどに接続し、もっぱら情報の入力や表示などを行なうソフトウェアの総称です。
具体的なソフトウェアとしてはインターネット上で配布されている TeraTerm や、Macに標準でインストールされている Terminal などがあります。
ターミナルを使用して仮想マシンにアクセスし、ファイルを作成し、プログラムを記述していくのです。

Vagrant

仮想化ソフトウェアとターミナルがあれば、仮想マシン上での開発をすることができますが、それを手助けしてくれるのが Vagrant というソフトウェアです。
Vagrant をインストールすると、仮想化ソフトウェアでの仮想マシン作成や起動、アクセスといった作業を、非常に簡単なコマンド入力で実現することができます。
Vagrantでは仮想マシンに関する情報を Vagrantfile と呼ばれる設定ファイルに記述しており、これを参照して仮想マシンの構築を行います。
すなわち、Vagrantfile を共有することで、複数人で全く同じ環境の仮想マシンを構築することができ、チームでの開発にも役立ちます。

環境構築の際によく目にするツールをざっくりと

名称 概要 備考
Terminal コンピュータをコマンドで操作するためのツール Macにはデフォルトでインストールされている
TeraTerm 同上 WindowsユーザーがTerminalの代わりに使用するケースが多い
VirtualBox 仮想マシンの作成や管理を行う
Vagrant VirtualBoxを通じた仮想マシンの構築を便利にする
Cyberduck 仮想マシン上のファイルへのアクセスを容易にする
Transmit4 同上 有料

※初心者にとって情報過多にならないよう説明を絞っています

参考情報

ドットインストール/ローカル開発環境の構築 [Windows編]
ドットインストール/ローカル開発環境の構築 [MacOS X編]

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away