先日、Wordpressを5系にバージョンアップしたので、PHPも7.3から7.4へバーpジョンアップしました。
PHPのバージョンを更新する時には、Wordpressを使用している場合にはApachのモジュール「php7_module」の更新も追加しないとWordpressが動作しないので、忘れないように追記しておきます。
FreeBSDでは「mod_phpXX」を個別に追加します。
頑張らないけど良いでしょう
先日、Wordpressを5系にバージョンアップしたので、PHPも7.3から7.4へバーpジョンアップしました。
PHPのバージョンを更新する時には、Wordpressを使用している場合にはApachのモジュール「php7_module」の更新も追加しないとWordpressが動作しないので、忘れないように追記しておきます。
FreeBSDでは「mod_phpXX」を個別に追加します。
メーリングリスト「majordomo-1.94.5」がperlのバージョンアップ(perl5.28→perl5.30)後に動かなくてってからいろいろと調べてみたが、majordomoは開発が止まっているようで、perlのバージョンダウンしか方法は無いようだ。
FreeBSDの場合はPerlのバージョンダウンは大変そう。
そこで、2つ前くらいのPKGをインストールし、majordomoのみそのperlを使うように工夫してみた。
具体的には、majordomoのperlスクリプトの1行目に「#!/usr/local/bin/perl5.26.3」の様にperlをフルパスで記述し、古いperlで起動するようにした。
変更したスクリプトは以下のとおり。
# grep '/usr/local/bin/perl' * archive2.pl:#!/usr/local/bin/perl5.26.3 bounce-remind:#!/usr/local/bin/perl5.26.3 config-test:#!/usr/local/bin/perl5.26.3 digest:#!/usr/local/bin/perl5.26.3 majordomo:#!/usr/local/bin/perl5.26.3 majordomo.pl:#!/usr/local/bin/perl5.26.3 request-answer:#!/usr/local/bin/perl5.26.3 resend:#!/usr/local/bin/perl5.26.3 sequencer:#!/usr/local/bin/perl5.26.3
変更後にML宛にメールして無事に配信できることを確認。
他の機能も問題なOK。
久しぶりにメーリングリスト使った試験をしてみようと思い、まずは登録メンバーを確認するためのメールを投げて見たら「MAILER-DAEMON」から以下の内容のエラーメール。
Command output: $* is no longer supported as of Perl 5.30 at
/usr/local/majordomo/majordomo.pl line 57. Compilation failed in require at
/usr/local/majordomo/sequencer line 62.
「majordomo.pl」なんてさわることは無いし、アップデート対象外だし・・
エラーの内容からネットで検索してみると、Perlのv5.10.0からは「$*」なるマジックが対象外となったとのこと。
代わりに /s と /m の正規表現修飾子を使うべきとのこと。
私の環境でのPerlのバージョンはと見ると、
# perl -v This is perl 5, version 30, subversion 0 (v5.30.0) built for amd64-freebsd-thread-multi
あらら、「V5.30.0」なのね。これじゃね。
そこで、エラーとなる「majordomo.pl」にどれだけ「$*」が使われているかを調べてみると
47行目、57行目、72行目の3か所であった。
インストールしているmajordomoのバージョンは1.94.5で、これが最新バージョンで今はメンテナンスされていないようです。
さて、どうしたものか・・・
UbuntuをインストールしてあるPCにFreeBSDをインストールし、GRUBでデュアルブート化してみた。
このPCにはHDDが2台(500Gと250G)内蔵してあり、500GのHDDにUbuntuをインストールし、250GのHDDは未使用状態であった。
最初に空きのHDD(250G)に最新のFreeBSD 12.0をインストール。
HDDはGPTでパーティショニングを行った。
FreeBSDのインストールが完了したらUbuntuを起動させる。(GRUBにFreeBSDを認識させていないので、当然、FreeBSDは起動できない。)
Ubuntuで「blkid -o list」とターミナルで打ち込み、ファイルシステムのUUIDを表示させる。
root@tomato:~# blkid -o list device fs_type label mount point UUID ------------------------------------------------------------------------------- /dev/loop0 squashfs /snap/gnome-system-monitor/39 /dev/loop1 squashfs /snap/gnome-calculator/167 /dev/loop2 squashfs /snap/gnome-logs/31 /dev/loop3 squashfs /snap/gnome-3-26-1604/62 /dev/loop4 squashfs /snap/core/4486 /dev/loop5 squashfs /snap/gnome-calculator/260 /dev/loop6 squashfs /snap/gnome-system-monitor/57 /dev/loop7 squashfs /snap/gnome-3-26-1604/74 /dev/sda1 swap [SWAP] d36d29f3-d53d-472a-9456-d811e0eeb4c8 /dev/sda2 ext4 / 6b4bb690-f05a-4750-8fc9-a3cf7bc88e51 /dev/sdb1 (not mounted) /dev/sdb2 ufs (not mounted) 5c4453b64c32c83d /dev/sdb3 (not mounted) /dev/sdb4 ufs (not mounted) 5c4453b8af3f5753 /dev/sdb5 ufs (not mounted) 5c4453bdb28e05db /dev/sdb6 ufs (not mounted) 5c4453bec82595d7 /dev/sdb7 ufs (not mounted) 5c4453bfc602ceda /dev/loop8 squashfs /snap/gnome-logs/45
FreeBSDのマウントポイント「/」はsdb2としたのでUUIDは「5c4453b64c32c83d」であることがわかる。
この内容を設定ファイルに以下の様に追記する。
# vi /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "FreeBSD 12.0" { insmod ufs2 set root=(hd1,2) kfreebsd /boot/loader search --no-floppy --fs-uuid -set 5c4453b64c32c83d }
起動時にブートメニューを表示させるようにgrubを編集する。
# vi /etc/default/grub # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 #GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to enable BadRAM filtering, modify to suit your needs
修正箇所は「GRUB_TIMEOUT_STYLE=hidden」をコメント化。
保存して編集結果を反映させる。
sudo update-grub sudo update-grub2
WordPressをインストールした時に必須でインストールしたPHPは5系であったが、PHP5系は2018年末でセキュリティサポートが終了となった。
そこで本日、PHP7系にアップデートを行った。
実は2カ月程前にも一度、7系にアップデートを試みたが、その時はアップデート後にWordPressの表示に異常(何も表示されない現象)が起き、その時は原因がわからず、やむなくPHPを5系に戻した経緯があった。
今回は、事前に情報収集を行い、wp-config.phpでデバックモードを有効にし、対処方法も事前に把握するなどの準備を行った。
やや心配であったものの、PHP7系へのバージョンアップ実施し、ブログにアクセスすると正常に表示された。
バージョンアップ手順は以前と同じであったが、何が良かったのか正常にバージョンアップを完結することができた。
めでたしめでたし。