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_core、mod_authz_host、mod_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_hostとmod_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 モジュールがロードされる。