macOS で簡単ウェブサーバー MAMP

MAMP をインストールすると macOS で Apache (nginx) + MySQL + PHP を利用したウェブサーバーが簡単に構築できます。

設定ファイル

MAMP の設定ファイルは次のフォルダーにあります。

Apache – httpd.conf

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

MySQL – my.cnf

/Applications/MAMP/Library/support-files/my-large.cnf
/Applications/MAMP/Library/support-files/my-medium.cnf
/Applications/MAMP/Library/support-files/my-small.cnf

PHP – php.ini

/Applications/MAMP/conf/phpX.X.X/php.ini

SSL 設定

MAMP Pro では設定で簡単に SSL を導入できますが、無料の MAMP では OpenSSL を使用してマニュアルで設定する必要があります。

秘密鍵

Apache のフォルダーに 2048 bit の公開鍵暗号方式 (RSA) の秘密鍵 (server.key) を OpenSSL のコマンドで作成します。

% cd /Applications/MAMP/conf/apache
% mkdir myssl
% cd myssl
% openssl genrsa 2024 > server.key
Generating RSA private key, 2024 bit long modulus
.............................+++
....................+++
e is 65537 (0x10001)

証明書署名要求

先ほど作成した秘密鍵からサーバーの公開鍵に電子署名を要求するファイル (server.csr) を作成します。コマンドを実行すると、サーバーについて入力を求められます。Common Name でドメイン名を入力します。ローカルで利用する場合は localhost を入力します。その他は、そのまま入力をしないとデフォルト値になります。

% openssl req -new -key server.key > server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:localhost
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:

サーバー証明書

作成した証明書署名要求 (server.csr) を秘密鍵 (server.key) で署名して、サーバー証明書 (server.crt) を作成します。-days オプションで有効期限の日数を指定できます。

% openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt
Signature ok
subject=/CN=localhost
Getting Private key

Apache の設定

MAMP サーバーを停止して、Apache の設定ファイル (httpd.conf) の次の行から # を削除してアンコメントします。

# Secure (SSL/TLS) connections
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

先ほどアンコメントした SSL の設定ファイルの DocumentRoot を /Applications/MAMP/Library/htdocs から希望のディレクトリー (例 : /Applications/MAMP/htdocs) に、ServerName を www.example.com:443 から localhost に変更します。

DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost

二つの設定ファイルを変更後、MAMP サーバーを開始します。