Skip to content

MAMPを利用してMacで開発環境を構築する

macOSの環境でWebサーバーなどの開発環境を構築する方法について解説しています。
「開発環境」ときくと「ちょっとよくわからん」となりがちですが、要はMac上でWebサーバーやWordPress、てがろぐを動かすことが可能になるというものです。

MacにはもともとApacheやPHPなどがインストールされているので、コマンドを打つことでWebサーバーも起動できますが、すこしややこしいので、本記事では手軽に操作できる「MAMP」というアプリケーションを利用した方法を解説します。

補足

MAMPにはWindows版もありますが、Windowsでは「XAMPP」がよく利用されています。また、XAMPPにはMac版もありますが、Macの場合はMAMPを利用する割合が多いようです(筆者はMacでどちらも利用したことがありますが、個人的にはMAMPの方が使いやすいと感じています)

記事を検索すると解説などはXAMPP=Windows、MAMP=Macのものが多いですが、絶対にこれ、どちらがいいということはないので、自身が使いやすいと思うものを選ぶとよいかと思います。

MAMPをダウンロードする

MAMPの公式サイトからダウンロードします。zipファイルがダウンロードできるので、解凍してアプリをインストールします。

インストールが完了すると、アプリケーションフォルダの中に「MAMP」フォルダと「MAMP PRO」アプリが入ります。MAMP PROはより高機能な有料アプリですが、個人が使う用途であれば機能としてはMAMPのみでもじゅうぶんです。
MAMP PROはアンインストーラーがついているので、不要であれば削除して構いません(アンインストールの方法は本記事最後に記載しているので、ご参考ください)

留意事項

記事執筆時点でのMAMPのバージョンは「ver7.2 (2737)」です。以降の内容はこのバージョンをもとにしています。

MAMPを起動する

インストールが完了したら、とりあえず起動するか確認します。

「MAMP」フォルダの中にあるMAMPアプリを起動します。以下がMAMPの画面です。

MAMP説明画像1

右上の「Start」をクリックするとサーバーが起動します。起動時にPCのログインパスワードを求められた場合は、ログインパスワードを入力してOKボタンを押下します。

アイコンが緑色で「Stop」の表示になったら、その左側の「WebStart(飛行機アイコン)」がクリックできるようになります。クリックするとブラウザが立ち上がり、MAMPのスタート画面が表示されます(初期状態では勝手にブラウザが立ち上がるかと思います)

MAMP説明画像2

画面が表示されていればOKです。MAMPでWebサーバー(ローカルサーバー)が立ち上がりました。
Webサーバーのアドレスはhttp://localhost:8888、Webの公開領域であるドキュメントルート(初期)は/Applications/MAMP/htdocsです。

MAMPに内蔵されているphpMyAdminは、スタート画面の上部「Tools」メニュー内の「phpMyAdmin」からアクセスできます。
MAMPのphpMyAdminのログイン情報などは以下になります。

  • ホスト名:localhost
  • ユーザー名:root
  • パスワード:root

Webサーバーを停止する際は、MAMPアプリに戻って右上の「Stop」をクリックします。アイコンが灰色になり、「Start」の表示になったらWebサーバーは停止しています。試しに先ほどのアドレスにアクセスすると、アクセスできない旨の表示がされます。

補足①

http://localhost:8888(あるいは後述するhttp://localhost)は通常のWebサーバーとは違い、ローカルサーバーと呼ばれるものです。
ローカルサーバーにアクセスできるのは、そのサーバーを立ち上げているデバイスのみです。同じWi-Fiに接続していても、PCで立ち上げているローカルサーバーにスマホからアクセスすると、アクセスできない旨の表示がされます。

補足②

localhostのIPアドレスは通常127.0.0.1なので、http://127.0.0.1(またはhttp://127.0.0.1:8888)としてもアクセス可能です。

設定を変更する

このままでもMac上でローカルサーバーとして利用するにはじゅうぶんですが、すこし不便な面もあるので、設定を変更します。変更するのは主に以下の3つです。

  • MAMPそのものの設定
  • Webサーバー(Apache)の環境設定
  • PHPの環境設定

MAMPの設定を変更する

MAMP画面の左上「Preferences(歯車アイコン)」をクリックしてMAMPの設定画面を開きます。

