これは、このサイト(ブログ)の話しです。復旧後、この記事を投稿しました。

 

Ubuntu 22.04 LTS にアップグレードしたら、WordPressのPHPソースコードだけが表示されてブログが使え無くなってしまった。

phpinfo()も機能しないのでPHP関連に不具合があるようです。Ubuntu 22.04 LTSにアップグレードしたらPHP8.1.2になり、PHP8.1にWordPressの古いバージョンは未対応らしい。なので最新のWordPress 5.9.3をインストールする事にしました。

 

アップグレード日:2022年4月27日

Ubuntu 20.04.4 LTS → 22.04 LTS

$ sudo do-release-upgrade -d

 

Ubuntu 22.04 LTS
PHP8.1.2
WordPress 5.9.3

 

↑ 現時点で最新のバージョンにしましたが、まだphpinfo()も機能しません。色々ググって試したら以下のコマンドが有効でした。

$ sudo 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


$ systemctl restart apache2
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'apache2.service'.
Authenticating as: xxxxxx
Password: xxxxxx
==== AUTHENTICATION COMPLETE ===

当サイトのプログ(今見て貰っているこのブログ)で運用中のWordPress。そのサイトヘルスチェックで、「オプションのモジュールintlがインストールされていないか、無効化されています」とのコメント。

このままでも、困らない感じなんだけど。サイトヘルスステータスが「良好」でないとスッキリしないので、その必要なモジュールをインストールしました。

当サイトのOS:Ubuntu 20.04.4 LTS

インストールは、以下の1行だけで済みます。

$ sudo apt install php-intl

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  php7.4-intl
The following NEW packages will be installed:
  php-intl php7.4-intl
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 128 kB of archives.
After this operation, 542 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

サーバーを再起動させれば有効になっています。

 

結果、サイトヘルスステータスは

うちのこの自宅サーバーをUbuntu 19.10 から 20.04 LTSにしました。

今までのサーバー用PCはそのまま放置。20.04 LTS用のPCは別な物を用意して、クリーンインストールしています。もちろんIPv4、IPv6のIPアドレスが変わるので、宅内ルーターのポートマッピング設定は変えました。

それに、うちの(jm1lxs.com)ドメインはお名前ドットコムで取得したので、同サイト内のDNSレコード設定でIPv6のグローバルIPアドレス(240fで始まるアドレス)を紐付けしました。

 

この投稿はUbuntu 20.04 LTSになった後に行いました。

前回のGnuplotアニメーションに続いて、今回はX軸をプロットする毎に16秒分変化させて、以前より滑らかに動くようにしてみました。

動画にした方法は、MacのVNC上で画面録画しただけです。録画時間は約5時間35分、これを2分10秒まで縮めました。

 

↑ offset値が頻繁に上下していますが、これは生活ノイズ(ここでは電化製品のオンオフなど電気的ノイズを表現)で上下しています。多分、裸のGPSモジュールとラズパイの配線がワニ口クリップの長い配線のせいかも知れません。また、ラズパイのアップグレード中も30μs位変化した所を見たので、そんな要因も含まれます。

↓ 生活ノイズが無いと、このように落ち着いています。

 

↓ この動画の元になったGnuplotのスクリプト(C言語)です。なぜC言語なのかと言うと、Gnuplotのスクリプトだけで現時刻に応じてX軸の範囲を設定する方法が分からなかったからです。

/*
 * loopstats-plot.c
 *
 * gcc -Wall -o loopstats-plot loopstats-plot.c
 * 2020/02/10
 *
 * loopstatsのoffset値をGnuplotでグラフ化する。
 *
 * X軸は現時刻から-3600秒前の値を使用。
 * X軸は16秒毎に16秒分変化する。
 *
 */

#include <stdio.h>
#include <time.h>
#include <unistd.h>

#define YOHAKU 150

int main(void)
{
    FILE *gp;
    int s1, s2;
    
    gp = popen("gnuplot -persist", "w");
    
    fprintf(gp, "set encoding iso_8859_1\n");
    fprintf(gp, "set grid y2tics\n");
    fprintf(gp, "set y2range [-0.00004:0.00004]\n");
    fprintf(gp, "set y2tics ('40' 0.00004, '30' 0.00003, '20' 0.00002, '10' 0.00001, '5' 0.000005, '0' 0.00000, '-5' -0.000005, '-10' -0.00001, '-20' -0.00002, '-30' -0.00003, '-40' -0.00004)\n");
    fprintf(gp, "set xzeroaxis lt -1\n");
    fprintf(gp, "set timestamp\n");
    fprintf(gp, "unset ytics\n");
    fprintf(gp, "set title 'loopstats offset' font 'Helvetica,16'\n");
    fprintf(gp, "set xlabel '-3600 (s)' font 'Helvetica,14'\n");
    fprintf(gp, "set y2label 'offset ({\265}s)' font 'Helvetica,14'\n");
    fprintf(gp, "plot '< tail -225 /var/log/ntpstats/loopstats' using 2:3 with points axis x1y2\n");
    
    while (1) {
        time_t t = time(NULL);
        s1 = t % 86400 + YOHAKU;
        s2 = t % 86400 - 3600 - YOHAKU;
        
        // X軸設定 [現時刻−3600秒:現時刻]
        fprintf(gp, "set xrange [%d:%d]\n", s2,s1);
        fprintf(gp, "replot\n");
        fflush(gp); // ここで描画
        
        sleep(16); // 再描画まで16秒待つ
    }
    fprintf(gp, "unset output\n");
    fprintf(gp, "exit\n");
    pclose(gp);
    
    return 0;
}
$ gcc -Wall -o loopstats-plot loopstats-plot.c
$ ./loopstats-plot

今テスト中の1PPS利用Stratum 1 NTPサーバーのoffset値を、Gnuplotでほぼリアルタイムでグラフ化してみました。表示範囲は過去60分間です。

118倍速の動画にしたので見て下さい。全画面で見ないと、小さ過ぎて見れませんが。

 

↑ 動画にした方法は、ラズパイの画面をVNCでMacに表示させて、スクリーンショットの選択部分を収録で約1時間録画しました。Gnuplotの機能にあるGIF出力を利用した物ではありません。

 

Gnuplotの操作方法は以下の通りです。過去60分間の部分は、< tail -225 であり、ログの末尾から225行読み込む事を意味しています。そしてログの記録が16秒毎(衛星をロストしない限り)ですので、これを計算すると
225×16秒=3600秒(60分間)
となります。

↓ pause 16.0は、このスクリプトファイルの再読み込みまでの待機時間で、結果16秒毎にグラフを更新させています。

$ vi loopstats-plot.cmd

set yrange [-0.0001:0.0001]
set format y '%6.5f'
set size ratio 0.5
set grid
set xzeroaxis lt -1
set timestamp
set title 'loopstats offset' font 'Helvetica,16'
set xlabel '-3600 [s]' font 'Helvetica,14'
set ylabel 'offset [s]' font 'Helvetica,14'
plot '< tail -225 /var/log/ntpstats/loopstats' using 2:3 w l
pause 16.0
reread
$ gnuplot loopstats-plot.cmd