こんにちは、
本番サイトの変更を行うためにステージングサイトを作成しました。ステージングサイトでは、Discourseフォーラムと接続されているすべてのページ/記事で、以下のエラーが発生することに気づきました。
警告: libxml_disable_entity_loader() はセキュリティ上の理由から無効化されています。/www/way_to_my_puglin_folder/wp-discourse/lib/template-functions.php の xxx 行目
ステージング環境のため、Discourseが正当なサイトを認識できず、いくつかの機能を無効にしているのだろうと考えました。しかし、ステージングを本番にプッシュした後も、このエラーは残っています(正当なURLを持つ本番サイトでも発生しています)。このエラーを解消する方法について、何かご存知でしょうか?
誰もここで何が起きているのか見当もつかないのでしょうか?
(ちなみに、WP と Discourse プラグインの最新バージョンは PHP 7 で動作しています。)
Falco
(Falco)
3
もしかして @angus がお手伝いできるかもしれません?
angus
(Angus McLeod)
4
@Romain_Bisseret さん、こんにちは。
この問題は、WP Discourse プラグインで使用されている libxml_disable_entity_loader という PHP 関数が、ホスティングプロバイダーによって無効化されていることが原因で発生しています。
この関数はさまざまな WordPress プラグインで広く使用されており、PHP 7.* では完全にサポートされていますが、PHP 8.0 では非推奨となりました。WP Discourse プラグインでも近々この関数を非推奨とし、PHP 8.0 との完全な互換性を確保するための他の作業と並行して対応する予定です。実際、この件を私のタスクリストの上位に上げているところです。
以下の点をご確認いただけますでしょうか。
- ご使用の PHP のバージョン(PHP 7 との言及から、ご使用のバージョンが 7 であることを指しているのか、少し不明確でしたので)
- ホスティングプロバイダー。インスタンスでこの機能を有効化できないか、プロバイダーに問い合わせてみる価値があるかもしれません。この関数は PHP 7.* ではサポートされた機能です。
よろしくお願いいたします。
@angus さん、ありがとうございます。奇妙なことに、以前の本番サイトでは表示されず、ステージング環境(完全なコピー)でのみ表示されました。PHP は 7.4.11 であることを確認しました。ホスティングプロバイダーは Kinsta です。彼らに確認します。ありがとうございます!
angus
(Angus McLeod)
6
@Romain_Bisseret さん、メモです。PHP 8.0 互換性のレビューの一環として、libxml_disable_entity_loader の使用を廃止するタスクは 4 月中(月末まで)に実施する予定となっています。
@angus さん、ありがとうございます!それまでの間、ホスティング会社が私のアカウントで一時的にこれを有効にするのに同意してくれました。