「General」タブではMAMPの挙動を設定できます。

  • MAMP起動時にWebサーバーを立ち上げるか
  • アップデートをチェックするか
  • Webサーバー立ち上げ時、自動的にWebStartページを表示するか
  • MAMP終了時にWebサーバーを終了させるか

MAMP説明画像3

「Ports」タブではWebサーバーやMySQL(DB / データベース)サーバーのポート番号を指定できます。
「80 & 3306」のボタンをクリックしてApache(Nginx)のポートを80、MySQLのポートを3306にしておくと、http://localhostでアクセスできるようになるのでおすすめです。

なお、MAMPの最初の画面で利用するPHPのバージョンを切り替えた場合は、再度設定が必要です。

MAMP説明画像4

「Server」タブでは利用するMySQLのバージョンやWebの公開領域であるドキュメントルートを変更できます。

MAMP説明画像5

MySQLを利用しない場合やWordPressをちょっと動かしているだけであればMySQLのバージョンはそこまで気にしなくてもいいですが、気になるようであればレンタルサーバーのバージョンに近いもので合わせておくとよいです。

ドキュメントルートは初期では/Applications/MAMP/htdocsですが、ここで指定した任意のフォルダがドキュメントルートになります。
たとえばデスクトップ上の「test」フォルダを指定すると、http://localhost/(あるいはhttp://localhost/:8888)でアクセスした際には「test」フォルダの中にあるファイルなどが表示されます。

Webサーバー(Apache)の環境設定

留意事項

MAMPではWebサーバーにNginxも利用できますが、本記事ではApacheを利用する前提で解説しています。

Webサーバー(Apache)の環境設定ファイルを編集します。Apacheの設定ファイルであるhttpd.confは以下の場所にあります。編集する際はかならずバックアップをとってください。

zsh
/Applications/MAMP/conf/apache/httpd.conf

MAMP用に調整はされていますが、通常のWebサーバーで利用しているApacheのhttpd.confと同等のものです。
httpd.confはテキストファイルなので、VS Codeなどテキストエディタで編集できます。httpd.confファイルを編集・保存後はいったんMAMPを終了し、ふたたび起動させることで設定が反映されます。

以下は最低限の編集項目を解説しています。

.htaccessを有効化する

ルートディレクトリ内で.htaccessを利用できるように設定します。
274行目あたり、以下の記述部分のAllowOverride NoneAllowOverride Allに変更します。

apache
Options Indexes FollowSymLinks
AllowOverride None



Options Indexes FollowSymLinks
AllowOverride All

.htaccessファイルはWordPressを利用する場合、必須です。

WordPressを利用する場合

ローカル環境でWordPressを動かす場合は、mod_rewriteモジュールを有効化する必要があります。
70行目あたりからLoadModuleではじまるものがいくつか記述されているので、#LoadModule rewrite_module modules/mod_rewrite.soと書かれている行を探し、先頭の#(コメントアウトの記述)を削除してモジュールを有効化します。

apache
#LoadModule rewrite_module modules/mod_rewrite.so



LoadModule rewrite_module modules/mod_rewrite.so

てがろぐなどCGIを利用する場合

ローカル環境でてがろぐなどCGIスクリプトを動かす場合も、モジュールを有効化する必要があります。
同じく70行目あたりからLoadModuleの記述で#LoadModule cgid_module modules/mod_cgid.soと書かれている行先頭の#を削除してモジュールを有効化します。

apache
#LoadModule cgid_module modules/mod_cgid.so



LoadModule cgid_module modules/mod_cgid.so

htmlファイル内でPHPを記述して実行する場合

通常htmlファイル内にPHPの記述をした場合、その記述内容は無視されますが、以下のように修正することでhtmlファイルでPHPを実行することが可能になります。
188行目あたり(LoadModuleの記述のすぐあと)、AddType application/x-httpd-php .php .phtmlの記述をコメントアウトしてAddHandlerの記述を追加します。

apache
AddType application/x-httpd-php .php .phtml



#AddType application/x-httpd-php .php .phtml
AddHandler php-fastcgi .php .phtml .html .htm

補足

MAMPの場合、上記のAddType application/x-httpd-php.html.htmを追加すると、Webサーバーの表示が真っ白になったり、表示ファイルがダウンロードされたりしてしまいます。これはMAMPのPHPがCGI版(FastCGI版)と呼ばれる環境で動いているためです。

