LOTD(今日のリスト)の配信にはXserverのメーリングリスト機能を使っている。しかしこの機能はPHP5~7にしか対応していない。一方でWordPress本体はPHP8をサポートし始めている。
LOTDのためにWordPressのPHPバージョンが制約を受けることがないよう、XserverのメーリングリストだけをPHP7で走らせられないかを調べた。
Xserverのメーリングリスト機能は xmailinglist というディレクトリに収められたファイル群として提供されている。よって https://listfreak.com/xmailinglist/ 下のPHPだけをPHP7で起動すればOKそう。
xmailinglist ディレクトリ以下の .php ファイルだけを異なるバージョンのPHPで走らせるために、以下のような内容の .htaccess を置く。
AddHandler php-xmailinglist .php
Action php-xmailinglist /xmailinglist/php.fcgi
1行目で .php ファイルを扱うハンドラー(ラベル名のようなもの)を追加し、2行目でそのハンドラーが実行すべきファイルを指定する。
ここで /xmailinglist/php.fcgi は以下のような内容のシェルスクリプトである。
#!/bin/sh
exec /usr/bin/php-fcgi7.4
PHPのファイルパスは Xserver の「プログラム言語・コマンドパス」というページに書かれている。