MAC OS Xの開発環境(Apache)の設定をしてみる

現在、自宅での開発環境をwindowsから徐々にmacに以降しています。
そこで、apacheの基本的な初期設定からphp使用可能にするまで、その過程をメモりました。

【スポンサーリンク】

前置き

作業環境

本記事執筆時はmac book airの13inchで、OSは10.7(Lion)でした。
もちろんLionより新しいOS10.8 Mountain LionやOS10.9 Mavericks、OS10.10 Yosemiteでも同じ方法で設定できます。

作業は基本的にmacのターミナル上で行います。
Finderから設定ファイルへアクセスは初期状態のままだとできません。
「黒い画面嫌い!」って人もそこまで難しくないので、とりあえずやってみるといいかも。
黒い画面に慣れると、いろいろ作業の幅が広がります(たぶん)

apacheのバージョンについて

新しいOSであるyosemiteから、apacheのバージョンが変わりました。
今までのMacだと2.2系、新しいものだと2.4系です。
基本的な書き方は同じですが若干異なる部分があるので、バージョンを確認しておきましょう。
バージョンは下記コマンドで確認できます。

httpd -v

こちらのコマンドをターミナルで実行すると、下記のような結果がでます。

Server version: Apache/2.4.10 (Unix)
Server built:   Jan  1 2015 23:59:59

Apache/2.4.10 (Unix)の部分がバージョンです。
これは2.4系になります。一番新しいやつですね。

2.4系の方向けの変更点も追記しました。

apacheの初期設定の方法

apacheはデフォルトで入っているものを使います。
最近購入したmacなら入っているはずです。自分のも1年以上前の型ですが、入ってました。
ターミナル上でwhichコマンドを入力して確認します。

user% which httpd
⇒ /usr/sbin/httpd

apacheの設定ファイル等は以下に格納されています。

/private/etc/apache2/

今回編集するファイルは上記ディレクトリの以下のファイルです。

/private/etc/apache2/httpd.conf
/private/etc/apache2/extra/httpd-vhost.conf
httpd.conf apacheの基本設定についての記述
vhost-httpd.conf バーチャルホストの設定をまとめて記述

編集ミスをする可能性も考えてバックアップをとっておくといいのですが、
幸いなことに事前に以下のディレクトリにバックアップファイルが用意されています。
もし失敗したら下記ファイルでやり直しましょう。

/private/etc/apache2/original/

httpd.confファイルを編集する

ターミナル上での編集になるため、vi(vim)を使用していきます。

sudo vi /private/etc/apache2/httpd.conf

ざーっとよくわからない文字列が書いてありますが、大半がコメントな上に編集するのは一部です。
viの検索機能「/」と「n」キーを使って、指定範囲を絞ると楽です。
viの使い方については、下記を参考にして下さい。

Mac de UNIX – UNIX入門-viエディタの使い方

apacheの関連ファイルは権限が厳しいので、コマンドの頭に必ず「sudo」で実行します。
コマンド実行時にパスワードを聞かれますが、PCのパスワードを入力すればOKです。

デフォルトのポートを無効にする

ルート、ホストの設定はhttpd-vhost.confにまとめたい(管理する上で楽)ので、
コメントアウトします。

Listen 80
↓
#Listen 80

phpを有効にする

phpを有効にするため、以下のコメントアウトを解除します。

#LoadModule php5_module libexec/apache2/libphp5.so
↓
LoadModule php5_module libexec/apache2/libphp5.so

デフォルトのドキュメントルートを無効にする

こちらもコメントアウトします。

DocumentRoot "/Library/WebServer/Documents"
↓
#DocumentRoot "/Library/WebServer/Documents"

ServerName www.example.com:80 ↓ ServerName localhost:80

ドキュメントルートの設定を最低限にする。

開発環境なので、いろいろな処理ができるよう、下記の記述を書き換えます。

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
↓
<Directory />
Options ExecCGI FollowSymLinks Indexes Includes MultiViews
AllowOverride All
Allow from all
Order allow,deny
</Directory>

また、197〜225行目あたりに同様の記述があるかと思います。
「<Directory “/Library/WebServer/Documents”> 〜 </Directory>」
こちらは /Library/WebServer/Documents のディレクトリだけに対して処理を行っているものになります。上の設定項目の意味がよくわからずそのままコピペしている人は197〜225行目の設定はコメントアウトしてしまいましょう。

.htmlでのSSIを有効にする

続いて、.htmlでのSSIを有効にします。
ここは.shtmlのままでもOKですが、個人的に.shtmlは使わないので。

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
↓
AddType text/html .html
AddOutputFilter INCLUDES .html

httpd-vhost.confの記述を有効にする

httpd-vhost.confを使えるようにします。

