仮想サーバーの開発環境として手放せないMAMP PROですが、大規模なWORDPRESSサイト等ではデータベースのオーバーヘッドが発生したり、サイトの表示速度が重くなるといった不具合が生じてしまいます。
ここではそんなMAMP PROをブーストさせ高速化する5つのTipsを紹介します。
Contents
プロユースならMAMP PROを使おう!
まず高速化の前提ですが、MAMPはPROバージョンを使用してください。
無料版でも十分高機能ですが、次の事が出来ません。
・PHPバージョンの自由選択
開発環境は出来るだけ実サーバーのバージョンに合わせる必要があるので、この機能だけでもPRO版を選ぶ価値があると言えます。
・PHP.iniの個別編集
PHPバージョン毎にphp.iniを編集・保存が可能です。無料版でも出来なくは無いですが、面倒。
・サーバーの暗号化
これもSSLサイトを作る時に必須の機能。無料版でも出来なくは無いですが、これまた面倒!。
・サーバーへのLAN内アクセス
スマホの実機を使って仮想サーバーにアクセスが可能。モバイル時代には必須の機能ですね。
・ホスト名の変更
通常のMAMPはホスト名がLocalhost になります。
MACの場合、実はこれがオーバーヘッドを生み出す原因となっています。詳細は後術しますが、無料版ではホスト名を変更することが出来ません。
他にもMemchachedサーバーが使えたり、Opchachが使えたり、ポート番号を自由に設定できたり様々な事が可能になります。
PRO版は$60(約7000円)程度の一回こっきりの課金なので必要経費で落としましょう。
高速化その1 PHPのメモリリミットを増やす
それでは高速化のその1。PHPのメモリ割当量変更。
デフォルトではPHPのメモリリミットが128MBです。これだと大規模なデータベースを扱うサイトなどでは直ぐにオーバーヘッドが発生し処理落ちしてしまいます。
最低1GB欲しいところなのでサクッと変更します。
変更方法 FILE → Edit Templete → PHP(PHP.ini) → 希望のバージョンを選択
MAMPのテキストエディタが開くので memory limit の部分を探します。
(command+F で検索も可)
memory limit = 128M となっている部分を 1024Mに変更して保存します。
使っているパソコンのメモリに余裕があれば2048Mにしても良いです。
最後に仮想サーバーの再起動のダイアログが出ますので従います。
これでPHPメモリの使用量を増やすことが出来ました。
これだけでも大分早くなりますよ。
高速化その2 サーバーアドレスを変更する
MAMPの初期のサーバーアドレスはLocalhostになりますが、実はこのLocalhostという名前がオーバーヘッドの原因になっています。
macOSにはBonjur というネットワークサービスがインストールされていますが、これがlocalhostや.localといったローカルアドレスを利用した際に、次に何を行うべきかを判断する処理が入り込みます。
macOSではBonjurの一部である.localドメインを調べる際に複数の処理が入り込んでしまうので、結果WORDPRESSの様な多数のデータベースを使用しているサイトは重くなってしまうのです。
これを解決するにはサーバーのアドレスを変更します。
ただ既存の開発環境がある場合は、仮想サイトのアドレス変更を伴います。
それだと大変なので今回は既存のLocalhostも活かしたまま新しいサーバーアドレスを設定する方法を紹介します。
MAMP PRO → SETTINGS → Host を開きます。
+をクリックして新しいサーバーを追加します。
サーバーの追加画面が開くのでサーバー名を「******.div」という形式にします。
******部分は好きな英数字でOK。 .divという拡張子を付けるのがポイントです。
続いてドキュメントルートフォルダを指定します。通常のLocalhostと同じhtdocsでも良いですし、DropBoxなどに新規でhtdocsを追加しても良いです。
これで新しいサーバーの追加が出来ました。
仮想サーバーを起動させて http://******.div と打ち込めばアクセス可能となります。
実際にWORDPRESSをインストールして違いを確かめてください。
大規模なサイト程、効果を実感できると思います。
高速化その3 CGI MODULEを停止させる
これは理屈は良くわからないのですが、海外掲示板からの情報で実際に効果があった物です。
やり方は MAMP PRO → Apache → Apache module一覧 を開いて「cgi_module」のチェックを外すだけ。
CGIを使わなくても良い開発案件であれば有効なので試してみてください。
高速化その4 PHP7を使う
最後はPHPの設定です。
これは開発案件でPHPに制約がある場合には出来ない場合もあるのですが、推奨設定ということで。
MAMP PRO → LANGAGES → PHPから…
・PHPのDefault version は7 以上を選びます。大規模なサイト程効果が分かります。
・PHPの動作モードはmodule modeを使います。ほとんどの人はこの設定で大丈夫なはず。
・PHPのキャッシュモジュールは基本offにしておきます。
opchaceなども選べ、その方が高速化出来るのですが、開発段階では不具合の方が多い印象なので無効にしておきます。
データベースの読み込み速度を測れるプラグイン
最後に効果確認。
WORDPRESSの場合はUSAAGEDDというプラグインが便利。
こんな感じで。
このプラグインを使って、上記のMAMP 高速化対策前後の比較を行なった結果、2300クエリで14秒掛かっていた表示時間が7秒まで半減。
TTFBも1秒を切る所まで改善出来ました。
これは凄く体感できる速度向上で、今までの遅さが何だたんだろう?というレベルです。もちろん開発環境が早くても実サーバーで遅かったら意味ないんだけど、開発のストレスが違〜う!
もしMAMP PROをお使いでWORDPRESSが遅いと感じたら試してみてください。
ではまた。