PHP 入門 | サーバー準備 | Mac OS で PHP を使う

Mac OS には標準で Apache が含まれているため、別途インストールしなくても設定を変更すればすぐに PHP を使用できる。

Apache のバージョンを確認する

Apache と PHP がすでにインストールされていれば、それぞれのバージョンは次のコマンドで確認できる。

$ apachectl -v
$ php -v

これらのコマンドを実行してバージョンが確認できれば、サーバーを起動できる。

Apache を起動する

Apache を起動するコマンドは次のとおりである。

$ sudo apachectl start

Apache を起動するには管理者権限が必要なので、コマンドの先頭に sudo を付ける。上のように入力するとパスワード入力を求められるので、管理者パスワードを入力する。

その他

Apache の停止と再起動は次のとおりである。

$ sudo apachectl stop
$ sudo apachectl restart

Apache の起動を確認する

Apache を起動したあと、ブラウザーで http://localhost または http://127.0.0.1 と入力すると、次のように表示されることを確認できる。

It works!

これは、ブラウザーがデフォルトの index ページを開いたためである。デフォルトの index ページは /Library/WebServer/Documents フォルダーにあり、このフォルダーが標準の DocumentRoot として指定されているためである。

このフォルダーを開くと、index.html.en ファイルがあることを確認できる。

Apache Web サーバー環境を設定する

Apache の基本設定を変更するには、基本となる /etc/apache2/httpd.conf を編集する。

DocumentRoot フォルダーを変更する

先ほど index.html.en ファイルは /Library/WebServer/Documents/ フォルダーにあると説明した。このフォルダーは標準で DocumentRoot として指定されている。

標準の DocumentRoot の場所を変更するには、httpd.conf ファイルを開き、DocumentRoot 部分とそのすぐ下にある Directory 部分を変更する。

...
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
...

なお、httpd.conf ファイルを編集するには管理者権限でファイルを開く必要がある。ただし、DocumentRoot を変更することはあまり推奨されない。したがって、DocumentRoot を変更するよりも userdir を有効にするほうが望ましい。

userdir を有効にするために httpd-userdir.conf を編集する

userdir を有効にするとは、名前から分かるように、ブラウザーで localhost/~username/ のように自分のアカウント名を使った URL を利用できるようにするという意味である。

userdir を有効にするには、/etc/apache2/extra/ フォルダーにある httpd-userdir.conf ファイルを編集する必要がある。

まず該当フォルダーに移動し、次のコマンドでファイルを編集する。

$ sudo vi httpd-userdir.conf

コマンドから分かるように、サーバー設定を変更するときは管理者権限でのみファイルを編集できる。ファイルの内容は次のとおりである。

...省略...

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
      RegisterUserSite customized-users
</IfModule>

まず、このファイルで Include /private/etc/apache2/users/*.conf 行のコメント(#)を外して保存する。

userdir を有効にするために httpd.conf を編集する

/etc/apache2/extra/httpd-userdir.conf には、mod_authz_coremod_authz_hostmod_userdir の 3 つのモジュールが必要だというコメントが次のように書かれている。

# Settings for user home directories
#
# Required module: mod_authz_core, mod_authz_host, mod_userdir

これは httpd.conf ファイルで LoadModule 設定のコメントを外せばよい。

 72 LoadModule authz_host_module libexec/apache2/mod_authz_host.so
 78 LoadModule authz_core_module libexec/apache2/mod_authz_core.so
166 LoadModule userdir_module libexec/apache2/mod_userdir.so
  • 行番号は標準ではそれぞれ 72、78、166 だが、異なる場合もある。
  • Yosemite 以降では、mod_authz_hostmod_authz_core モジュールはすでにコメントが外され、有効になっていることが多い。
  • したがって、多くの場合は mod_userdir モジュール部分だけコメントを外して有効にすればよい。

続いて、httpd-userdir.conf ファイルも include するために、次の行のコメントを外す。

493 Include /private/etc/apache2/extra/httpd-userdir.conf
  • 行番号は標準では 493 だが、異なる場合もある。

userdir を有効にするために {username}.conf ファイルを作成する

Sites ディレクトリへのアクセス方法を指定するため、/private/etc/apache2/users フォルダーに {username}.conf ファイルを作成する。内容は次のとおりである。

  • {username} はユーザーアカウントなので、自分のアカウント名を入れる。
<Directory "/Users/{username}/Sites/">
  Options Indexes MultiViews
  AllowOverride None
  Require all granted
</Directory>

権限設定部分は Apache サーバーのバージョンに合わせて記述する。上の例は 2.4 版に合わせた設定である。

ホームディレクトリに Sites フォルダーを作成する

最後にホームディレクトリへ移動し、Sites フォルダーを作成する。

$ cd ~
$ mkdir Sites

Mac の Finder で確認すると、自動的に Web サイトフォルダーとして認識されることが分かる。

このフォルダーに自分用の index.html ファイルを作成すると、それが最初の画面として表示される。index.html がない場合は、Apache が標準で提供するファイル index が開かれる。

Apache を再起動する

Apache の設定を変更したら、Apache を再起動する必要がある。

$ sudo apachectl restart

これで localhost/~{username} にアクセスすると、Sites フォルダーにある index.html が表示される。

PHP Web サーバー環境を設定する

Apache Web サーバーの設定ファイル(/etc/apache2/httpd.conf)で、PHP 5 モジュールのコメント(#)を外し、Apache を起動すればよい。すでに起動している場合は再起動する。

169 LoadModule php5_module libexec/apache2/libphp5.so

これで PHP 5 モジュールがロードされる。

参考