MAC OS Xの開発環境(Apache)の設定する方法

こんにちは、ねづ(nzakr)です。

以前、自分のPCをwindowsからmacに以降したのですが、
Macでも開発環境も同様につくりました。WindowsだとXAMPPを使ってましたが、Macだとそういったアプリケーションを使わずとも設定できます。

そこで、apacheの基本的な初期設定からphp使用可能にするまでの過程を備忘録がてらメモしてみました。

前置き

作業環境

本記事執筆時はmac book Proの13 inchです。
OSは最新の10.13(High Sierra)でも同様に設定できます。

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

ちなみに、よく使うターミナルのコマンドは下記記事にまとめました。

apacheのバージョンについて

apacheのバージョンは2.4系です。
以前は2.2系だったのですが、OS10.10のYosemiteから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系になります。一番新しいやつですね。

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です。

それでは、さっそくhttp.confを編集していきましょう!

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

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

Listen 80
↓
#Listen 80

phpを有効にする

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

#LoadModule php7_module libexec/apache2/libphp7.so
↓
LoadModule php7_module libexec/apache2/libphp7.so

※ OSのバージョンが古い場合
PHPのバージョンが7になっていないので、その場合は、以下のような記述になります。同じようにコメントアウトを解除(#を消す)すればOKです。

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

mod_rewriteを有効にする

mod_rewriteを有効にします。
mod_rewriteはURLを書き換えるときなどに使う仕組みです。
ローカル環境にWordPressを入れる場合などに使うので、有効にしておきます。

#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
↓
LoadModule rewrite_module libexec/apache2/mod_rewrite.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

1. 記述をすべて初期化する

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

2. ポートの設定

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

Listen 80

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

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

#<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を実行します。
下記コマンドを実行して下さい。そうするとapacheが起動します。

sudo apachectl start

なお、再起動は以下のコマンドです。

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 / 読み書き」を追加します。

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

プログラミングを効率よく学習するならTECH CAMPがオススメ↓


この記事を書いた人
ねづ
妻と娘(1歳)と3人暮らし。
「旅行」と「筋トレ」をテーマにしてブログを書いてます。

独身時代に海外旅行(主に東南アジア)にハマり、マイル修行も経験。ANA&JAL両方とも上級会員(SFC&JGC)になりSPGアメックス所有して、オトクな旅行を追求。
結婚&子供ができた後は、子連れ旅行しながら、筋トレという新たな趣味に目覚めて、週3〜4でジム通い中。
この記事が面白かったらいいねしよう!
記事のタイトルとURLをコピーするコピーしました!
こちらの記事もどうぞ
こちらの記事もどうぞ

コメントを残す

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

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

運営者 : ねづ

妻と娘(1歳)と3人暮らし。
「旅行」と「筋トレ」をテーマにしたブログです。

独身時代に海外旅行(主に東南アジア)にハマる。ANA&JAL両方とも上級会員(SFC&JGC)になりSPGアメックス所有して、オトクな旅行を追求。
結婚&子供ができた後は、子連れ旅行しながら、筋トレという新たな趣味に目覚めて、週3〜4でジム通い中。

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

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

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