M4 mac で WordPress の環境を作る
MacBook Air を購入したのだが,いつものように WordPress をローカルで簡単に入れられると思ったら,なかなか面倒だったので備忘録としてまとめておく.
まず,Apache が最初から入っているので,これを使ったらよいと思ったのが間違いだった.
PHP を入れるのは homebrew で入れられるのだが,extension で困ったことになった.
FreeBSD などでは存在している php-extension などという簡単にインストールしてくれるものは存在していないのだ.
困った挾句,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/ にアクセスして,鍵マークが表示されれば成功.
お問い合わせ・無料試用お申し込みフォーム
ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.
ホームページアクセスログ解析
追跡・トラッキング機能
ページ閲覧解析システム
アンケートフォーム
認証付きダウンロード機能
メール配信システム
営業支援システム
商談録音の文字起こし・要約
システムと繋がるMCPサーバー
名刺管理
パスワード不要な会員サイト
会員制不要なオンライン展示会
販促/ホームページ支援の流れ
ホームページ制作勉強会
ホームページ制作&コンサル
商品企画コンサルティング
営業コンサルティング
ホームページメンテナンス