検索お得なブラックフライデーのセール情報まとめました!Web制作、デザイン、VRを中心に日々学んだ知識を配信中。Web制作-シェア-ツイート-ブックマーク-PocketPHPを使うときにどう言う環境で開発してますか?この記事では、PHP初心者こそ仮想環境を使った方が幸せになれるのでは?と思い、仮想環境とは何か?どういいのか?について紹介します。Qiitaの12日目の記事です。目次PHP学習で手軽なのは、ローカルに開発環境を作ること。軽量で本番環境でも使える!Dockerおすすめの勉強方法【Docker編】ちょっと使いたい時に便利!公開されている環境【Docker編】まとめPHP学習で手軽なのは、ローカルに開発環境を作ること。...PHPの勉強するとき、どういう環境で作業していますか?1番手軽なのは、パソコンに必要なミドルウェア(PHPやMySQLなど)を入れる「ローカル開発環境」を作る方法です。(これも十分ハマりますが...)ただこの方法だと、以下のような問題に直面することがあります。参考に見よう見まねで環境を作ったので、何が入っているか把握できていない...プログラミングをはじめたばかりの頃は、技術書やQiitaの記事などを意味も分からずコピペして環境構築した人も少なくないはず。僕もまさにそうなのですが、そうすると何かたくさん入っていて、アップデートするとすごく時間がかか別のバージョンのPHPを入れたいが、今入っているバージョンをなくして大丈夫か把握していないなんて言う問題が起こり、定期的に「まっさらにしたい!」と言う衝動に狩られます。花井この本はPHP5.6で、こっちの本はPHP7.1。PHPのバージョンが違う...学習の教材も発売時期によってPHPのバージョンが違うと言うのはよくある話です。ローカルであってもphpbrewなどを使えば、違うバージョンのPHPを管理することはできますが、なかなか面倒なもまた事実。実際の開発でもPHPのバージョンが違う複数の本番環境を運用することはありえて、同時に案件をやっている時にいちいちPHPのバージョンを切り替えるのも手間です。PHP初心者こそ使いたい!仮想環境のすすめそこでオススメしたいのが仮想環境です。仮想環境とは仮想環境とは、1つのパソコンやサーバーなどのハードウェア上に、「仮想化」技術を使ってあたかも2台以上のサーバーがあるかのように構築した環境のことをいいます。この方法を使うと新たにVPSなどを借りなくても、ローカル環境とは切り離した環境が構築できます。仮想環境は大きく分けて以下の3種類があります。ホスト型ハイパーバイザー型コンテナ型まずは、それぞれの仮想環境の違いを紹介していきます。ホスト型まず一番一般的なのが「ホスト型(別名:ホストOS型)」です。ホスト型は、ホストOS(パソコンにもともと入っているOS)と物理的なパソコンの上で、仮想化ソフトを実行させて、その上にゲストOS(仮想環境)を運用する方式です。ホスト型のメリットとしては、パソコンから一般的なアプリと同じ感覚で、インストール・環境の作成・環境の起動などができるので、扱いやすいところです。VirtualBoxなどがあります。ホスト型のデメリットとしては、ゲストOSを運用する際にホストOSも必要なので、そちらにもリソースが取られるOSからアプリケーションまでまるまる作るので、1つの仮想環境の容量が大きいと言う点があげらます。上で紹介したホスト型のデメリットである、ホストOSのリソースを削除するために考え出されたのが、「ハイパーバイザ型」です。ハイパーバイザ型は、ホストOSの代わりに、専用の仮想化管理ソフトである「ハイパーバイザー」を使って、その上に複数のゲストOSを動作させる方式です。ハイパーバイザ型のメリットは、ホストOSが不要になる分、同じハードウェアでもゲストOSのパフォーマンスが向上するところです。ハイパーバイザ型のデメリットは、OSから入れ直さないと使えないので、専用のハードウェアが必要と言う点です。vSphereやHyper-V、KVMなどが代表的なソフトですがまだまだマイナーでハードルが高い印象です。他の方式に比べると比較的新しい方式が、「コンテナ型」です。コンテナ型は、OSはパソコンに入っているホストOSのみ(場合によっては、コンテナ型とゲストOS上)で、仮想化ソフトの上にPHPやMySQLなどのミドルウェア層と開発するアプリケーション層をまとめた「コンテナ」と呼ばれる領域を構築します。Windowsが提供されており、MacやWindows上でも使えます。コンテナ型のメリットしては、ホストOSとOSを共有するので、仮想環境の容量が抑えられ、構築も早いという点があげられます。コンテナ型のデメリットとしたは、まだまだMac版、Windows版は不安定なところもあるので、コンテナ型との併用が必要になる場合があるという点があげられます。これに関しては今後に期待です。「PHPのバージョン」に関しても、バージョンごとに環境を作成することも可能です。逆にデメリットとしては、以下の2つのことが言えます。学習コストがかかるパソコンの容量を圧迫するローカルで開発する場合より、仮想化ソフトについても学習する必要が出てくるので学習コストは上がります。遅かれ早かれ直面する問題なので、勉強しておいてそんはありません。容量に関しても、Dockerのようなコンテナ型が台頭したことで、少し緩和されてきています。おすすめの仮想環境はVirtualBox&VagrantとDockerここまでいろいろな仮想環境について紹介してきましたが、僕の個人的なオススメは、VirtualBox&VagrantDockerの2パターンです。ここでは、それぞれの学習方法と僕も使っているすぐに使える公開されている環境を紹介します。OSから全部自由自在!VirtualBox&Vagrant上で紹介したように、ホスト型の代表格「VirtualBox」です。それと合わせて、環境の管理・構築コストが下げられる「Vagrant」を併用することをおすすめします。僕がVirtualBox&Vagrantを勉強した方法は、「ドットインストール」です。1本3分の動画で分かりやすく解説してくれます。Windows/Macのどちらでも構築方法を公開してくれています。(全14回)Windows上にローカル開発環境を構築していく方法について見ていきます。(全14回)macOS上にローカル開発環境を構築していく方法について見ていきます。boxを公開してくれています。Worksbox.scotch.iover2.0の頃の少し古い記事ですが、使い方は一緒なので参考にどうぞ。ラクして環境構築するためのScotch-Boxが2.0になってかなり進化してた。Yosemiteで実施しております。他のデバイスで問題が発生した場合にはご報告していただければ時間が取れ次第で対応できるかもしれません。(必ず対応できるとまで...qiita.com軽量で本番環境でも使える!Docker最近、注目されているコンテナ型の代表格「Docker」です。Macで運用したいなと考えています。僕のDockerの勉強するのにおすすめなのは、湊川あいさん著の「マンガでわかるDocker」シリーズです。とっつきにくい技術の話をマンガで書いてくれてる著者のDocker本です。)基本的な概念から、Vagrantとの違いなんかも紹介してくれています。湊川あいの、わかば家。BOOTHこちらはPDFダウンロード版です。Windowsのインストール手順や本番環境での運用など実践的な内容はこの本が参考になりました。Composeを紹介&公開してくれています。Qiita色々とDockerは便利ですよね(大雑把)。私は「ちょっとこれを動かしたい」とか思った時にサクッとLAMP環境作って破棄するってのをよくやります。ComposeをGitHubで公開してくれています。GitHub.github.comまとめこの記事では、プログラミングにおすすめの仮想環境の紹介をしてきました。最近は、プログラミングを勉強しようとするといろいろな関連技術が出てきてちょっと大変ですが、どれも一度覚えてしまえば時短になったり、管理が楽になったりメリットの多いものなので、苦手意識を持たず少しずつ取り入れて見ましょう。僕もDockerは使い始めたばかりですが、もっと使いこなせるように精進していきます。プログラミング、ブログ、VRにハマってます。DTPとWebは実務経験なしから仕事を獲得し、3人の子育てにも参加しつつ、在宅でバタバタな生活してます。Web、VR、フリーランスの生活を中心に発信します。