アフィリエイト広告を利用しています

データベース接続確立エラーの原因はプラグインだったみたいです

google.jpg

以前、WordPressでデータベース接続確立エラーが発生するという記事を書きました。

その時は、メモリの割り当て量を増やして様子見していました。

明かにエラーの発生頻度は減っていてほぼ解決したかなと思っていたのですが、先日、再びエラーになってしまいました。

ということで、エラーログを見てみたら、どうやらWP Statisticsというプラグインでエラーになっていたみたいです。

Duplicate entry '' for key 'page_id' for query INSERT INTO `wp_statistic _historical` (`value`, `category`, `uri`, `page_id`) VALUES ('1', 'uri', '', '') made by do_action_ref_array('wp_statistics_dbmaint_hook')

詳しくは分かりませんが、複数のアクセスが重なった場合にエラーになっているということでしょうか?(サーバーのスペックが低いというのもあると思います。)

たいしてアクセスもないブログだしアクセス解析はWP Statisticsでいいかなと思っていましたが、ボットだけはたくさんアクセスしてくるので、この際ということでGoogleアナリティクスに乗り換えてみました。

WordPressでデータベース接続確立エラーが発生している方、理由はそれぞれ違うかもしれませんが、何らかのプラグインが原因になっている場合もあるかと思います。

頻繁にエラーが出るようなら一度エラーログをチェックしてみてください。

WordPressアーカイブウェジットの表示件数を設定する方法

wordpress.jpg

WordPressの設定画面を見ると、最近の投稿ウェジットの表示件数を設定する項目はあるのですが、アーカイブウェジットの表示件数の設定する機能がなく、その表示件数を設定する方法を調べてみました。

functions.php

プラグインやテーマを使う方法もあると思いますが、functions.phpに追記するのが一番簡単です。

function.phpのどこかに以下のような内容を追記します。

function example_widget_archives_args( $args ) {
  $args['limit'] = 10;                                                                            
  return $args;                                                                                   
}

add_filter( 'widget_archives_args', 'example_widget_archives_args' );

$args['limit'] = 10の数字を変更することで表示件数を変更できます。

リンク

widget_archives_args | Hook | WordPress Developer Resources
https://developer.wordpress.org/reference/hooks/widget_archives_args/

WordPressで「データベース接続確立エラー」が発生するので対策してみました

wordpress.jpg

VPSで運用しているWordPressで

データベース接続確立エラー

が発生していて、その度にデータベースの再起動で乗り切っていたのですが、あまりに頻繁にエラーが発生するようになり、少し対策してみました。

InnoDBのバッファーサイズを変更

いろいろ調べていると、InnoDBのバッファーサイズを増やしてみると改善する可能性があるらしいとのことで、とりあえず512MBに設定してみました。

/etc/my.cnf

innodb_buffer_pool_size=512M

設定を変更して数ヶ月

以前は月1ぐらいの間隔でデータベース接続確立エラーが表示されていたのですが、変更後3〜4ヶ月経ちましたが、エラーが表示されなくなりました。

うまく対策できたような感じです。

InnoDBバッファサイズの初期値はかなり小さめに設定されているみたいなので、メモリに余裕がある場合は少し大きめに設定してみると良いのかなと思います。

リンク

MySQL :: MySQL 5.6 Reference Manual :: 14.5.1 Buffer Pool
https://dev.mysql.com/doc/refman/5.6/en/innodb-buffer-pool.html

WordPressのセキュリティには注意してください

wordpress.jpg

WordPressサイトのログを見ていたら、1日だけ異常に多くのアクセスがあり、しかも、その日のアクセスの大半が1つのIPアドレスという事からちょっと詳しく調べてみました。

パッと見て目に付くのがwp-config.php関係のアクセスの多さです。一部を抽出すると次のような感じのログでした。

getfile.php?file=..%2F..%2F..%2F..%2F..%2F..%2Fwp-config.php
download.php?file=..%2F..%2F..%2F..%2Fwp-config.php
general.php?file=wp-config.php
admin-ajax.php?action=..%2Fwp-config.php
pdf.php?fn=.pdf&file=..%2F..%2F..%2F..%2Fwp-config.php
macdownload.php?albid=..%2F..%2F..%2Fwp-config.php
?mdocs-img-preview=wp-config.php
?wpv-image=wp-config.php
?mdocs-img-preview=..%2Fwp-config.php

.htaccessでWordPressのコメントスパム対策をしてみました

WordPressのコメントスパムが酷いので.htaccessで対策してみました。

追加した内容は次のような感じです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.*
RewriteRule .* - [F]
</IfModule>

example.comの部分は実際のドメイン名に読み替えてください。

内容としては、リファラをチェックして、自サイトのドメイン名になっていないコメント送信アクセスは拒否(403 Forbidden)する設定になっています。

リファラの設定自体は難しい話ではないので、正しいリファラでコメントスパムを送信してくるボットもありますが、自分が運営しているブログではかなり有効な対策になっています。

より本格的な対策としてはreCAPTCHAを使うなどの方法もあると思いますが、ちょっと困っているぐらいであれば、.htaccessの書き換えがお手軽です。困っている人は試してみてください。

    >>次へ
プロフィール

PC好きのアフィリエイターですが、最近はアフィリエイトへの興味がやや減少傾向

このブログもほとんど更新できていませんでしたが、今後は気が向いたときにつぶやきを投稿する形で運用していこうかなと思っています

にほんブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

PVアクセスランキング にほんブログ村

カテゴリアーカイブ
当サイトについて
当サイトはA8.netが運営する会員向けブログサービス「ファンブログ」を利用しています。

当サイトに関してご意見等がありましたら、下記メールフォームより送信してください。今後の運営の参考とさせていただきます。
メールフォーム

Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。