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
Apacheの起動・停止・再起動
起動
$ sudo apachectl start
停止
$ sudo apachectl stop # 即座に停止 $ sudo apachectl -k stop
再起動
$ sudo apachectl restart # 即座に停止して再起動 $ sudo apachectl -k restart
httpd.confでApacheの設定
httpd.conf
をエディタで開き編集します。
httpd.conf
の場所はhomebrewでインストールした場合
/usr/local/etc/httpd
ポートを80に変更
Listen 8080
↓
Listen 80
localhostのルートにするディレクトリを指定
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 controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # # AllowOverride None AllowOverride All # <- Allに変更
mod_rewrite を有効にする
mod_rewrite.so
の読み込みのコメントアウトを解除する
# LoadModule rewrite_module lib/httpd/modules/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 www.example.com:8080
↓
ServerName localhost
httpd-vhosts.conf
を読み込むようにしておく
ヴァーチャルホストの設定ファイルextra/httpd-vhosts.conf
を読み込むようにコメントアウトを外します
# Virtual hosts # Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
↓
# Virtual hosts
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf
※ httpd-vhosts.conf
にデフォルトでサンプルが入っていて、そのままだとApache起動時に指定しているフォルダが無いと出てくるので、httpd-vhosts.conf
無いのサンプルの設定は削除またはコメントアウトしておきます。
設定したlocalhostが動作しているか確認
ルートに指定したディレクトリに適当なindex.html
を作成して、apacheを起動
$ sudo apachectl start
http://localhostにアクセスして作成したindex.html
の内容が表示されていればOK
確認ができたらApacheを停止しておきます
$ sudo apachectl stop
ApacheサーバーでPHPを使えるようにする
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/
になるようです。
PHPを有効にする
httpd.conf
の下記部分を編集・追記
<IfModule dir_module> DirectoryIndex index.html </IfModule>
↓
<IfModule dir_module> # `/`でアクセスした時にindex.phpも表示するようにする 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>
でも動作するようなのですが、違いがいまいち解っていませんいません...
ApacheサーバーでPHPが動作するか確認
DocumentRoot
で指定したルート下にinfo.php
ファイルを作成します。(ファイル名はテキトーでOK)
info.php <?php phpinfo(); ?>
Apacheを起動
$ sudo apachectl start
http://localhost/info.php
にアクセスしてphpbrewでインストールしたPHPの情報が表示されていればOK
[参考]
- macOS 10.14 Mojave Apache Setup: Multiple PHP Versions | Grav
- Apache httpd を macOS に Homebrew でインストールする手順 | WEB ARCH LABO
- phpbrew memo - Qiita
- Homebrew で Apache, PHP, MySQL, Composer をインストールして Yii Framework を動かすところまで - Qiita
- MacOS X Yosemite (10.10) HomebrewでApache&PHPの環境設定とlocalhostの設定にハマったのメモ - かもメモ
- Mac Yosemite Apache2.4 でローカルホストが403になるとき - かもメモ
Apache - apacheの起動,停止,再起動に関するまとめ - Qiita
![ハセガワ 1/48 陸上自衛隊 AH-64D アパッチロングボウ プラモデル PT42 ハセガワ 1/48 陸上自衛隊 AH-64D アパッチロングボウ プラモデル PT42](https://images-fe.ssl-images-amazon.com/images/I/41siBLDMxiL._SL160_.jpg)
ハセガワ 1/48 陸上自衛隊 AH-64D アパッチロングボウ プラモデル PT42
- 出版社/メーカー: ハセガワ
- メディア: おもちゃ&ホビー
- クリック: 8回
- この商品を含むブログを見る