MacOS MontereyでWordPressを動かすには

MacOS MontereyでWordpressを動かすには以下の手順に従う。順番にやればうまくゆくのだが、不完全なドキュメントがいくつかあり精査に時間がかかった。

HOMEBREW

Homebrewをインストール

途中まではこのサイトを参考にした。3以降が迷走しているように思える。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)";

Xcodeのファイルを取りにゆくので少し時間がかかる。ダウンロードが終わるとインストールスカを聞いてくるのでMacアカウントのパスワードを入れる。

PHPのバージョンをチェックする。Montereyには入っていないはずなので何も出てこないのが正解だ。

php -v

インストールできるPHPのバージョンを調べる。

brew search php

PHPのインストール

brew install php@8.0

参考にしたサイトはこれ以降のやり方が少し迷走しているように思える。このやり方でやってみたがうまく設定できなかった。


ApacheとPHPを入れ直す

色々なサイトを読むと要するにMacOSに入っているApacheはHomeBrewで入れたPHPと相性が良くないというようなことが書かれている。この後はBingに質問した。一緒に入れろ書いてあるので一緒に入れ直した。

まず、今あるApacheを停止させる。自動起動もしないようにする。

$sudo -s launchctl stop /System/Library/LaunchDaemons/org.apache.httpd.plist 
$sudo -s launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 

次にBrewを使ってApacheとMySqlをインストールする。インストールそのものは極めて簡単である。

brew install httpd php@8.0

最後にこういうメッセージが出る。

To start httpd now and restart at login:

 brew services start httpd

PHP8.0を有効にするためには次のことをしろと指示される。

To enable PHP in Apache add the following to httpd.conf and restart Apache:

 LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

さらに次の記述をする。   

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

最後にINDEXファイルを追加する。

DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:/usr/local/etc/php/8.0/

php@8.0 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have php@8.0 first in your PATH, run:

  • echo ‘export PATH=”/usr/local/opt/php@8.0/bin:$PATH”‘ >> ~/.zshrc
  • echo ‘export PATH=”/usr/local/opt/php@8.0/sbin:$PATH”‘ >> ~/.zshrc

For compilers to find php@8.0 you may need to set:

  •   export LDFLAGS=”-L/usr/local/opt/php@8.0/lib”
  •   export CPPFLAGS=”-I/usr/local/opt/php@8.0/include”

To start php@8.0 now and restart at login:

brew services start php@8.0

支持された通りにhttpd.confファイルを書き直してゆく。

httpd.confの中身

Apacheの設定ファイルを編集してphp 8のモジュールを有効化する。Brewでインストールしたhttpdは場所が変わっているので注意する。

/usr/local/etc/httpd/httpd.conf

LoadModule mpm_event_module lib/httpd/modules/mod_mpm_event.so の下あたりにPHPのモジュールを追加する。これでPHPモジュールが読み込まれる。

LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

DirectoryIndex index.html の下あたりにディレクトリ表示ファイルを追加する。これをやらないとディレクトリの中が一覧表示されてしまう。

DirectoryIndex index.php index.html

IfModule dir_moduleの中に追加する。これをやらないとphpが実行されない。

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

ログファイルとアクセスファイルの権限を変更する

ログファイルとアクセスファイルの二つのファイルのアクセス権限がないと立ち上げ時にエラーになる。このエラーについて記述しているウェブサイトがなくかなり戸惑った。起動時はうまく動くのだが二回目以降動かなくなる。初期アクセスがあったとアクセスログに書き込めないとしてエラーになってしまうのだろう。

二つのMacで作ったのだが、最初は全てのユーザーが書き換えられるように設定を変えた。おそらくhttpd.confファイルで指定されているユーザーにのみ権限を与えるべきなのだろうと思い二度目はそうしたユーザー名はMacのアカウントの名前と一緒だがグループはstaffになる。

  • /var/log/httpd/access.log
  • /var/log/httpd/error.log

これでアクセスログとエラーログにアクセスできる。最初に起動するまで所定位置にログがなかったりするので最初は必ずbrewからhttpdをスタートしよう。

再起動

最初にbrewでスタートするとログファイルなどを作りにゆく。

sudo brew services start httpd

この後は通常通りのスタートができる。

apachectl restart

MySQLの設定

今回手元に「mysql-5.6.38-macos10.12-x86_64.dmg」というファイルを持っていたのでこれでインストールしたのだが、実際に入ったバージョンは10.15で8.0.22だった。最新のファイルはMySQLのウェブサイトにある。

これを使うとシステム環境設定にMySQLというコントロールパネルが作られる。ここでInitialize Databaseを押下するとrootのパスワードを設定してくれる。このパスワードがないとmySQLに入ることができない。rootパスワードの設定が終わったらターミナルからmySQLに入る。

rootのパスワードが設定できたら新しいユーザーを追加する。ユーザー追加はここを参考にした。ここではnewuserという名前になっている。

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

次に権限を付与する。

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

最後に権限を更新する。

FLUSH PRIVILEGES;

WordPressの設定をする

phpMyAdminとWoredpressを入手してきてドキュメントディレクトリに入れる。/usr/local/var/wwwに変更されていることに注意する。古い環境に慣れている人はエイリアスを作っておいた方が便利かもしれない。慣れないとかなり迷う。

まずphpMyAdminに既に設定したユーザー名とパスワードを使って入る。wordpressというデータベースを作る。もちろんMySQLでコマンドを入力してデータベースを作っても構わないがphpMyAdminの方がラクだ。

最後にWordpressにアクセスする。最初はconfファイルがないため設定をしにゆく。データベース名(wordpress)とMySQLユーザー名とパスワードを入力する。

ファイルのアップデートができない。解決するためにはhttpd.confのユーザーとグループをユーザー名とstaffに変えるか、逆にhttpdの入っているディレクトリのオーナーをwwwに変更する。オーナーを変えるのはこちらを使うが、おそらく正しいのはhttpd.confのユーザー名とグループを変えることだろう。ログファイルとエラーファイルを読みにゆくためにもマッチングが必要だからだ。

sudo chown -R _www:_www /usr/local/var/www

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です