phpとphpMyAdminとMySQLのバージョンについて

phpとphpMyAdminとMySQLのサポートと対応バージョンのリンク集です。

PHP Supported Versions
https://www.php.net/supported-versions.php

phpMyAdmin.net
https://www.phpmyadmin.net/

Which PHP versions does phpMyAdmin support? (phpMyAdmin.net)
https://docs.phpmyadmin.net/en/latest/faq.html#which-php-versions-does-phpmyadmin-support

Which Database versions does phpMyAdmin support? (phpMyAdmin.net)
https://docs.phpmyadmin.net/en/latest/faq.html#which-database-versions-does-phpmyadmin-support

php81.png

おまけ

CentOS の PHP は本当に安全か?
https://qiita.com/bezeklik/items/0823b14789d96f847d09

各OSへPHPをREMIリポジトリを使ってインストーする方法
https://rpms.remirepo.net/wizard/

例)
Operating system and version selection
Operating system: EL 7 (maintained until June 2024)
Wanted PHP version: 8.1.2 (active support until November 2023)
Type of installation: Default / Single version (simplest way)

Wizard answer
- CentOS 7 provides PHP version 5.4 in its official repository

旧バージョンがあるかどうか確認する
yum list installed | grep php
存在していたら削除する
yum remove php*

- Command to install the EPEL repository configuration package:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

- Command to install the Remi repository configuration package:
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

- Command to install the yum-utils package (for the yum-config-manager command):
yum install yum-utils

You want a single version which means replacing base packages from the distribution

- Packages have the same name than the base repository, ie php-*

- Some common dependencies are available in remi-safe repository, which is enabled by default

- PHP version 8.1 packages are available for CentOS 7 in remi-php81 repository

- Command to enable the repository:
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php81

- You can check the list of the enabled repositories:
yum repolist

- If the priorities plugin is enabled, ensure remi-php81 have higher priority (a lower value) than base and updates

- Command to upgrade (the repository only provides PHP):
yum update

- Command to install additional packages:
yum install php-xxx

- Command to install testing packages:
yum --enablerepo=remi-php81-test install php-xxx

- Command to check the installed version and available extensions:
php --version
php --modules

ふむふむ。
ぐっどらっこ

MovableTypeの復元方法(ざっくり説明)

2021/10に発表されたMTのXMLRPC APIの脆弱性の影響で、MTの本体が消されてしまって、管理画面にログインできなくなった人もいるかと思います。

本サイトでも、この脆弱性について書きました。
https://www.eripyon.com/mt/2021/11/vulnerability_mt-xmlrpc.html

ここでは、
・さくらのレンタルサーバーを使っている(そうでない人もOKかも)
・MTの本体が消される被害にあった
・BDは残っている
・特別なプラグインは使っていない(使っていても、そのファイルがあればOK)
という人向けに、復元手順の概要を書いてみます。

mt_recovery2.png

1.まず、使っていたMTのバージョンを確認しましょう。
わからない時は、さくらのコンパネにログインして、phpMyAdminでMT用のDBへアクセスし、mt_config内に書いてあるバージョンを確認します。
DBのパスワードがわからなくて、mt-config.cgiのバックアップもない場合は、DBのパスワードを変更しちゃいましょう。ただし、他の目的でDBを使っている場合は、そちらにも影響が出るので要注意です。

ここでヒント。
MTは、mt_xxxという感じで、mt_で始まるテーブルを見に行くようになっているのですが、それ以外のプリフィックスになっていた場合は、のちに説明する手順でMT本体を復元したあとで、以下のプログラムを書き換えてください。
/lib/MT/ObjectDriver/Driver/DBI.pm の $param{prefix} ||= 'mt_';
/lib/MT/ObjectDriver/Driver/DBD/Legacy.pm の $table =~ s{ \A mt_ }{}xms;

2.該当バージョンのMT本体を入手します。
古いバージョンの場合は、
GitHub https://github.com/movabletype/movabletype の master の Tagsタブより
MTOS https://movabletype.org/downloads/archives/ の 4.x、5.x

3.MT
本体をサーバーの所定の場所にアップロードして、実行権の付与や、mt-config.cgiの内容を適切なものに変更します。
この時、mt-xmlprc.cgiの削除(または実行権の削除)を忘れないでやっておきましょう。
また、手ものにあるプラグインもアップロードします。

以上でMTの管理画面にアクセスできるようになったはずなので、アクセスしてみます。

