こんにちは
REST API の処理でなにかのエラーが発生しているのではないでしょうか。
サーバーのエラーログを確認して下さい。
mnunyaguさん コメントありがとうございます。
確かに発生していて「REST API は context クエリーパラメータを正しく処理しませんでした。」とサイトヘルスチェックで表示されています。
同じくサイトヘルスチェックで「アクティブなphpセッションを検出」という警告も出ており、
「session_start() 関数の呼び出しによって PHP セッションが作成されました。これは REST API およびループバックリクエストを妨害します。HTTP リクエストを行う前に、session_write_close() を使ってセッションを閉じる必要があります。」と表示されています。
よろしくお願いします。
上記のサイトヘルスのリポートをwebなどであたっていましたが、このカテゴリー選択不能が解消されるような有益な情報は見つけられていないです。
解決する一つの方法としてWordpressを導入しなおし、データをrestoreする方法もあると考えますが、やる作業が大きくて二の足を踏んでいます。
引き続きよろしくお願いします。
wfcnobbyさん、こんにちは。
サイトヘルスチェックでエラーがあるとのことですが、REST API 周りにエラーがあるかどうかは、munyagu さんのおっしゃる通りサーバーのエラーを確認した方が確実です。
サーバーで PHP のエラーログを teil で表示した状態で、該当のページにアクセスしてみて何らかのエラーが記録されるか確認します。
エラーが記録されたらエラーの内容を確認し、場合によっては該当ファイルのソースコードを見てみるべきでしょう。
ちなみに KUSANAGI の導入は通常版ですか?premium edition にアップグレードしてWEXAL を有効化していたりしませんよね?念のための確認です。
KUSANAGI から別の KUSANAGI への移設を行っているとした場合、WordPress を kusanagi コマンドを使って導入していない場合、移設に失敗している可能性もありますので、改めてご確認ください。
ご参考になれば。
いずれからのプラグイン(あるいはテーマ)で正しくないセッションを使った処理をしているようです。
プラグインをひとつひとつ無効にして、どのプラグインに問題があるのか調べてみてください。
この件については「Wordpressを導入しなおし、データをrestoreする」というのは、やってみたら何かが変わったのでしょうが、有効かどうかに何の根拠もないように思われますが・・・
shokun0803さん コメント有難うございます.
php.iniの Error handling and loggingでは
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
またエラーログ文字列をphp.iniファイルの中で拾ってみましたが,コメントアウトされてます.
cat /etc/php/7.4/fpm/php.ini | grep error_log
; server-specific log, STDERR, or a location specified by the error_log
; Set maximum length of log_errors. In error_log information about the source is
;error_log = php_errors.log
;error_log = syslog
; to syslog. Only used when error_log is set to syslog.
; the message. Only used when error_log is set to syslog.
; OPcache error_log file name. Empty string assumes “stderr”.
;opcache.error_log=
上で助言頂いているエラーログを表示させるためには,php.iniにてerror_log=php_errors.logのようにコメントアウトする必要があるということでしょうか?
なお当該ページへアクセスした後にsyslogを表示してみましたが,特に関連するエラーはないです.またphp.logを見ても
[07-Mar-2021 00:00:07] NOTICE: error log file re-opened というものしか表示されていません.
よろしくお願いします.
munyaguさん コメント有難うございます.
>やってみたら何かが変わったのでしょうが、
これはまだ実行していないですが,有効ではないようなのでやらない予定です.
wfcnobbyさん、こんにちは。
※ ごめんなさい、Ubuntu に移設したとなってますね…ご自身で設定されたサーバーであるならログもご自身でご確認頂く必要がありますね。通常ログは /var/log 以下、Nginx ならそこに Nginx のエラーログがあるはずです。ご確認を。以下は参考までで無視頂いていいです。
エラーログの確認場所が不明とのことでよろしかったでしょうか。
現在の環境が KUSANAGI であると信じて以下にログは表示されていませんでしょうか。
/home/kusanagi/(プロビジョニングしたプロファイル名)/log/(nginx or httpd)/error.log
例) /home/kusanagi/kusanagi_html/log/nginx/error.log
上記エラーログを確認しながら状況の切り分けを行ってみるとよいかと思います。
ご参考になれば。
shokun0803さん コメントありがとうございます。
環境はkusanagiからnon-kusanagi環境へ引っ越しました。
さてnginxのログですが、エラーを起こすページへアクセスしたのち
tail /var/log/nginx/error.logで見ていますが、関係するエラーは発生していません。
phpで発生するエラーは私の環境の場合は上記nginxのエラーと同じ内容と理解していいのでしょうか?
あるいは別途php.logのようなエラー格納場所があるのでしょうか?
wfcnobbyさん、こんにちは。
Ubuntu はほとんど触ったことがないので、正確な情報をお伝えするのが難しいのですが、私の個人的な環境で WSL 上で PHP 7.4 をインストールした環境であれば、 /var/log/php7.4-fpm.log が確認できます。
どのように LAMP 環境を構築したのかで変わるとは思いますが、/var/log 内を確認してみてはいかがでしょうか。
ご参考になれば。
Shokun0803さん コメント有難うございます.
/var/log/nginx/nginx.log には関連しそうな有益な情報は出ていませんでした.
またphp7.4-fpm.logには直近のエラーログは有りません.
[07-Mar-2021 00:00:07] NOTICE: error log file re-opened