カテゴリー: wordpress
CATEGORY ARCHIVE
アクセスログを見ていたところ 「・・・/wp-json/wp/v2/posts/・・・」 といったアクセスがありそこにアクセスしたところ、いろんな細部の情報が表示される。 security上問題があるのではないかと思い、アクセスを禁止した。
参考にしたサイト
’https://www.webdesignleaves.com/pr/wp/wp_user_enumeration.html
コードと補足
単なるアクセス禁止だと、Gutenbergから「更新に失敗しました。 REST API is disabled」というメッセージが出る結果だっと。それで、結局上記の参考にさせていただいたページの「WP REST API を無効にする」の部分のコードを使わせていただいた。 function.phpに追加したコードは以下。
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
}
return $result;
});
投稿ナビゲーション
スパムメールで長文のものがあるので長さを制限する。 functions.phpに以下のコードを追加
add_filter( 'preprocess_comment', 'wpb_preprocess_comment' );
function wpb_preprocess_comment($comment) {
if( mb_strlen( $comment['comment_content'] ) > 1000 ) {
wp_die('Comment is too long. Please keep your comment under 1000 characters.');
}
return $comment;
}
なお、コメント欄設置自体は下記のサイトが参考になった。
http://webdesign.practice.jp/wordpress-theme16-comments-php
投稿ナビゲーション
昨日まで出来ていたのに段落ブロックや整形済みブロックにテキストの貼り付けができなくなった。
朝、function.phpを少し変更したので、元に戻してみたり再起動も試したがそれでも同じ。ネットで検索しても該当するものが見当たらない。IEからChoromeに変えたらできたという記事があったので、Microsoft EdgeからFirefoxに変えてみたところコピペ機能復活 。 理由は不明。
投稿ナビゲーション
PHP version up from PHP7.3 to PHP7.4 by WordPress request
WordPressの管理画面からPHPをPHP7.4へバージョンアップしろと怒られたので、PHPをPHP7.3からPHP7.4へ更新したのでその記録です。OSはRaspberry OS、ブラウザはApacheです。
環境 OS: Raspberry OS (Buster) Brawser: Apache2 WordPress: Version 5.4 PHP: PHP7.3
Step1: PHP更新用のリポジトリーを登録する
どのリポジトリーが良いのかわからなかったけど、https://emc-craft.xyz/raspberrypi/php74-inst/ を参考にしてpackages.sury.org を登録した。
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
Step2: PHPを更新する
PHP7.3の時は、php-mbstringでインストールしたが今回それで行うとphp8.0-mbstringがインストールされ、まだダメとWordPressに怒られる。従って、php7.4-mbstringと指定すること。
sudo apt remove php*
sudo apt install php7.4
sudo apt install php7.4-zip php7.4-mysql php7.4-xml php7.4-gd php7.4-curl
sudo apt install php7.4-mbstring
Step3: Apache2の設定を更新する
これを行っていないと、WordPressからPHP7.3だと怒られる。
sudo a2dismod php7.3
sudo a2enmod php7.4
Step4: php.iniを再設定する
php.iniの設定値は、https://www.javadrive.jp/php/install/index8.html のサイトに従った。
sudo nano /etc/php/7.4/apache2/php.ini
下記を設定
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_detection = Off
Step5: Apacheを再起動する
sudo systemctl restart apache2
投稿ナビゲーション
それに伴い、過去の投稿が無くなっていたり変更があります。
変更の経緯
Raspberry piで運用していたためSDカードの寿命が心配なのと、旧い版数なのでSD copierが使えずバックアップも取れないこと、スパムが多いため対応をしたいというのが理由でした。
主な変更
raspberry pi 3 B から raspberry pi 4 B へ変更 raspbian(wheezy) から raspberry OS (buster)へ変更 クラシックエディターからGutenbergに変更 テーマをtwentyfourteenから、自作のテーマへ変更
などです。
手こずった点などを記録として残す。
物の準備
raspberry pi 4 + SSD で運用しようとした。 手順を誤ったため不必要な物まで購入するはめになってしまった。
raspberry pi 4 4B (4GB) 6069円 SDHCカード アーマー金属ケース パッシブ冷却 1590円 HDMI-microHDMIケーブル (ヘッドレスインストールの仕方を先に確認しておけば購入しなくともよかったのに・・・) 電源アダプター(5V3A対応) ※なかなか売っていなくて時間がかかった。本体と一緒にネットで購入するほうが時間的にも価格的にも良い。 ポータブルSSD (不良品で途中からエラー頻発。保証書で交換してもらった。交換後は問題なし) LAN用スイッチングHub ( wordpress移行中に2つのサーバーを同時に使用するため必要)
(検品:やらずやり直しの羽目になってしまった)
SSDに問題ないか購入後確認する。 別のubuntu OSのPCから、
sudo badblocks -s -v /dev/sdc にてリードエラーがないかを確認する。 なお、sdcは適宜合わせる。
SSDブートまでもっていく
※SDHCカードを作ってからSSDにコピーしたが、今は、直接SSDに書き込めるようである。
Raspi imagerを、https://www.raspberrypi.org/software/ からdownloadする (SDHCに書き込む) (SDHCからブートし、立ち上げ中に出てくる質問等に答えて立ち上げる) (SSHを有効にする) (xrdpをインストールする) sudo apt install xrdp SSDを取り付けて、SD copierでSSDに書き込む (power offし、SDHCを抜き)SSDから立ち上げる ※ SSDに直接書き込んだ場合は、この後、SSH有効化及びxrdpのinstallする。 これ以降、HDMIインターフェイス及びキーボード、マウスの直結は不要となる。
投稿ナビゲーション
WordPress をインストールし、新規投稿をしようとすると、「更新に失敗しました。 返答が正しい json レスポンスではありません。 」と表示されるトラブルが起こった。 その際に行った対応策を備忘録として残す。
私の場合、2つの原因があった。
原因1 : Apacheにrewriteを登録するのを忘れていた。
対応1 : 以下のコマンドを実行しApache再起動sudo a2enmod rewrite
原因2 : Apacheにoverrideを許可していなかった
対応2 : 下記の様にConfigファイルを修正してoverrideを許可した。その後Apache再起動。sudo nano /etc/apache2/apache2.conf 以下のところを変更 (AllowOverrideの値をNoneからAllへ変更)
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
投稿ナビゲーション