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の画面です。
右上の「Start」をクリックするとサーバーが起動します。起動時にPCのログインパスワードを求められた場合は、ログインパスワードを入力してOKボタンを押下します。
アイコンが緑色で「Stop」の表示になったら、その左側の「WebStart(飛行機アイコン)」がクリックできるようになります。クリックするとブラウザが立ち上がり、MAMPのスタート画面が表示されます(初期状態では勝手にブラウザが立ち上がるかと思います)
画面が表示されていれば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サーバーを終了させるか
「Ports」タブではWebサーバーやMySQL(DB / データベース)サーバーのポート番号を指定できます。
「80 & 3306」のボタンをクリックしてApache(Nginx)のポートを80
、MySQLのポートを3306
にしておくと、http://localhost
でアクセスできるようになるのでおすすめです。
なお、MAMPの最初の画面で利用するPHPのバージョンを切り替えた場合は、再度設定が必要です。
「Server」タブでは利用するMySQLのバージョンやWebの公開領域であるドキュメントルートを変更できます。
MySQLを利用しない場合やWordPressをちょっと動かしているだけであればMySQLのバージョンはそこまで気にしなくてもいいですが、気になるようであればレンタルサーバーのバージョンに近いもので合わせておくとよいです。
ドキュメントルートは初期では/Applications/MAMP/htdocs
ですが、ここで指定した任意のフォルダがドキュメントルートになります。
たとえばデスクトップ上の「test」フォルダを指定すると、http://localhost/
(あるいはhttp://localhost/:8888
)でアクセスした際には「test」フォルダの中にあるファイルなどが表示されます。
Webサーバー(Apache)の環境設定
留意事項
MAMPではWebサーバーにNginxも利用できますが、本記事ではApacheを利用する前提で解説しています。
Webサーバー(Apache)の環境設定ファイルを編集します。Apacheの設定ファイルであるhttpd.conf
は以下の場所にあります。編集する際はかならずバックアップをとってください。
/Applications/MAMP/conf/apache/httpd.conf
MAMP用に調整はされていますが、通常のWebサーバーで利用しているApacheのhttpd.conf
と同等のものです。httpd.conf
はテキストファイルなので、VS Codeなどテキストエディタで編集できます。httpd.conf
ファイルを編集・保存後はいったんMAMPを終了し、ふたたび起動させることで設定が反映されます。
以下は最低限の編集項目を解説しています。
.htaccessを有効化する
ルートディレクトリ内で.htaccess
を利用できるように設定します。
274行目あたり、以下の記述部分のAllowOverride None
をAllowOverride All
に変更します。
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
と書かれている行を探し、先頭の#
(コメントアウトの記述)を削除してモジュールを有効化します。
#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
と書かれている行先頭の#
を削除してモジュールを有効化します。
#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
の記述を追加します。
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
は以下の場所にあります。編集する際はかならずバックアップをとってください。
/Applications/MAMP/bin/php/php[version]/conf/php.ini
php.ini
もテキストファイルなので、VS Codeなどテキストエディタで編集できます。php.ini
ファイルを編集・保存後はいったんMAMPを終了し、ふたたび起動させることで設定が反映されます。
以下は最低限の編集項目を解説しています。
タイムゾーンの設定
946行目あたり以下の箇所を探し、タイムゾーンに日本のもの(date.timezone = "Asia/Tokyo"
)を追加します。;
はコメントアウトの記述です。
[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
のコメントアウトを外します。
;mbstring.language = Japanese
↓
mbstring.language = Japanese
補足
mbstring.language = Japanese
はマルチバイト文字で扱うデフォルトの言語を日本語(Japanese)とする設定ですが、だからといって中国語や韓国語など、他のマルチバイト文字が扱えなくなるということではありません。
1680行目あたり、;mbstring.detect_order = auto
のコメントアウトを外して、auto
の値を書き換えます。値は文字コードの種類です。
;mbstring.detect_order = auto
↓
mbstring.detect_order = "UTF-8,SJIS,EUC-JP,JIS,ASCII"
アップロード時の容量設定
phpMyAdminでのDB(データベース)ファイルやWordPressのメディアファイルなど、ファイルをアップロードするときの最大アップロード容量を変更します。
デフォルトのアップロード容量はかなり少ないので、ローカルの環境であれば多少多めに設定しておいてもよいと思います。
432行目あたり、memory_limit
の数値を変更します(以降の数値は一例です)
memory_limit = 128M
↓
memory_limit = 512M
705行目あたり、post_max_size
の数値を変更します。
post_max_size = 8M
↓
post_max_size = 300M
859行目あたり、upload_max_filesize
の数値を変更します。この値がアップロード容量の最大サイズになります。
upload_max_filesize = 32M
↓
upload_max_filesize = 300M
memory_limit
post_max_size
upload_max_filesize
の値は任意の数値で構いませんが(あまりにも桁が多くなりすぎると負荷がかかります)、この3つの数値は以下の関係になるように設定してください。
memory_limit > post_max_size > upload_max_filesize
設定については以上です。
MAMPのアップデートについての留意事項
MAMPのアップデートは、インストール時と同様に公式サイトからzipファイルをダウンロードしてインストールします。
インストールすると古いMAMPはフォルダがリネームされ、アプリケーションフォルダに残るので、インストールしたMAMPに不具合があれば、この古いフォルダを「MAMP」にリネームすることで以前の状態に戻せます。不要であれば古いMAMPフォルダは削除して問題ありません。
インストールした新しいMAMPにhttpd.conf
やphp.ini
のファイルは引き継がれないので、また新たに設定を編集する必要があります。設定などが変更になっている可能性があるため、古いMAMPの該当ファイルの上書きはおすすめしません(Webサーバーが起動しないなど動作不具合を起こす可能性が高いです)
MAMP PROも新しくインストールされるので、不要な場合は改めてアンインストールする必要があります。
MAMP PROをアンインストールする
最後に、MAMP PROをアンインストールする方法について解説しています。
1. MAMP PROを起動する
いったんMAMP PROを起動します。起動すると以下の画面が表示されるので、「Start Trial」を選択します。
2. メニューバーからアンインストールを選択する
メニューバーの「MAMP PRO」>「Uninstall MAMP PRO...」を選択します。
アンインストーラーが表示されるので、「Uninstall」を クリックしてMAMP PROをアンインストールします。
本記事の解説は以上です。