自鯖(この blog が置いてある VPS)を Ubuntu 20.04LTS から 22.04LTS にしたんですが、そうしたら WordPress の blog が表示されなくなりました。真っ白なページが表示されます。ソース表示すると PHP のソースがそのまま表示されているようです。

# 実際には一旦手元の VM 上でアップグレードリハーサルをやってその時に遭遇した現象

ちょこっとググったら全く同じ症状の人を見つけました。何やら PHP のモジュールが読み込めなくなってしまうようです。

root@youm:/home/umezawa# apt list --installed | grep php

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libapache2-mod-php8.1/jammy-updates,jammy-security,now 8.1.2-1ubuntu2.13 amd64 [installed,automatic]
(中略)
php8.1/jammy-updates,jammy-updates,jammy-security,jammy-security,now 8.1.2-1ubuntu2.13 all [installed,automatic]
php/jammy,jammy,now 2:8.1+92ubuntu1 all [installed]

PHP 自体はインストールされています。

root@youm:/home/umezawa# a2query -m | php
php7.4 (enabled by maintainer script)

Apache 上で「有効」になっている PHP のバージョンが違います。

root@youm:/home/umezawa# ls -l /etc/apache2/mods-enabled/php*
lrwxrwxrwx 1 root root 29 Jan 10  2021 /etc/apache2/mods-enabled/php7.4.conf -> ../mods-available/php7.4.conf
lrwxrwxrwx 1 root root 29 Jan 10  2021 /etc/apache2/mods-enabled/php7.4.load -> ../mods-available/php7.4.load

インストールされてるのは 8.1 なので、 mods-enabled ディレクトリにある symlink は dead link になっています。アップグレードプログラムがうまく処理できなかったんですかね。

というわけで直していきます。

root@youm:/home/umezawa# a2dismod php7.4
removing dangling symlink /etc/apache2/mods-enabled/php7.4.load
removing dangling symlink /etc/apache2/mods-enabled/php7.4.conf
root@youm:/home/umezawa# a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Enabling module php8.1.
To activate the new configuration, you need to run:
  systemctl restart apache2
root@youm:/home/umezawa# systemctl restart apache2

サクッと直りました。

ちなみに前回(18.04->20.04)の時のトラブルはこちら

Trackback

no comment untill now

Add your comment now