ykiraの開発ブログ

Web開発の話とかとか。スマホゲームのサーバサイド開発やってます!!

Mac OS X YosemiteにPHPの開発環境を構築してみる(2) Apache編

f:id:ykira:20150616151440p:plain こんにちわ。ykiraです。
夏に向けてダイエット中ですが、意志が弱すぎて食べちゃってるダメ男です。

さて、続き行きましょう。

Apacheのインストールと設定

Webサーバの代名詞とも言えるソフトですね。
Nginxとかも流行ってますが、とりあえず情報が多いコレ使っておけば間違いないと思います。

ちなみに、インストールするバージョンは2.2系です。
2.4系は設定ファイル(httpd.conf)の書き方が変わっているので、よくわかりません。勉強不足です^^;
そのうち、2.4系の設定も調べてこのブログに書きたいと思います。

Apacheのインストール

では、Homebrewでhttpdを探してみましょう。

$ brew search httpd
darkhttpd            homebrew/apache/httpd24      lighttpd
homebrew/apache/httpd22      libmicrohttpd        mighttpd2

今回のお目当てはhomebrew/apache/httpd22ですね。

ちなみに、Homebrewではパッケージのことをformulaと呼ぶみたいです。
formulaはビルド手順が書かれたスクリプトのことで、Homebrewはこれを実行することで、ソフトをインストールしていくそうです。

さあ、Let's インストール!

$ brew install httpd22
==> Installing httpd22 from homebrew/homebrew-apache
==> Tapping homebrew/dupes
 〜省略〜
==> ./configure --enable-layout=Homebrew --enable-mods-shared=all --enable-unique-id --enable-ssl --enable-dav --enabl
==> make
==> make install
==> Caveats
To have launchd start homebrew/apache/httpd22 at login:
    ln -sfv /usr/local/opt/httpd22/*.plist ~/Library/LaunchAgents
Then to load homebrew/apache/httpd22 now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.httpd22.plist
==> Summary
🍺  /usr/local/Cellar/httpd22/2.2.29: 153 files, 3.1M, built in 81 seconds

無事入りましたー
最後の方で、./configureしてmakeしてるのは手でインストールした場合には見慣れたコマンドですね。
依存パッケージも自動でインストールされるので、何度もコマンド叩く必要がなくて楽ちんだわー

インストールにあたって色々なサイトを見たのですが、下記のようにリポジトリの追加が必要と書かれているところが多かったです。

$ brew tap homebrew/dupes
$ brew tap homebrew/apache

ただ、今回とくにリポジトリの追加はせずに行ってみたところ、私の環境では問題なくインストールできました。
ログを見る限り、別のリポジトリに依存関係がある場合に、それを自動で追加してくれているみたいです。Homebrewのバージョンアップか何かで変わったんですかね?
どちらにしても、面倒くさがりな私にはとてもありがたいです。

こんなログが出てました。
==> Tapping homebrew/dupes

インストールが完了したので、念のため確認しときましょう。

$ which httpd
/usr/local/bin/httpd
$ httpd -v
Server version: Apache/2.2.29 (Unix)
Server built:   Jun 15 2015 23:09:19

バッチリですねー

Apacheの設定

設定ファイルhttpd.confをいじっていきましょう。
と言っても、あくまで開発環境なのでバーチャルホストを設定するくらいでざっくりと。
設定ファイルは私の環境では/usr/local/etc/apache2/2.2/にありました。

$ cd /usr/local/etc/apache2/2.2/
$ ls
extra       httpd.conf  magic       mime.types  original

ちなみに、originalというディレクトリにも全く同じhttpd.confが入っています。
設定ファイルをいじってApacheが起動しなくなったときなどに使うバックアップファイルかなと思います。

httpd.confの設定

それではApacheの設定ファイルhttpd.confを見て行きます。

41行目、デフォルトは8080番ポートみたいですね。面倒な人は、80番ポートに変えてもいいと思います。今回はこのまま。

Listen 8080

160行目、サーバ名をこんな感じで設定しておきます。設定しないとapache起動のたびに、メッセージがでるのでウザいです。

#ServerName www.example.com:8080
 ↓
ServerName localhost:8080

228行目付近、PHPファイルが実行されるようにしたいので、index.phpを追記しておきます。

<IfModule dir_module>
    DirectoryIndex index.html
      ↓
    DirectoryIndex index.php index.html
</IfModule>

395行目あたりにPHPファイル用のMIMEタイプを追記しておきます。

AddType application/x-httpd-php .php

458行目のバーチャルホスト設定ファイル読み込みのコメントアウトを削除します。

# Virtual hosts
#Include /usr/local/etc/apache2/2.2/extra/httpd-vhosts.conf
 ↓
Include /usr/local/etc/apache2/2.2/extra/httpd-vhosts.conf

以上で、httpd.confの設定は完了です。
記述が昔とは若干違いますが、いい感じにシンプルになっているということで。

Virtual hostsの設定

バーチャルホストの設定をやっていきます。
extraディレクトリに各種設定ファイルがありました。

$ pwd
/usr/local/etc/apache2/2.2/extra
$ ls
httpd-autoindex.conf        httpd-languages.conf        httpd-ssl.conf
httpd-dav.conf          httpd-manual.conf       httpd-userdir.conf
httpd-default.conf      httpd-mpm.conf          httpd-vhosts.conf
httpd-info.conf         httpd-multilang-errordoc.conf

httpd-vhosts.confの中身は下記のようにしました。
記入例の記載がありますが、すべて削除しましょう。

<VirtualHost *:8080>
    DocumentRoot "/Users/ykira/works/test/htdocs"
    ServerName test.localhost
    ErrorLog "/Users/ykira/works/test/log/error_log"
    CustomLog "/Users/ykira/works/test/log/access_log" common

    <Directory "/Users/ykira/works/test/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

なんの変哲もない設定となります。
ユーザディレクトリにworksというディレクトリを作成して、その中にいれることにしました。 実際にディレクトリがないと怒られるので、ひたすら掘りましょう。

$ mkdir /Users/ykira/works
$ mkdir /Users/ykira/works/test
$ mkdir /Users/ykira/works/test/htdocs
$ mkdir /Users/ykira/works/test/log 

最後に設定に不備がないか確認しておきましょう。

$ apachectl -t
Syntax OK

問題なさそうです!

あとは、test.localhostにブラウザでアクセスした際に、ローカル127.0.0.1を参照してほしいので、hostsファイルの設定も一緒にやっておきます。
/etc/hostsが該当ファイルになりますので、下記を追記しましょう。
ちなみに、管理者権限が必要なのでsudo付けないと編集できませんでした。

127.0.0.1       test.localhost
Apacheの起動

やっとです。 さくっと起動してブラウザで確認しましょう。

その前に、apacheの起動停止コマンドをご紹介。

起動
$ apachectl start
停止
$ apachectl stop
再起動
$ apachectl restart

では、apachectl startして、設定したhttp://test.localhost:8080にブラウザでアクセスしましょう〜

f:id:ykira:20150616150641p:plain

ファイルを何も置いていないので、こんな表示になります。

apacheのインストールと設定はこれで完了です。 またまた長くなったので、次回に続きます。