開発環境を構築する上での考え方
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
本記事は「Windows11開発環境の構築ガイド : PHP / WEBアプリ開発 編」です。
PHPでWEBアプリ開発を行うための開発環境ですが実際に構築に進んでいく前にサーバ構築の考え方・方針を確認しておきましょう。
前提
PHPの環境を構築する事情はいろいろあると思います。
ただ本番環境であれば環境が用意されているレンタルサーバを契約したり、業務ではその道のプロの方が環境構築を担当されるかと思います。
本ガイドでは本番向けではなく、開発環境向けとして「開発環境向けだからこそ」の視点をもってオススメの構成を紹介していきます。
本ガイドの特長
主には次のような特長となります。
- 開発環境向けに特化
- Windows 11 / Windows 10 対応
- PHPの複数バージョン対応
- MySQLの複数バージョン対応
- バーチャルホスト対応
- 仮想化を使わない(Docker、Vmwareなど)
- XAMPPを使わない
- WSLを使わない
複数の案件を円滑に同時進行することを目的とした構成を目指します。
たとえ話
- A社のwebサイト、PHP5.4 MySQL5.5
- B社のwebサイト、PHP7.1 MySQL5.7
- C社のwebサイト、PHP8.2 MySQL8.0
これらの3つの案件を抱えているとします。
どのような作業環境を作ったら良いでしょう。
VmwareやVirtualBoxのような仮想化?
そうやっていた時期もありました。
docker?
お客さんから指定があれば使っている案件もあります。
WSL?
あまり使いたくない上に、本ガイドで推奨する方法のほうがWSLより効率的なので魅力がありません。
仮想化はやらない
行き着いたのは仮想化を使わない方法です。
面倒だし
なにが面倒でしょうか?
「切り替えコスト」です。
A社の作業をしていて、B社さんから電話が鳴ります。
B社のアレをちょっとして欲しい、と。
A社のために開いている画面はそのままにして、
B社の作業をするための画面を開きます。
・・・どうしましょうか?
仮想化しているサーバを起動しましょうか?
いちいちサーバを立ち上げたくないです。面倒です。
作業が終わったらサーバを停止・終了させますか?
いちいちサーバを終了したくないです。面倒です。
いきなりブラウザにURLを入力して、いきなり作業に入りたいです。
新しいお仕事、D社のwebサイトが加わりました。
仮想環境を作りますか?面倒です。
ファイルを配置して、データベースをインポートして、バーチャルホストを設定したら、作業に入りたいです。
Windows11に直接そのまま配置
仮想化は便利ではあるのですが開発環境として扱うには切り替えコストが高めです。
そしてオーバースペックなのです。
本ガイドでは、Windows11の良いところをそのまま活用するため、必要なファイルをそのままフォルダに配置する方式を採用します。
ここで疑問があるかもしれません。
「本番サーバは Linux や FreeBSD だけど大丈夫?」
はい、大丈夫です。
PHPをはじめ、ApacheやMySQLなどはOSを問わず高い互換性を持っています。
若干OSによる違いがありますが、ほんの少しのノウハウを意識するだけで何の問題もなくプログラミングできます。
チーム開発や複数のパソコン
チーム開発のときはどうしましょう?
パソコンを2台持っていたら2台に環境を作らないといけないでしょうか?
そういうときは、本体部分とデータ部分の保存先を分けましょう。
本体部分は共有フォルダであったり、なんならドロップボックスに入れて他のパソコンと共有できます。
「ドロップボックス?大丈夫?」
と思われるかもしれませんが、ドロップボックスに入れるのは「本体部分」です。
いわば公式サイトからダウンロードして配置したファイルだけになります。
ご自身で作成されたファイルやログデータなどは含まれないように異なるフォルダに保存することでデータを守ります。
このあたりはもっと進んでいってから考えると良いと思います。
ここではひとまず「可能」ということを知っておくくらいで大丈夫です。
複数バージョンを共存させる意味
LAMP環境が言われだしたのは2000年代前半頃です。
詳しい時期は分からないですが、僕が初めてLAMP環境で作ったのは2004年のことでした。
これを書いている今日は2024年11月。
少なくとも僕が関わりだしてからでも20年経っています。
20年も経つとかなり進化するものです。
ところでWebサイトの寿命・・・つまりリニューアルはどのくらいの期間でするでしょうか?
3年、5年、10年?
リニューアルするときに以前のWebサイトのデータはどうしますか?
捨てますか?
再利用・再活用しますか?
SQLのバックアップを貰ったけど、手元のMySQLにインポートできない?
バージョンが古すぎる?
つまり仕事としてプログラム開発をしていくと避けて通れないのが「バージョンの互換性問題」です。
プログラミング言語もどんどん進化していっています。
古いバージョンでは動くが新しいバージョンでは動かなくなることはよく聞く話しです。
A社案件、B社案件、C社案件を同時並行して効率よく進めるにはバージョンの切替を行うのではなく、「切り替えることなく使える環境」が必要になってきます。
それが「複数バージョンが共存可能な環境づくり」となります。
ということで主には次のような使い方になってきます。
最新バージョンをインストール
-> 今から新規開発していくWebサイト・Webシステムのため
古いバージョンをインストール
-> 過去に作られた古いシステムのメンテナンスのため
-> 古いバージョンだと最新版で動かないことがあります。
ということで、弊社では古いシステムのメンテナンスや解析も行っております。新規案件も良いけど古いシステムの再構築とか割と得意分野です。
「過去に作ったシステムが古くなって当時作ってくれた会社は担当者が退職して分かる人が誰もいなくなった」というような相談を受けることがあります。
【宣伝】弊社では2000年台前半頃からPHPを扱っており古いシステムでも解析して直したり再活用を行うことができます。お使いのシステムに気になることがありましたらお気軽にお問い合わせください。