ここでヒント。
MTをバージョンアップしてしまい、Upgrade.pmで
failed to execute statement CREATE INDEX
failed to execute statement ALTER TABLE
などのエラーが出てしまったら、
MT本体の下にある lib/MT/Upgrade.pm の以下のように修正します。
# ignore drop errors; the table/sequence/constraint
# didn't exist
if (( ( $stmt !~ m/^drop /i )
&& ( $stmt !~ m/DROP CONSTRAINT /i ) )
&& (( $stmt !~ m/^create /i )
&& ( $stmt !~ m/ALTER TABLE /i )
&& ( $stmt !~ m/CREATE INDEX /i ) ))
{
die "failed to execute statement $stmt: $err";
}

mt_recovery3.png

ざっくりとこんな感じです。

ぐっどらっこ。

Thnuderbird起動時に、新着の音がして、通知も「○○通の未読メッセージ」と出るのに、受信トレイにメッセージが表示されない(メッセージが消えた)ときは、

三本線アイコン→アカウント設定→(問題のアカウントの)「サーバー設定」で「新着メッセージを自動的にダウンロードする」のチェックをオン

にして、Thnderbirdを再起動してみてください。


thunderbird_receive_not_working2.jpg

この現象は、バージョン 91 になってから発生しているようです。

ぐっどらっこ。

Windows 10でのお話です。
ある日、Adobe Reader DCでPDFを開くと、

C:\Program Files(x86)\Common FileAdobe\ARM\1.0\AdobeARM.exe
このアプリケーションのサイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。
詳細については、アプリケーションのイベント ログを参照するか、コマンド ライン ツール sxstrace.exeを使用してください。

side_by_side configuration_error_adobearm_exe_not_found1.jpg

指定されたデバイス、パス、またはファイルにアクセスできません。
これらの項目にアクセスするための適切なアクセス許可がない可能性があります。

side_by_side configuration_error_adobearm_exe_not_found2.jpg

というエラーが発生するようになりました。

Adobe Reader DCは最新で、64bitです。
Adobe Readerは起動できて、PDFの閲覧も可能です。
でも、Adobe Reader DCを起動するたびにこのエラーが表示されるので、ちょっとうざいです。

AdobeARM.exeはAuto Update用のアプリのようですが、「Program Files(x86)」とあるので、64bitアプリへの置き換えに、完全に成功しなかったのか?疑惑が出てきました。
そして、以下の手順で解決できました。

1.Adobe Reader DC 64bitをスタート→設定→アプリ からアンインストールする。

2.Adobe Reader DC 32bitをインストールする。
  https://get.adobe.com/jp/reader/otherversions/

side_by_side configuration_error_adobearm_exe_not_found4.png

3.Acrobat Reader(Adobe Reader)用Cleaner Tool をダウンロードして実行する。
  http://labsdownload.adobe.com/pub/labs/acrobat_ittools/AdobeAcroCleaner_DC2015.zip

side_by_side configuration_error_adobearm_exe_not_found3.jpg

4.Adobe Reader DC 64bitをインストールする。

ぐっどらっこ。

iPhoneや一部のandroidスマホからWSR-1166DHPL2/PLに接続できない!という相談を受けて、調べてみました。
症状としては、一旦は接続できるものの、接続直後にすぐに切れてしまいます。
すべてのiPhoneと、一部のandroidで発生します。
接続時の暗号化方式や周波数2.4G、5Gには関係がないようです。

could_not_connect_to_wsr_1166dhpl2_pl.jpg

調べたところ、ファームウェアが1.06だったのですが、1.07へバージョンアップすることで解決しました。

バージョンアップ用のファイルは以下にありますが、
 WSR-1166DHPL2 ファームウェア (Windows)
 https://www.buffalo.jp/support/download/detail/?dl_contents_id=62180
ルーターにログインしてから、「詳細設定」→「管理」→「ファームウェア更新」にて、「オンラインバージョンアップ」で1.07を選ぶと簡単にバージョンアップできます。

ぐっどらっこ。

無線LAN接続のプリンターがパソコンから見つけつことができないときの解決方法のお話です。

結論から言うと、今回は、無線LANアクセスポイント装置の「プライバシーセパレーター」機能が原因でした。
この機能がオンになっていると、無線LAN接続しているデバイス同士の通信ができないため、結果として、無線LAN接続のパソコンから無線LAN接続のプリンターが見つからないという現象になるようです。
無線LANアクセスポイントの「プライバシーセパレーター」をオフにすると、パソコンからプリンターが見つかりますが、LAN内の「プライバシーセパレーター」が働かなくなるので、プリンターを有線LAN接続にするか、違うネットワークセグメントにぶら下げるかなどの対応が必要になるケースもあるでしょう。

無線LAN接続のプリンターでのあるあるですが、突然のトラブル対応依頼の場合、頭の中が真っ白になってしまって気づかないこともあるかと。
以下は顛末の詳細です。

話の始まりは、「プリンターを移設したが、つながらない」というものでした。
どうせ、ネットワークのセグメントが違ってるだけだろうと安易に考えていました。

