WordPress の「Recent Comments Widget Plus」プラグインの ‘Exclude pingback & trackback’ オプションが機能していない不具合を直した.

Pocket

 

「Recent Comments Widget Plus – WordPress plugin | WordPress.org」
https://wordpress.org/plugins/comments-widget-plus/

 

WordPress の「Recent Comments Widget Plus」プラグインの ‘Exclude pingback & trackback’ オプションが機能していない不具合を,とりあえず自分のサーバー上で直した.

includes/functions.php の 122行目あたりにある
if ( 1 === $args[‘exclude_pings’] ) {

if ( $args[‘exclude_pings’] ) {
にする.

変数 $args[‘exclude_pings’] の型が boolean なので,整数 1 と === にならず,この if ブロックが実行されなかったことが不具合の原因.

このコードで以前は機能していたので,WordPress(か PHP ?)のどこかのバージョンから,この変数の型が整数から boolean に変わってしまったのだろうと思う.

 

 

「’Exclude pingback & trackback’ option wasn’t working, and I fixed it · Issue #4 · gasatrya/comments-widget-plus」
https://github.com/gasatrya/comments-widget-plus/issues/4

 

とてもあやしい英語で報告してきたけれど,Pull Request のほうが楽だったかもしれず… .

 

 

 

 

==

 

Pocket

(2021-02-24 追記修正) Tiny Tiny RSS(TT-RSS) を git pull で更新したら動かなくなってしまったので,それの対処方法をメモ書き.「私はこうしました」という情報.正しい方法かどうかはわかりません.

Pocket

 

(2021-02-24 追記修正: config.php の書き換え方の情報が刻々と変化するため,詳細を書くのをやめました.)

 

Tiny Tiny RSS(TT-RSS) を git pull で更新したら動かなくなってしまったので,それの対処方法をメモ書き.
「私はこうしました」という情報.正しい方法かどうかはわかりません.
なにせ,これを書いている間にも Wiki は書き換わるわ,フォーラムには動いた/動かない情報が次々と書き込まれるわ,リポジトリにはさらなる修正がコミットされるわで,なんかもう,ぐだぐだ.

なお,動かなくなってしまったときに表示されるメッセージは
「Exception while creating PDO object:could not find driver」
ですが,git pull するまでは動いていたので,PDO 関係は原因ではありません.

 

1.
config.php を書き換える.classes/config.php ではなく,config.php のほう.

基本的には,define() を,すべて putenv() に書き換える.このとき,define() のほうは残しておいても構わない.私は残しておくことにしました.つまり,追記しました.

書き換えは,たとえば,

define(‘DB_TYPE’, ‘mysql’);

putenv(‘TTRSS_DB_TYPE=mysql’);

とします.

 

2.
DB_HOST を明示的に指定する.

define(‘DB_HOST’, ”);
で動いていた場合でも,
putenv(‘TTRSS_DB_HOST=localhost’);
と,ホストを明示的に指定する必要があります.指定しないと,
「Exception while creating PDO object:SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known」
という,PDO で DB に接続できない旨のエラーが出て動きません.

(2021-02-24 追記: DB_HOST のデフォルト値が “db” だからのようです.なぜこんなホスト名をデフォルト値にしているのだろう… .)

 

3.
ICONS_DIR は,config.php の中では指定しない.つまり,

// define(‘ICONS_DIR’, “feed-icons”);
// putenv(‘TTRSS_ICONS_DIR=”feed-icons”‘);
// define(‘ICONS_URL’, “feed-icons”);
// putenv(‘TTRSS_ICONS_URL=”feed-icons”‘);

とする.私は,一応,コメントとして残しておくことにしました.
私は ICONS_DIR はデフォルトのままだったのですが,これが config.php の中にあり続けると動きませんでした.

また,ICONS_DIR のパーミッションは,書き込み可能にする必要があるようです.つまり,シェルコマンドで,

chmod -R 777 feed-icons

とする.
ただ,これは,なんだかバグのような気がしています.いままではこんなにゆるい設定にしなくても書き込まれていました.

 

(2021-02-24 追記)
4.
ICONS_DIR に限らず,必須の変数以外はコメントアウトしたほうがよさそうな感じです.
ただ,先に書いた DB_HOST のように,妙な値をデフォルト値に設定している可能性があるので,何が必須なのかよくわかりません.
https://git.tt-rss.org/fox/tt-rss/src/branch/master/classes/config.php
↑を見て,各自で判断するしかありません.

 

私の場合は,PLUGINS を残しておいたら,セッションが切れたあとにログインできなくなりました.表示されるエラーメッセージは,「ユーザー名かパスワードが正しくありません」ですが,それが原因ではありません.ものすごく迷惑.
PLUGINS のデフォルト値が ‘auth_internal, note’ から “auth_internal” だけになったからなのかもしれないし,私が書き換えた putenv() での書式が開発者たちが期待している書式とは違っていたからなのかもしれません.わかりません.追求しません.

 

 

正直にいって,もう,このぐだぐだマイグレーション作業に付き合っていられない.「もっとよく考えてから移行を促せばいいのに」と思う.
開発者たちが用意している config.php-dist も,情報がなさすぎ.
そもそも,Docker での運用をデフォルトにしたくらいで,ここまで既存環境が動かなくなるものかなぁ? よくわからない.

 

 

0. 事の発端
「Exception while creating PDO object: role »www-data« does not exist」
https://community.tt-rss.org/t/exception-while-creating-pdo-object-role-www-data-does-not-exist/4340

「RIP config.php hello classes/config.php」
https://community.tt-rss.org/t/rip-config-php-hello-classes-config-php/4337

「GlobalConfig」
https://git.tt-rss.org/fox/tt-rss/wiki/GlobalConfig#migrating-from-old-style-config-php

 

要は,
「「Docker による運用をデフォルト」にするので,config.php による設定は廃止するよ.classes/config.php を導入するよ.でも,いまはまだ config.php の設定を書き換えれば動くよ.」
ということらしいです.
古参の「システムに直にインストールして運用」していたユーザーには,わからないわー.

近いうちに,Docker に移行したいのだけど,移行の手引きが見つからないなぁ.
DB そのままで,単純にシステムだけをすげ替えれば動くのかなぁ?
なんか,今回の件で,そこまで考えてあるようには思えないよ… .

 

 

 

 

 

==

 

2019年8月5日
いつの頃からか,Tiny Tiny RSS(TT-RSS) で「TBS NEWS」のフィードに表示される概要文が文字化けを起こすようになってしまったので,FeedIron のコードに charset を強制的に UTF-8 にするコードを追加しました.
https://noike.info/wp/knoike/2019/08/05/82017/

 

2019年8月5日
「Tiny Tiny RSS(TT-RSS) のシステムアップデートが git pull でできなくなっているなぁ」と思っていたら,リポジトリの URL が変わっていた.その記事中に書いてあるとおりに,git remote set-url することで対処できました.
https://noike.info/wp/knoike/2019/08/05/82001/

 

2019年5月18日
Tiny Tiny RSS(TT-RSS) に feedprefs プラグインを導入した.これを導入して有効にすると,View Mode(表示記事モード)と Ordering Mode(記事の表示順のモード)がフィードごとに記憶されるようになり,非常に便利です.
https://noike.info/wp/knoike/2019/05/18/81789/

 

2019年5月11日
Tiny Tiny RSS(TT-RSS) で,「記事の取得はできているようなのだけど,「表示する記事が見つかりません。」というメッセージが表示されてしまう」現象が起こる原因と対処方法がわかった.
https://noike.info/wp/knoike/2019/05/11/81746/

 

2019年5月10日
Tiny Tiny RSS(TT-RSS) で,Feedly のように,フィードにサムネイル画像を表示させるための設定方法.
https://noike.info/wp/knoike/2019/05/10/81664/

 

2019年5月9日
「Tiny Tiny RSS(TT-RSS)」を自分のサーバーで稼働させはじめました.Feed の更新は,cron ではなく,systemd から起動させたデーモンで行うようにしました.
https://noike.info/wp/knoike/2019/05/09/81594/

 

2019年5月9日
常用する RSSリーダーを,「Feedly」から「Tiny Tiny RSS(TT-RSS)」に移行することにしました.自宅サーバー noike.info 下で,自分で稼働させて使用します.
https://noike.info/wp/knoike/2019/05/09/81587/

 

2019年5月9日
Feedly に登録してある RSSフィードすべてを OPML エクスポートする方法.無料プランのままでもできたのですね.
https://noike.info/wp/knoike/2019/05/09/81565/

 

 

 

Pocket

remi でインストールしてある PHP を,5.6 から 7.2 にアップデートした.

Pocket

 

remi でインストールしてある PHP を,5.6 から 7.2 にアップデートした.
基本的な流れは次のとおり.(要所要所でバックアップを取ったり確認したりする作業は必要.)

# yum-config-manager --disable remi-php56
# yum-config-manager --enable remi-php72
# yum --enablerepo=* clean all
# yum update

ここでパッケージの依存関係を解決できないエラーが出てしまう場合は,
エラーが出るパッケージをすべて同時に指定して,先に “一括指定して” インストールする.

# yum install php-mysql php-mysqlnd php-pecl-mysql

update ではなく,install.ひとつひとつ install するとだめで,”一括指定して” install する.「先に “一括指定して” インストール」することで,先にそれらだけをアップデートしてしまうことができ,パッケージの依存関係を解決することができた.
ここでかなりハマってしまって,思いの外に時間を取られてしまった.

エラーが出てしまうパッケージのアップデートが終わったら,念のために

# yum --enablerepo=* clean all

して,

# yum update

で PHP ほか関連パッケージを 7.2 系にアップデートする.

ハマりどころがあったものの,アップデート作業そのものはかなり簡単に行えた.無事に,7.2 の環境になった.

 

7.3 ではなく 7.2 にした理由は,ownCloud が System Requirements として,「5.6, 7.0, 7.1, and 7.2」と,7.2 までを挙げていたから.WordPress は,「7.2 or greater」だったのだけどー.

 

もはや,サービスごとにコンテナにしてしまったほうが運用が楽なのかもなぁ… .

 

 

 

 

==
Pocket