こんにちは、ねづ(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 / 読み書き」を追加します。
以上で作業は終了です。ガンガン開発していきましょう。