Mac OS X YosemiteにPHPの開発環境を構築してみる(2) Apache編
こんにちわ。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
にブラウザでアクセスしましょう〜
ファイルを何も置いていないので、こんな表示になります。
apacheのインストールと設定はこれで完了です。 またまた長くなったので、次回に続きます。