検索するとAddType application/x-httpd-php.html.htmを追加する記事が結構出てくるので、過去のバージョンではPHPはモジュール版で動いていたのかもしれません。

レンタルサーバーではサーバーによって環境や仕様が違うため、利用しているサーバーのマニュアルなどをご確認ください。

PHPの環境設定

利用するPHPのバージョンごとにphp.iniファイルを修正します。php.iniは以下の場所にあります。編集する際はかならずバックアップをとってください。

zsh
/Applications/MAMP/bin/php/php[version]/conf/php.ini

php.iniもテキストファイルなので、VS Codeなどテキストエディタで編集できます。php.iniファイルを編集・保存後はいったんMAMPを終了し、ふたたび起動させることで設定が反映されます。

以下は最低限の編集項目を解説しています。

タイムゾーンの設定

946行目あたり以下の箇所を探し、タイムゾーンに日本のもの(date.timezone = "Asia/Tokyo")を追加します。;はコメントアウトの記述です。

ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone = "Europe/Berlin"
date.timezone = "Asia/Tokyo"

これを設定しておかないと、PHPプログラムでの日時表示が日本時間のものとずれてしまいます。

日本語などマルチバイト文字を扱う設定

日本語など、マルチバイト文字を扱うための設定を行います。
1632行目あたり、;mbstring.language = Japaneseのコメントアウトを外します。

ini
;mbstring.language = Japanese



mbstring.language = Japanese

補足

mbstring.language = Japaneseはマルチバイト文字で扱うデフォルトの言語を日本語(Japanese)とする設定ですが、だからといって中国語や韓国語など、他のマルチバイト文字が扱えなくなるということではありません。

1680行目あたり、;mbstring.detect_order = autoのコメントアウトを外して、autoの値を書き換えます。値は文字コードの種類です。

ini
;mbstring.detect_order = auto



mbstring.detect_order = "UTF-8,SJIS,EUC-JP,JIS,ASCII"

アップロード時の容量設定

phpMyAdminでのDB(データベース)ファイルやWordPressのメディアファイルなど、ファイルをアップロードするときの最大アップロード容量を変更します。
デフォルトのアップロード容量はかなり少ないので、ローカルの環境であれば多少多めに設定しておいてもよいと思います。

432行目あたり、memory_limitの数値を変更します(以降の数値は一例です)

ini
memory_limit = 128M



memory_limit = 512M

705行目あたり、post_max_sizeの数値を変更します。

ini
post_max_size = 8M



post_max_size = 300M

859行目あたり、upload_max_filesizeの数値を変更します。この値がアップロード容量の最大サイズになります。

ini
upload_max_filesize = 32M



upload_max_filesize = 300M

memory_limit post_max_size upload_max_filesizeの値は任意の数値で構いませんが(あまりにも桁が多くなりすぎると負荷がかかります)、この3つの数値は以下の関係になるように設定してください。

zsh
memory_limit > post_max_size > upload_max_filesize

設定については以上です。

MAMPのアップデートについての留意事項

MAMPのアップデートは、インストール時と同様に公式サイトからzipファイルをダウンロードしてインストールします。
インストールすると古いMAMPはフォルダがリネームされ、アプリケーションフォルダに残るので、インストールしたMAMPに不具合があれば、この古いフォルダを「MAMP」にリネームすることで以前の状態に戻せます。不要であれば古いMAMPフォルダは削除して問題ありません。

インストールした新しいMAMPにhttpd.confphp.iniのファイルは引き継がれないので、また新たに設定を編集する必要があります。設定などが変更になっている可能性があるため、古いMAMPの該当ファイルの上書きはおすすめしません(Webサーバーが起動しないなど動作不具合を起こす可能性が高いです)

MAMP PROも新しくインストールされるので、不要な場合は改めてアンインストールする必要があります。

MAMP PROをアンインストールする

最後に、MAMP PROをアンインストールする方法について解説しています。

1. MAMP PROを起動する

いったんMAMP PROを起動します。起動すると以下の画面が表示されるので、「Start Trial」を選択します。

MAMP PROアンインストール説明画面

2. メニューバーからアンインストールを選択する

メニューバーの「MAMP PRO」>「Uninstall MAMP PRO...」を選択します。

MAMP PROアンインストール説明画面2

アンインストーラーが表示されるので、「Uninstall」を クリックしてMAMP PROをアンインストールします。


本記事の解説は以上です。