プリンターはEPSONのEP-706A。結構年季ものです。
固定IPが設定されていましたが、パネルからはIP変更ができないので、パネルから「ネットワーク設定のみを購入時に戻す」を行って、IP自動取得に変更後、手動でWiFiの設定を行いました。
ステータスシートでは「正常に動作しています」となっていて、IPも自動取得できているし、電波状態も「非常に良い」となっています。

could_not_find_printer1.jpg

それなのに、パソコンからプリンターを検出できないのです。
検出は、
・PING
・設定→デバイス→プリンターとスキャナー で「+ プリンターまたはスキャナーを追加します」
・EPSONのEpsonNet Config
のどれもがNGでした。

プリンターの対応ネットワークはW-Fiのみ。なので、有線LAN接続で!という選択肢はありません。
無線LANアクセスポイントは、BUFFALOのWSR-1166DHPL2/PL(量販店モデル)。
他の端末のWi-Fi通信は問題ないし....。ん?バッファロー?
そういえば、変な機能があったなあーー。と、調べてみたら、2.4Gと5Gでの両方で「プライバシーセパレーター」がオンになっていました。

could_not_find_printer2.png

さっそくアクセスポイントへブラウザからログインして、「プライバシーセパレーター」をオフにしたら、パソコンからプリンターが見つかり、ドライバーがインストールされ、印刷できるようになりましたとさ。
おしまい。

ぐっどらっこ。

androidスマホで@を入力する方法のお話です。

スマホの初期設定や漢字入力アプリの種類によっては、なんなく入力できる@(アットマーク)ですが、素のandroidスマホでは、どうやるんだけ?的な状態になることがあります。

アットマークは、メアドを入力する際に使いますね。

方法1

gboardのフリック入力の場合は、数字画面にしてから、ゼロを押したまま右にフリックすれば入力できます。

atsign_4.png

方法2

アルファベットを入力する場合は、QWERTYが便利ですが、そのQWERTYモードでキーボードが表示されるものの、@がどこにあるのかわからない場合は、以下のように記号を表示させて長押しで入力する設定にすると便利です。

atsign_1.png

  ↓

atsign_2.png

android 9でQWERTYキーボードに、記号を表示させる方法は次のとおりです。

・設定→システム→「言語と入力」をタップ。
・仮想キーボードをタップ。
・Gboardをタップ。
・設定をタップ。
・画面下部へスクロールして「長押しで記号表示」をオンに。

atsign_3.png

以上で設定は完了です。
QWERTYキーボードにしてから a を長押しすると @ を入力できます。
入力を試してみてください。

ぐっどらっこ。

2週間前のlog4j2の問題の熱が冷めないうちに、今度は apache httpd の脆弱性発覚。
今回は、
CVE-2021-44224 CVSS v3=8.2 HIGH
CVE-2021-44790 CVSS v3=9.8 CRITICAL
の2件である。

これらは、12/20にはThe Apache Software Foundationから出ていた情報で、まあ関係ないかな?と思ってスルーしていたけれど、よく見たら2番目はちょっとだけ影響あった(いや、実質は影響ないのかも)ので対処することにした。
https://httpd.apache.org/security/vulnerabilities_24.html

apache_httpd_1.png

改めて、今回の脆弱性、2点を見てみよう。

●CVE-2021-44224 CVSS=8.2 HIGH
フォワードプロキシ(ProxyRequests On)として設定されているhttpdに、細工されたURIを送ることによりHTTPDをクラッシュさせることが可能。

自分が関係しそうなのはRHEL7(CentOS7)なのだけれど、以下のRedhatのページを見ると「影響を受けません」とある。影響を受ける8用のパッチは、現時点ではなし、と。
でも自分の場合、そもそも、フォワードプロキシはつかってないから、セーフ。
https://access.redhat.com/security/cve/cve-2021-44224
こちらは、パッチが出たら、適用しよう。

●CVE-2021-44790  CVSS=9.8 CRITICAL
細工したマルチパートコンテキストのリクエストをmod_luaで処理する際に、バッファーオーバーフローを発生させることができる。
なので、実行可能な.luaファイルがサーバー上にある場合、そこへ向けて細工したリクエストを送信すると、バッファーオーバーフローを契機に、任意のプログラムの実行や、管理者権限の奪取ができてしまうということか。

Redhatのサイトを見ると、現時点ではパッチはなく、mod_luaを無効にせよとのこと。
https://access.redhat.com/security/cve/cve-2021-44790

っていうか、luaなんて知らない。
mod_luaは、phpやCGIのように、.luaで実行できる組み込み用のスクリプト言語らしい。
使っていないので、無効にしても問題なし。
それに、.luaファイルは、DocumentRoot下には、ないハズ。
ほかの脆弱性との組み合わせで.luaをアップできない限り、問題はないのだが、RHEL7では、パッケージでhttpdをインストールすると、mod_luaはデフォルトでONのようなので、対処しておくことにする。

