PHPはphpbrewでインストールしました。
Macにデフォルトで入っているapacheを起動しないようにする
$ sudo apacehctl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
homebrewでインストール
以前はhttpd24
という名前だったのが、httpd
に変更になってるっぽい。
$ brew search httpd24
No formula or cask found for "httpd24".
Closed pull requests:
Rename deprecated httpd22/httpd24 to httpd (https://github.com/Homebrew/homebrew-php/pull/4500)
...
$ brew install httpd
起動
$ sudo apachectl start
停止
$ sudo apachectl stop
$ sudo apachectl -k stop
再起動
$ sudo apachectl restart
$ sudo apachectl -k restart
httpd.conf
をエディタで開き編集します。
httpd.conf
の場所はhomebrewでインストールした場合
/usr/local/etc/httpd
ポートを80に変更
Listen 8080
↓
Listen 80
DocumentRoot
とその下にある<Directory>
のパスをルートにしたいディレクトリに変更する。
DocumentRoot "/usr/local/var/www"
<Directory "/usr/local/var/www">
↓
DocumentRoot "/Users/<your_name>/Documents/local"
<Directory "/Users/<your_name>/Documents/local">
.htaccess
とかが使えるようにルートパスを設定した<Directory>
内にあるAllowOverride
をAll
に変更
<Directory "/Users/<your_name>/Documents/local">
AllowOverride All
mod_rewrite.so
の読み込みのコメントアウトを解除する
↓
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
User・Groupの設定
多分権限的なアレ...の筈
User
をPCのユーザー名(/Users/<user_name>/
のパスに出てる名前でたぶんOKっぽい)
Group
をStaff
に変更する
User Sites
Group daemon
↓
User <user_name>
Group Staff
サーバー名をlocalhost
に変更
↓
ServerName localhost
httpd-vhosts.conf
を読み込むようにしておく
ヴァーチャルホストの設定ファイルextra/httpd-vhosts.conf
を読み込むようにコメントアウトを外します
↓
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
※ httpd-vhosts.conf
にデフォルトでサンプルが入っていて、そのままだとApache起動時に指定しているフォルダが無いと出てくるので、httpd-vhosts.conf
無いのサンプルの設定は削除またはコメントアウトしておきます。
ルートに指定したディレクトリに適当なindex.html
を作成して、apacheを起動
$ sudo apachectl start
http://localhostにアクセスして作成したindex.html
の内容が表示されていればOK
確認ができたらApacheを停止しておきます
$ sudo apachectl stop
LoadModule
でphpbrewでインストールしたphp_moduleが読み込む設定になっているか確認
LoadModule php7_module /usr/local/lib/httpd/modules/libphp7.2.9.so
php7_module の読み込み設定がhttpd.conf
に無かった
phpbrewでPHPをインストールする際に+apxs2
を付けてApacheのバリアントをインストールする必要があったようです。(+default
には含まれていなかったようです...)
$ phpbrew install 7.2 +default +mysql +apxs2 +openssl
PHPがビルドされた状態でもう一度インストールコマンドを実行すると追加したバリアントだけインストールされたみたいなのでこれで良しとしました。
インストールが完了すると自動的にhttpd.conf
にLoadModule php7_module 〜
が追記されていました。
/usr/local/lib/httpd/modules/libphp7.2.9.so
phpbrew
だとlibphp.so
のパスは/usr/local/lib/httpd/modules/
になるようです。
httpd.conf
の下記部分を編集・追記
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
↓
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<IfModule php7_module>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
でも<IfModule php7_module> AddType application/x-httpd-php .php </IfModule>
でも動作するようなのですが、違いがいまいち解っていませんいません...
DocumentRoot
で指定したルート下にinfo.php
ファイルを作成します。(ファイル名はテキトーでOK)
info.php
<?php phpinfo(); ?>
Apacheを起動
$ sudo apachectl start
http://localhost/info.php
にアクセスしてphpbrewでインストールしたPHPの情報が表示されていればOK
[参考]
Apache
- apacheの起動,停止,再起動に関するまとめ - Qiita