MacにWebサーバ構築(MAMP編)

MacにMAMPをインストールして、Webサーバ・MySQL(MariaDB)・PHPが動作する環境を作ろう。

ローカル環境のアプリでWebサーバを作る

Webページを作ったり、PHPでプログラミングした時の動作確認をするのに、サーバを建てたりレンタルサーバを使わず、パソコンにパーソナルWebサーバ構築とWebアプリケーションが動作する環境を実現できるアプリを紹介します。

ここではMacにMAMPというアプリをインストールして設定する方法を掲載します。その他WindowsではXAMMPというアプリを紹介しているので、そちらも参考にしてください。

MAMPとは

MAMPはMacintosh、Apache、MySQL(MariaDB)、PHPの頭文字を取ったもので、MacでApache、MySQL(MariaDB)、PHPが動作できるようにするアプリです。今ではWindows版もあり、WebサーバもNginxが選択できるようになっています。ここではWebサーバはデフォルトのApacheを使って設定を行います。

MAMPインストール

公式サイト からMac版のpkgファイルをダウンロードして実行します。あとは画面に従って進めていきます。(v4.2のインストール)

インストールが完了して最初にMAMPを起動すると、警告画面が表示されます。

ここでは「Check for ……」のチェックを外して、左の「Launch MAMP」ボタンを押してMAMPを起動します。

MAMPを起動すると以下の画面が表示されます。

「サーバを起動」をクリックするとApacheとMySQLを開始します。MAMP起動時にファイアーウォールが有効になっていると、「”mysqld”へのネットワーク受信接続を許可しますか?」というメッセージが表示されます。この場合はMySQLを使用するために「許可」を選択してください。(*MAMPインストール後にファイアーウォールを有効にした場合も同じメッセージが表示されます。)

MAMPのセキュリティ対策

インストールするだけでWebサーバが動作する状態になっているのですが、その前にいくつかセキュリティ対策のための設定をします。デフォルトのままWebサーバを動作させると、他のパソコンからもアクセスできる設定になっています。それは少々危険ですので、MAMPのインストールしているMacからのみアクセスできるように設定を変更します。

「/Applications/MAMP/conf/apache/httpd.conf」ファイルをエディタで開いて編集します。MAMPはListen設定による特定アドレスからのアクセス制限の設定ができないので、<Directory>ディレクティブによるアクセス制限を設定します。<Directory “/Applications/MAMP/htdocs”>を検索して設定内容を見ます。Webルートになっている「htdocs」フォルダのアクセス制御をここで指定します。デフォルトでは以下のように全てのアクセスを許可する設定となっています。

<Directory "/Applications/MAMP/htdocs">
# ~~~
・
・
# ~~~
Order allow,deny
Allow from all

これをコメントアウトして以下のように設定します。

<Directory "/Applications/MAMP/htdocs">
# ~~~
・
・
# ~~~
# Order allow,deny
# Allow from all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from localhost

これで自身のMacからのみアクセスできるようになりました。httpd.conf内にDirectoryディレクティブはhtdocsフォルダ以外にもいくつか設定されています。例えばphpMyAdminフォルダにも設定があるので、デフォルトのままだとMySQLの変更が他のパソコンからできてしまいます。他のDirectoryディレクティブも上記と同じ設定をしておきましょう。

データベースのパスワード変更

MAMPインストール直後のデフォルトだとデータベースにアクセスするパスワードが以下の設定となっています。

このままだとあまりよろしくないので、パスワードを変更します。

MAMPのサーバを起動して画面の「Open WebStart page」をクリックするとブラウザにMAMPのスタートページが表示されます。

スタートページの画面上にあるメニューから「ツール」-「phpMyAdmin」を選択してphpMyAdmin画面を表示します。

画面の「ユーザ」タブを選択して、ユーザ名:root、Host name:localhostの「Edit privileges」をクリックします。

画面上部の「パスワードを変更する」をクリックします。

変更するパスワードを入力し、右下の実行ボタンを押して変更します。

変更後にMAMPを一旦終了して、再起動後にphpMyAdminを再び起動しようとすると、以下のエラーメッセージがでます。

このエラーを消すために、phpMyAdminの設定ファイルに先程変更したパスワードを記述します。「/Applications/MAMP/bin/phpMyAdmin/config.inc.php」の設定ファイルをエディタで開いてください。以下の箇所を新しいパスワードに変更してください。

$cfg['Servers'][$i]['password'] = 'newpassword';

MAMPを再起動してphpMyAdminを起動すると、エラーなくphpMyAdminの画面が表示されます。

WebとSQLの接続ポートを変更

通常Webサーバへの接続は80ポートを使用します。SQLデータベースへは3306ポートを使用します。MAMPインストール時のデフォルトはWebが8888ポート、SQLが8889ポートになっています。なのでブラウザへのアクセスは「http://localhost:8888」とポート番号を明記する必要があります。SQLへ接続するものもポート番号を指定する必要があります。これは少し不便なので、MAMPの設定を通常の80ポート・3306ポートへ変更します。MAMP画面の「Preference…」をクリックして、設定画面を表示します。Portsタブを選択し設定を変更するのですが、この画面にある「Set Web & MySQL ports to 80 & 3306」というボタンを押すと一気に変更できます。

MAMPのインストールと各設定は以上です。