#Include /private/etc/apache2/extra/httpd-vhosts.conf
↓
Include /private/etc/apache2/extra/httpd-vhosts.conf

httpd-vhost.confファイルを編集する

つづいて、バーチャルホストの設定です。
まず、該当ファイルを開きます。

sudo vi /private/etc/apache2/extra/httpd-vhosts.conf

記述をすべて初期化する

最初に書いてある記述はあくまでサンプルなので、全て消します。
バックアップファイルもあるので恐れずドーンと削除します。

ポートの設定

ポートの設定として、ListenとNameVirtualHostを書きます。

Listen 80
NameVirtualHost *:80

apacheのバージョンが2.4系の場合は「NameVirtualHost *:80」は書かなくてOKです。
書くとエラーが起きるわけではないのですが、warningが出ます。

記述テンプレートを用意する

切り分けに必要な記述はかなり似ているので、
テンプレートを用意して、コピペとちょっとした書き換えでいけるようにします。

#<VirtualHost *80>(port Number)
#DocumentRoot "(対象のディレクトリ)"
#serverName (好きなドメイン名)
#</VirtualHost>

上記がテンプレートになります。テンプレートなので「#」でコメントアウトしています。
こちらをコピーして、以下のように書き換えます。
もちろんコメントアウトも解除します。

#root
<VirtualHost *80>
DocumentRoot "/Library/WebServer/Documents"
serverName localhost
</VirtualHost>

hostsファイルを編集する

serverNameに記述したドメイン名が自分のapacheを指していることを認識させる必要があるので、hostsファイルを編集します。

sudo vi /etc/hosts

行の最後に下記を追加しましょう。

127.0.0.1 localhost

localhostの部分はserverNameに記述したドメイン名になります。
新しくVirtualHostを追加でこのhostsというファイルに書いていきます。

apacheを有効にする。

以上の工程が完了したら、apacheを有効にします。

macの設定画面から以下の通りにします。
「システム環境設定」⇒「共有」⇒「web共有」⇒「web共有を有効にする」をチェック

これでapacheが有効化されました。
もし、「web共有を有効にする」をチェックをつけられない or つけてもすぐOFFになる場合は、
記述にミスがあるので、確認してみましょう。

追記 2013/12/20
OS X 10.8(Mountain Lion)、OS X 10.9(Mavericks‎)の場合は「システム環境設定」の項目の中に「web共有」がありません。そのため、コマンドラインから実行することになります。
下記コマンドを実行して下さい。そうするとapacheが起動します。

sudo apachectl restart

続いて、http-vhost.confに設定したドキュメントルートに、仮でindex.htmlを置きます。
apacheの起動確認のための仮ファイルなので、中身はなんでもよいです。

/Library/Webserber/Documents/index.html

ここまで終えたら、下記URLにアクセスしてみて下さい。

http://localhost/

上手く行っていれば、仮のindex.htmlの内容が表示されると思います。

再度apache上の設定を書き換えたり、vhostでdirectoryを追加した際は、以下のコマンドを叩き再起動するのを忘れずに。

sudo apachectl restart

403 permission errorが返される場合

上記の設定は上手く行ってるのに、403エラーが帰ってくる…
なんてことがあります。自分もそうでした。

この場合、ディレクトリのアクセス権を変更すればいけます。
Finderから上記したドキュメントルートにアクセスします。
コンテキストメニューから「情報を見る」を開き、
「共有とアクセス権」の項目に「everyone / 読み書き」を追加します。

以上で作業は終了です。ガンガン開発していきましょう。

次はmysqlとの連動、phpの実行環境等を整備してLAMP環境にできればと。

この記事を書いた人
ねづ
『NEZU.log』運営管理者。Webエンジニアの傍ら、趣味でこのブログを運営。シェアハウス在住。2015年は海外情報(主にアジア圏)と効率のよい生活の情報発信がテーマ。
この記事が面白かったらいいねしよう!
記事のタイトルとURLをコピーするコピーしました!
こちらの記事もどうぞ
こちらの記事もどうぞ

コメントを残す

コメント※必須
名前※必須
メールアドレス※必須(非公開)

このブログを書いている人

運営者 : ねづ

主にWebの企画、開発の仕事をしています。
海外が好きで、仕事、旅行問わずよく行きます。
フィリピン(セブ)で10週間留学後、現在はカナダ(バンクーバー)に滞在。留学、海外生活や旅行記をこのブログで書いています。

詳しいプロフィールはこちら

LINE@作成しました!お気軽にどうぞ!
友達登録は下記QRコードを読み取ってください
LINE@ QRコード

カテゴリ一覧
キーワードで記事を探す
下記から更新情報を受け取れます!