ApacheでPHPを表示する (Mac OS X El Capitan)

ひょんなことからPHPファイルを編集することとなった. どこかのWebサーバへPHPファイルをアップロードして編集/閲覧すれば済む話しだが,ローカルな環境にサーバがあればそちらを使う方が利便性が高い. そこで今回はMacに元々入っているWebサーバ"Apache"を立ち上げる. システム環境設定からWeb共有の項目が無くなってからローカルサーバを立ち上げる機会に恵まれなかったため,今回は以下2つのサイトを参考に作業を進めた. 前者はApacheサーバ立ち上げに関して,後者はPHPファイルの閲覧時に遭遇した警告の修正に関して記してある.
注意: OS Xのメジャーバージョン数に依って編集項目が少し違うようだった(詳しくはSetting up a local web server on OS Xを参照). ここではOS X El Capitanを対象にしている.

Apacheを立ち上げる

まずはPHPを動作させるため,Xcodeをインストールする. インストールが完了したらホームディレクトリ下にSitesというフォルダを作成する. mkdir ~/Sites 以後の設定により,このフォルダ内のPHPファイルを閲覧できるようになる. では,Apacheの設定ファイルを編集して行こう. sudo nano /etc/apache2/httpd.conf 上のコマンドで設定ファイルを開くことが出来る(私はnanoが好きなのでnanoを使います). 以下の行を見つけ,それぞれの先頭にある#マークを削除(コメントアウト)する. これでその行の設定が有効化される.

httpd.conf

...
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf
...
El Capitanでは以上3つの設定を有効化(コメントアウト)すれば良い. Ctrlキーを押しながらxで編集を終了し,yを押下した後にReturnで保存出来る. 続いてホームディレクトリ下のフォルダを閲覧出来るよう設定する. sudo nano /private/etc/apache2/extra/httpd-userdir.conf 以下の行を見つけ,同様にコメントアウトする.

httpd-userdir.conf

...
Include /private/etc/apache2/users/*.conf
...
編集を終えたらCtrl+x,y,Returnで保存. 次にユーザ毎の設定ファイルを作成する. sudo nano /etc/apache2/users/ユーザ名.conf ユーザ名の部分はホームディレクトリの名前に合わせる.

ユーザ名.conf

<Directory "/Users/ユーザ名/Sites/">
  AllowOverride All
  Options Indexes MultiViews
  Options +FollowSymLinks
  Require all granted
</Directory>
以上の設定を入力したら保存しよう. 以上で設定は終わり. 次のコマンドでApacheを起動させよう. sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist さて,Webブラウザを開いて"http://localhost/"へ移動しよう. "It works!"ならばApacheは正常に立ち上がっている. もしその他の表示ならば設定をもう一度見直すか,Setting up a local web server on OS Xで詳細情報を得るか,もっと信頼出来る他のリソースを漁ってみよう.

メモ

このhttp://localhost/で表示されるファイルは"/Library/WebServer/Documents"内にあるindex.html.enというファイル. 中身は次の通り. <html><body><h1>It Works!</h1></body></html> 他にも"Powered by Mac OS X"というGIFファイルが2つある. もしindex.html.enファイルが見つからなかったら,上の内容で同名のファイルを作成しておこう.

PHPファイルを閲覧する

Sitesフォルダ下にお試しのPHPファイルを作成しよう. echo "<?php echo phpinfo(); ?>" > ~/Sites/index.php 上のコマンドでPHPの詳細情報を表示するPHPファイルをSitesフォルダ下に作成できる. Webブラウザで"http://localhost/~ユーザ名"へアクセスしてみよう. ユーザ名の部分はもちろんホームディレクトリの名前に合わせる. 下のように表示されればPHPは正常に動作している.
Sitesフォルダ下にindex.phpという名前でPHPファイルを置けば"http://localhost/~ユーザ名"でそのPHPファイルを閲覧出来る. 他のファイルは"http://localhost/~ユーザ名/ファイル名"で閲覧出来る.

PHPのタイムゾーンを設定する

いま私が編集しているPHPファイルには別ファイルの更新日時を表示する記述がある.

index.php

...
echo date("M d, Y", filemtime($filename))
...
立ち上げたApacheで閲覧したところ,この部分に次のような警告文が表示されてしまった. It is not safe to rely on the system's timezone settings. PHPのタイムゾーン設定が正しく行われていないために起こるようだった(参考元:[PHP]php.iniのtimezoneを設定する). ここではその設定を行う.
まず,PHPの構成ファイルを用意する. sudo cp /etc/php.ini.default /etc/php.ini php.iniというのがPHPの構成ファイルにあたる. sudo nano /etc/php.ini 構成ファイルを開いたらdate.timezoneという記述を見つける.

/etc/php.ini

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"
そこにAsia/Tokyoと追記すればタイムゾーン設定は完了. 構成ファイルを保存したら次のコマンドでApacheを再起動させよう. sudo apachectl restart 該当PHPファイルを閲覧し直すと警告文は消え,望む結果を得られた.
6396526836135974163 http://www.storange.jp/2016/01/apachephp-os-x-el-capitan.html http://www.storange.jp/2016/01/apachephp-os-x-el-capitan.html ApacheでPHPを表示する (Mac OS X El Capitan) 2016-01-09T14:29:00+09:00 http://www.storange.jp/2016/01/apachephp-os-x-el-capitan.html Hideyuki Tabata 200 200 72 72