M4 mac で WordPress の環境を作る

更新日: 公開日: 2025/04

MacBook Air を購入したのだが,いつものように WordPress をローカルで簡単に入れられると思ったら,なかなか面倒だったので備忘録としてまとめておく.

まず,Apache が最初から入っているので,これを使ったらよいと思ったのが間違いだった.
PHP を入れるのは homebrew で入れられるのだが,extension で困ったことになった.
FreeBSD などでは存在している php-extension などという簡単にインストールしてくれるものは存在していないのだ.

Mac で WordPress

困った挾句,PHPBrew なるものを使うことにした.
結論としてはこれが一番簡単にインストール出来るようだ.

以下のサイトが最も参考になった.感謝します.

ただ,問題があって,PHPBrew で PHP を管理するはずなのに,PHP が存在していないとインストールが完了しない.
そして,気にせず,
brew install php
などとして,最新版を入れてしまうとインストールが完了しなくて困ったことになる.
どうも,最新バージョンの PHP では PHPBrew の都合が悪いようなのだ.

Apache は入れ直し

まずは Apache を入れるところから始まる.
これは
brew install httpd
とすれば問題ない.

~/.zshrc の設定

いろいろあって,最終的にこれを追加している.内容は検索して調べてください.

[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
export PATH="/opt/homebrew/sbin:/opt/homebrew/opt/bin:$PATH"
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALL_FROM_API=1

mySQL を入れる

これは Homebrew で簡単.

brew install mysql

php は最新バージョンでないものを入れる

そして,php だがあえて 8.1 を入れてみた.これだと phpbrew が正常に動く.

brew install php@8.1

phpbrew を入れる

その後,必要らしいプログラムをインストールしていく.
基本的には

を見ながらインストールする.
必要なモジュールで使うものをインストールする.

brew install autoconf pkg-config
brew install curl mhash bzip2 oniguruma libzip libxml2 libiconv libxslt

PHP をインストールする前にこれを実行しておく.

phpbrew lookup-prefix homebrew

下で,この apxs2 が重要でこれで apache から参照する php のモジュールがインストールされる.その時に httpd.conf も書き換えられる.
default の中に gd が入っているので不要なはずだが,なぜか指定しないとインストールされない.謎.

phpbrew install 8.3 +default +mysql +gd +apxs2=/opt/homebrew/bin/apxs

現時点では 8.3 は 8.3.19 が最新となっていた.
phpbrew は ~/.phpbrew の下に設定ファイルが置かれる.

もし,zlib も入れたい場合,

phpbrew install 8.3 +default +mysql +gd +apxs2=/opt/homebrew/bin/apxs +zlib="$(brew --prefix zlib)"

で zlib も入れることができる.

下のページを参照

GD で webp などにも対応させたい場合.

phpbrew ext install gd -- --with-jpeg=$(brew --prefix libjpeg) --with-freetype=$(brew --prefix freetype2) --with-webp=$(brew --prefix webp)

下のページ参照

apache の設定

~/web にホームページのファイルをおく場合,
/opt/homebrew/etc/httpd/httpd.conf の変更箇所は以下のようにした.

Listen 80
LoadModule rewrite_module modules/mod_rewrite.so
ServerName localhost
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
<Directory "/Users/ユーザー名/web">
  AddHandler php-script .php .html
  AddType application/x-httpd-php .php .html
</Directory>
Include /Users/ユーザー名/web/conf/*.conf

~/.phpbrew/php/php-8.3.19/etc/apache2/php.ini の変更点は以下ぐらい.

extension=curl
extension=gd
extension=exif
extension=mysqli
extension=openssl
post_max_size = 30M
upload_max_filesize = 30M

以下で apache のデーモンが起動し,ログイン時にも自動起動するように登録される.

brew services start httpd

ただ apache を起動したいだけなら,

brew services run httpd

ローカル環境を SSL 化(HTTPS 化)する

本番のサイトが HTTPS になっている場合,ローカルが HTTP のままだと Cookie の Secure 属性や,混在コンテンツ(Mixed Content)まわりの動作が本番と食い違うことがある.
なので,ローカルも HTTPS でアクセスできるようにしておく.

mkcert を入れる

オレオレ証明書を自分で作ってブラウザに信頼させる方法もあるが,mkcert を使うと手間がかからない.
Homebrew で入る.

brew install mkcert

以下を実行すると,ローカル用の CA が作られて,macOS のキーチェーンに登録される.

mkcert -install

これでこの CA から発行した証明書は,ブラウザから信頼された状態になる.

証明書を作る

test というホスト名(hosts に登録済みのホスト名)でアクセスする場合,以下のように証明書を作る.

mkcert -cert-file test.pem -key-file test-key.pem test

test.pem と test-key.pem が生成されるので,適当な場所に置く.
以下では ~/web/conf/localcert/ に置いたと仮定する.

httpd.conf の確認

/opt/homebrew/etc/httpd/httpd.conf を見て,以下がコメントアウトされていたら外す.(すでに有効になっていることも多い.)

LoadModule ssl_module lib/httpd/modules/mod_ssl.so
LoadModule socache_shmcb_module lib/httpd/modules/mod_socache_shmcb.so
Listen 443

conf の設定を追記

先ほど Include した ~/web/conf/*.conf の中に設定を追記していく.
既存の 80 番の VirtualHost に,443 番へのリダイレクトを足す.

<VirtualHost *:80>
  DocumentRoot "/Users/ユーザー名/web/test/public_html/"
  ServerName test
  Redirect permanent / https://test/
</VirtualHost>

そのすぐ下に,443 番用の VirtualHost を追記する.

<VirtualHost *:443>
  DocumentRoot "/Users/ユーザー名/web/test/public_html/"
  ServerName test
  SSLEngine on
  SSLCertificateFile "/Users/ユーザー名/web/conf/localcert/test.pem"
  SSLCertificateKeyFile "/Users/ユーザー名/web/conf/localcert/test-key.pem"
</VirtualHost>

反映

設定ファイルの構文チェックをしてから反映する.

apachectl configtest
apachectl -k graceful

ブラウザで https://test/ にアクセスして,鍵マークが表示されれば成功.

 

お問い合わせ・無料試用お申し込みフォーム

ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.

contact
Pagetop