今日から始める仮想サーバー入門
皆さんは、仮想サーバーを作ったことがありますか?プログラミングを始めたばかりですと、自身のWindowsやMacにソフトをインストールして勉強を始めることや、オンライン環境でプログラミングの勉強を始めることがしばしばあります。確かに、サーバーを作ることは手間もかかります。また、サーバーの不備でエラーを起こした場合、エラーの原因を見つけそれを修正することはとても手間がかかります。
しかし、仮想サーバーには本番により近い環境で開発できることや、複数言語を勉強しているとき競合することがなくなるメリットがあります。なによりも、サーバーの構築はプログラマーにとってプラスになる経験となります。
今回は、普段利用しているPCに仮想サーバーを構築するメリットを紹介したいと思います。
プログラミング、自分のOSにそのままインストールしていませんか?
PHPやRuby、Pythonなどの公式サイトを見ると、インストーラーによるインストールとソースコードからのインストールという2つの方法を選ぶことができます。皆さんはどちらの方法を選びたいとおもいますか?インストーラーは簡単にインストールができ、すぐプログラムが使えるようになります。しかし、GUIであるインストーラーを使って自分のOSにプログラムを入れると2つのデメリットが生まれます。
・言語が更新されたとき、複数バージョンの言語を使い分けにくい
・ソースコードからプログラムをインストールするという勉強の機会を失う
インストーラーでPCに複数バージョンインストールする問題点は、今まで使えていたはずのプラグインが言語を更新したことが原因でエラーを出す元凶の一つとなるかもしれません。更に、今まで自分の作ったコードも使えなくなる可能性があります。
ソースコードからプログラムをインストールすることは、サーバーを構築する上ではかなりよく使われる手法です。Linuxのデフォルトで存在するソフトであっても最新版を使いたい場合はソースコードからインストールしていくことが多くあります。日頃からソースコードでインストールすることでどのOSでも常に最新版や古いバージョンなど好みに合わせたバージョンを利用しやすくなります。
武器はないよりある方がいい
現在、社会ではITエンジニア全体が不足しています。もし、あなたが経営者であれば一つのことができるエンジニアと幾つかのことができるエンジニアならばどちらをえらびますか?おそらく、複数のことができるエンジニアのほうが好まれる傾向にあると思います。
また、LAMPというウェブサーバーには無くてはならない技能の一つにLinuxがあります。Linuxを扱う技術を向上させることでより良いサーバーエンジニアになることができるのかもしれません。
セキュリティーの問題の確認が終わっていないプログラムは脆弱性が多く、SQLインジェクションなどの手法でハッカーにサーバーを乗っ取られる危険性があります。そのようなコードをオンラインで管理するよりは、自分のPC内で済ませてしまったほうが良い場合も多くあります。
共有フォルダーを使いこなせ!
しかし、自分で仮想サーバーを作ると、自分の使っていたテキストエディタが使えなくなるなどの不安はありませんか?Atomやさくらエディタなど魅力的なテキストエディタはたくさんあります。自分好みにカスタマイズしてあるテキストエディタは使い勝手が良いものです。自分のテキストエディタと仮想環境を共存させる方法は主に2つあります。
1つは、仮想環境にSSH接続し「scp」コマンドを使って仮想サーバーに転送する方法、もう一つが共有フォルダーを設定し、共有フォルダーのテキストをWindowsやMac側で書き換えるという方法です。
共有フォルダーのLinux側の設定を工夫することで、Linuxのディレクトリーについて視覚的に理解することも可能です。筆者がWebサーバーになりたい人へのおすすめの共有フォルダーの設定は、Linux側の共有フォルダーを「var/www/html」にすることです。このフォルダーの中に仮想環境で動かしたいウェブアプリを載せていきます。
このフォルダーを共有フォルダーにするメリットは、ウェブアプリケーションの開発のとき、自分のコードをWindowsやMac側で最も手軽に動かしやすくなることです。また、自分の作っているアプリケーションを把握しやすくなります。
仮想環境は簡単に作れて簡単に壊せます。また、仮想環境でやったことは自分のPCにひびきにくいことから思い切ったセキュリティーのテストもよりやりやすくなります。今まで自分のPCやオンラインで開発環境をしていた人はぜひ、仮想環境を構築して0からWebアプリケーションを作ってはいかがでしょうか?
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介