MAMPは、macOSやWindows環境で手軽にローカル開発環境を構築できるツールとして、長年多くのエンジニアに愛用されています。
Apache、MySQL、PHPがワンセットになっているため、インストールするだけでエンジニアとしての第一歩を踏み出すことができます。
しかし、開発を進めていくと「ファイルのアップロード上限に引っかかる」「プログラムの実行時間を延ばしたい」「エラー内容をブラウザに表示させたい」といった、(PHPの基本設定をカスタマイズしたい場面)に必ず遭遇します。
PHPの設定変更は、主に(php.ini)という設定ファイルを編集することで行います。
ところが、MAMPの構造は少々特殊で、複数のPHPバージョンが同居しているため「どのファイルを編集すれば良いのかわからない」という声や、「書き換えたはずなのに反映されない」といったトラブルも少なくありません。
本記事では、MAMP環境においてPHP設定を正確に変更し、開発効率を向上させるための手順を詳しく解説します。
MAMPでPHP設定を変更するための第一歩:php.iniの場所を特定する
MAMPには複数のPHPバージョンが同梱されており、それぞれが独立した設定ファイルを持っています。
そのため、現在使用しているPHPのバージョンに対応する(php.ini)の場所を正確に把握することが、設定変更の第一歩となります。
phpinfo()を使用して正確なパスを確認する
最も確実な方法は、PHPの情報を出力する関数である(phpinfo())を利用することです。
MAMPのコントロールパネルにある「WebStart」ボタンから開くページでも確認できますが、自分でファイルを作成して実行するのが最も間違いありません。
以下のコードを、MAMPのドキュメントルート(デフォルトでは /Applications/MAMP/htdocs/)に (info.php) という名前で保存してください。
<?php
// PHPの現在の設定情報を出力します
phpinfo();
?>
ブラウザで (<a href="http://localhost:8888/info.php">http://localhost:8888/info.php</a>) にアクセスすると、大量の情報が表示されます。
その中から (Loaded Configuration File) という項目を探してください。
そこに記載されているパスが、現在MAMPが読み込んでいる設定ファイルの実体です。
一般的なMAMPのphp.ini格納ディレクトリ
macOS版のMAMP(無料版)を使用している場合、多くは以下のディレクトリ構造の中に(php.ini)が存在します。
| バージョンの例 | 格納パスの例 |
|---|---|
| PHP 8.3.x | /Applications/MAMP/bin/php/php8.3.x/conf/php.ini |
| PHP 8.2.x | /Applications/MAMP/bin/php/php8.2.x/conf/php.ini |
| PHP 8.1.x | /Applications/MAMP/bin/php/php8.1.x/conf/php.ini |
(注意点として、MAMP Pro(有料版)を使用している場合は、直接ファイルを編集するのではなく、アプリ上のメニューからテンプレートを編集する必要があります。) 無料版を使っている場合は、Finderやターミナルで上記のパスを辿り、テキストエディタで開いてください。
php.iniでよく変更される主要な設定項目
(php.ini)には数百もの設定項目がありますが、Web開発において変更頻度が高い項目は限られています。
ここでは、特に重要な5つの設定について解説します。
メモリ使用量と実行時間の制限
PHPが1つのスクリプトで消費できるメモリ量や、処理を継続できる時間を制御します。
画像処理や重いフレームワーク(Laravelなど)を動かす際に調整が必要になります。
- (memory_limit): 1つのスクリプトが使用できる最大メモリ量。デフォルトでは
128M程度ですが、プロジェクトに応じて256Mや512Mに増やすことがあります。 - (max_execution_time): スクリプトの最大実行秒数。大量のデータ処理を行うバッチ処理などでは、デフォルトの
30秒では足りなくなることがあります。
ファイルアップロード関連の制限
WordPressなどで大きな画像や動画ファイルをアップロードしようとした際、エラーが出る場合は以下の2つの項目をチェックします。
- (post_max_size): POSTデータ全体の最大サイズ。
- (upload_max_filesize): 1つのファイルアップロードあたりの最大サイズ。
(必ず post_max_size ≧ upload_max_filesize となるように設定してください。)
エラー表示の設定(デバッグ用)
開発環境ではエラー内容を画面に表示させるのが一般的ですが、セキュリティの観点から本番環境ではオフにします。
MAMPは初期状態で表示される設定になっていることが多いですが、真っ白な画面が出る場合はここを確認します。
- (display_errors): エラーを画面に表示するかどうか(
OnまたはOff)。 - (error_reporting): どのレベルのエラーを報告するか(例:
E\_ALL)。
具体的な設定変更の手順とサンプルコード
実際に (php.ini) を編集して、設定を反映させるまでの具体的な流れを説明します。
ここでは、ファイルアップロードサイズを32MBに引き上げる例を紹介します。
1. 設定ファイルのバックアップ
編集前に、現在のファイルをコピーしてバックアップを取っておくことを強く推奨します。
万が一、記述ミスでPHPが起動しなくなった際にすぐに戻せるようにするためです。
2. php.iniの編集
テキストエディタ(VS Codeやメモ帳など)でファイルを開き、検索機能(Cmd + F または Ctrl + F)を使って対象の行を探します。
; 修正前
post_max_size = 8M
upload_max_filesize = 2M
; 修正後
post_max_size = 32M
upload_max_filesize = 32M
3. MAMPの再起動
(php.iniを保存しただけでは設定は反映されません。) MAMPのコントロールパネルから「Servers」を一度「Stop」させ、再度「Start」させる必要があります。
これによりApache/Nginxが再起動し、新しいPHP設定が読み込まれます。
4. 反映確認
再度 (info.php) をブラウザで開き、設定値が意図した通りに変更されているか確認します。
// info.phpで確認する項目
// directive: upload_max_filesize / local value: 32M
PHP設定が反映されない時のチェックリスト
「設定を書き換えて再起動したのに、値が変わらない」というのは、MAMP初心者が最も陥りやすい罠です。
もし反映されない場合は、以下の項目を一つずつ確認してください。
1. 編集しているファイルが「Loaded Configuration File」と一致しているか
先述した (phpinfo()) で表示されるパスと、自分が今エディタで開いているパスが(1文字も違わず一致しているか)を再確認してください。
特にPHPのバージョン(8.1.x と 8.2.x など)を間違えて編集しているケースが非常に多いです。
2. 行頭にセミコロン (;) が付いていないか
(php.ini) において、行頭のセミコロンは「コメントアウト(無効化)」を意味します。
;upload_max_filesize = 32M <-- これは無効
upload_max_filesize = 32M <-- これが有効
値を書き換えても、セミコロンが残ったままだとデフォルト値が採用され続けます。
3. MAMP Proの設定が優先されていないか
もしコンピュータにMAMP Proをインストールしたことがある場合、無料版のMAMPの設定ファイルではなく、MAMP Proが管理するテンプレートファイルが優先される仕様になっていることがあります。
この場合、MAMP ProのGUI上から設定を変更する必要があります。
4. OPcacheの影響を受けていないか
PHPの実行を高速化する「OPcache」が有効になっていると、スクリプトのキャッシュが残っていて古い挙動をすることがあります。
通常、(php.ini)の設定値そのものには影響しませんが、プログラムの動作が変わらない場合はMAMPを完全に終了させてから再起動を試みてください。
MAMPのPHPバージョンを切り替える方法
MAMPは通常、最新の2つのバージョンしか選択できないようになっています。
プロジェクトの要件で古いPHPバージョンを使用したい場合は、以下の手順で切り替えを行います。
- MAMPのアプリケーションフォルダを開く。
(/Applications/MAMP/bin/php/)へ移動する。- 使わないPHPバージョンのフォルダ名の先頭にアンダーバーを追加する(例:
\_php8.1.0)。 - MAMPを再起動する。
MAMPは上位2つのフォルダを認識する仕組みになっているため、不要なフォルダをリネームして隠すことで、使いたいバージョンをプルダウンメニューに出現させることができます。
バージョンを切り替えた後は、(読み込まれるphp.iniのパスも変わる)ため、再度パスの確認を行ってください。
開発をさらに便利にするPHP設定のヒント
設定ファイルの場所がわかれば、他にも便利なカスタマイズが可能です。
タイムゾーンの設定
デフォルトでは欧州のタイムゾーンになっていることがあります。
日本国内向けのサービスを開発する場合は、以下のように設定しておくと時刻計算のバグを防げます。
date.timezone = "Asia/Tokyo"
Xdebugの有効化
MAMPには最初からデバッグツールの「Xdebug」が同梱されています。
(php.ini)の末尾付近にあるXdebug関連のコメントアウトを外すことで、VS Codeなどのエディタと連携したステップ実行が可能になります。
; zend_extension="/Applications/MAMP/bin/php/php8.x.x/lib/php/extensions/no-debug-non-zts-xxxxxxx/xdebug.so"
このように記述されている箇所の ; を削除し、必要に応じて xdebug.mode=debug などの設定を追加します。
まとめ
MAMPにおけるPHP設定の変更は、一見複雑そうに見えますが、(「正しいphp.iniの場所を特定すること」と「編集後に必ず再起動すること」)の2点さえ押さえれば、決して難しい作業ではありません。
(phpinfo())で(Loaded Configuration File)のパスを確認する。- 対象の
(php.ini)をバックアップした上で、テキストエディタで編集する。 - セミコロン(コメントアウト)の有無に注意し、値を修正する。
- MAMPを再起動して設定を反映させる。
これらの手順をマスターすることで、環境依存のエラーに悩まされる時間を減らし、本来の目的である「コーディング」により集中できるようになります。
もし設定がうまく反映されない時は、焦らずにパスの不一致や記述ミスを疑ってみてください。
適切な設定を施したローカル環境は、あなたの開発をより快適で強力なものに変えてくれるはずです。