パッチはまだないので、
/etc/httpd/conf.modules.d/00-lua.conf の
LoadModule lua_module modules/mod_lua.so

#LoadModule lua_module modules/mod_lua.so
に修正して、HTTPDを再起動。

以上で対処は終了。

編集後記。
この類の情報が出てくるたびに、これは自分に関係のあることなのか、関係ないことなのか、チェックしなくてはいけなくて、結構、たいへん。
それに、今回の情報の一次ソースは Apache Software Foundation からの「Fixed in Apache HTTP Server 2.4.52」なんだけれど、httpdをソースからは入れてないから、アップデートが出たからと言って、んーーという感じ。
自分がどんなサービスやプロダクト、ライブラリーを使っているかを押さえておくことはもちろん、提供される情報が何を言っているのかを理解して、自分への影響の有無をチェックすることは、結構しんどい作業です。
log4j2の時は、javaは使っていないから平気と思っていたら、UPSの管理ソフト(APC)が影響をうけるとか。そんなの知らんし。
でも、放置しておくと、後で大変なことになるかもしれないので、今後も、きちんと調べて対応しよう。
日々精進。

ぐっどらっこ。

いつもお世話になっている、さくらインターネット様より、以下のメールが来ました。

────────────────────────────────────
・システム管理者様以外がお受け取りになった際は転送いただけますと幸いです。
────────────────────────────────────
会員ID :xxxxxx
ご契約者:●● ●● 様
サービス:●●.sakura.ne.jp

MySQL5.7へのアップデートについて

平素より弊社サービスをご利用いただきありがとうございます。
さくらインターネットカスタマーセンターです。

さくらのレンタルサーバでご利用中のMySQL5.5、5.1データベースのMySQL5.7へ
アップデートのお願いとなります。

ほー、そうですか。
本ブログのサーバーでは、MovableTypeにMySQL5.5のデータベースを使っていました。

さっそく、アップグレードを行ってみましたが、超簡単でした。

さくらさんが用意してくれたアップグレードツールを使ってアップグレードを行う手順は、次のとおりです。
DBのダンプを取って(エクスポート)、5.7にDBを作って、インポートするといった、手動操作でも移行は可能です。

1.さくらのコンパネにログインし、「Webサイト/データ」→「データベース」から「アップグレード設定」をクリックし、アップグレードを予約します。

mysql57_upgrade1.png

予約時のポイントは以下です。
・さくらさんがアップグレードを行ってくれた直後に、以下のDB変更に伴う作業が行えるタイミングで予約する。(なるべく)
・複数DBがある場合は、全DBが変換対象になる。(これだけという選択はできない)
・アップグレート操作は1度だけしかできない。
・5.7内に、同じDB名がすでに存在しないこと。存在する場合は、DB名を変更して予約する。
・変換後のDBのパスワードは、以前のものが引き継がれる。

2.スケジュールした変換が完了すると、さくらさんから「データベースアップグレード 完了のお知らせ」というメールが来ます。

3.mt-config.cgiの
Database xxxx ← 予約時に変更した場合はそれに。
DBUser xxxx ← 変更不要。
DBPassword xxxx ← 変更不要。
DBHost xxxx ← 必ず変更する。
BDHostについては、「Webサイト/データ」→「データベース」の5.7のセクションに新しいDBサーバー名が表示されていますので、それを指定します。
mysql57.xxxxxxxxxxxx.sakura.ne.jp でも、mysqlxxxx.db.sakura.ne.jp、どちらでもOKです。
を修正してサーバーへアップ後、MTの管理画面にログインできるかどうか確認してください。

4.これが肝なのですが、旧データベースを残しておくと、さくらから「 【ご対応ください】 MySQL5.7 へのアップデートについて」という件名のメールが何度も来ます。
動作確認後、問題がなければ、旧データベースは削除しましょう。

ぐっどらっこ。

Windows10 21H2 のパソコンです。
ある日、突然、エクセル(だけじゃなく)へのキーボードのテンキーからの数字入力が全角の数字となってしまいました。
これまでは半角で入力できていたのに。

以下を確認・設定してみてください。

1.[スタート] → [設定] (歯車アイコン) → [時刻と言語] → [言語] を選択します。

2.[A字 日本語] をクリックし、表示される [オプション] を選択します。

tenkey_always_hankaku1.png

3.下の方にある [Microsoft IME] をクリックし、表示される [オプション] を選択します。

tenkey_always_hankaku2.png

4.[全般] をクリックし、「テンキー」で「常に半角」を選択します。

tenkey_always_hankaku3.png

5.最後に、設定画面を右肩の☓をクリックでで閉じます

ぐっどらっこ。