WordPressのチューニングでwp-cron.phpを手動実行する時の注意点

以前、WordPressの負荷が上がっており、様々なチューニングをしました。

まず、サーバのチューニングでOPcacheを有効化。続いて、W3 Total Cacheをインストールします。ページがキャッシュされて高速になります。

また、wp-cron.phpを手動で更新するように設定。wp-config.phpの一番上に

define (‘DISABLE_WP_CRON’, ‘true’);

を記述します。次に、定期的な実行を行うためにcrontabでwp-cron.phpを実行するようにします。このwp-cron.phpはサイトにアクセスがあるたびに実行されるため、それなりにアクセスがあるサイトの場合は負荷が高くなります。

  1. OPcacheでPHPファイルの高速化
  2. W3 Total Cacheのプラグインでページやオブジェクトなどのキャッシュ化
  3. wp-cron.phpを定期的に実行

これで安定した運用ができていました。

続きを読む

しばらく見ていなかったらWordPressがハッキング…

こちらのブログをしばらく更新していませんでした。WordPressが4.7.1から4.7.2となり、他サイトのWordPressの更新をしていた所、こちらのWordPressの更新を見ると「Hacked By GeNErAL」の投稿が。

おそらくWordPressのバージョン更新していなかった事が原因で、なりすましの投稿が行われたのでしょう。

早速、パスワードの変更、自動更新の設定を行いました。

400 Bad Requestを.htaccessでは処理できない

WordPressで日本語URLを使っている場合、URLが以下のようになります。

http://takahitokikuchi.poitan.net/2013/05/30/%E3%83%AA%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%88%E3%82%AB%E3%83%BC%E3%83%89%E3%83%97%E3%83%A9%E3%82%B9%EF%BC%88jcb%EF%BC%89%E3%82%92%E7%94%B3%E3%81%97%E8%BE%BC%E3%81%BF/

%E3%83のようになり、この%**の問題で、「400 Bad Request」と表示されるということを書いたことがあります。これは、リンク自体を修正することでエラーにならないようにしましたが、外部のリンクの場合はリンクを修正することはできません。

続きを読む

パスワードやシリアル番号(シリアルコード)の発行時の注意

用紙にシリアル番号が書かれていて、「Webサイトにアクセスし、シリアルコードを入力してください」というキャンペーンに応募しました。QRコードがあったので携帯でアクセスして、応募ページをクリックしてもリンクが飛びませんでした。これは今回の件とは全く関係ありませんが、リンク先くらいはチェックして欲しかったですね。

そこで、PCからアクセスすることにしました。PCの場合は別ページに飛んだため、リンク切れはありませんでしたので、シリアル番号を入力して「確認」ボタンをクリック。しかし、「不正なコードです」と表示されます。

続きを読む

WodrPressのピンバックURLが200バイト制限で「400 Bad Request」になる問題

WordPressには記事を参考にしましたというピンバック機能があり、自サイト内でもその機能が有効になっています。先日、ふと自分のピンバックURLをクリックすると「400 Bad Request」と表示されました。いくつかのURLをクリックしてみましたが「400 Bad Request」です。

このブログはパーマリンクを日本語利用しているため、URLが長くなっています。この記事のパーマリンクの長さは238バイトで、WordPressのURL制限が200バイトとなっているため、データベースには200バイトまで登録され、38バイトは切り取られてしまいます。

本当のURL

http://takahitokikuchi.poitan.net/2012/10/02/wodrpress%E3%81%AE%E3%83%94%E3%83%B3%E3%83%90%E3%83%83%E3%82%AFurl%E3%81%8C200%E3%83%90%E3%82%A4%E3%83%88%E5%88%B6%E9%99%90%E3%81%A7%E3%80%8C400-bad-request%E3%80%8D%E3%81%AB%E3%81%AA%E3%82%8B/

データベース内のURL

http://takahitokikuchi.poitan.net/2012/10/02/wodrpress%E3%81%AE%E3%83%94%E3%83%B3%E3%83%90%E3%83%83%E3%82%AFurl%E3%81%8C200%E3%83%90%E3%82%A4%E3%83%88%E5%88%B6%E9%99%90%E3%81%A7%E3%80%8C400-bad-reques

続きを読む

Postfixでメール受信後にPHPプログラムで処理を行う(3/3)

前回まででPostfixの設定は終了しているため、PHPの処理を書いて行きたいと思います。

11. mimeDecode.phpのインストール

メールを処理するのは大変ですので、mimeDecode.phpを使います。下記のコマンドでインストールして下さい。私の環境ではpear install Mail_MimeDecodeを行わなければmimeDecode.phpがインストールされませんでした。

# pear install Mail_Mime
# pear install Mail_MimeDecode

12. test.phpの作成

Postfixの設定でtest.phpにメールを渡すため、test.phpを作成します。

$ vi /home/script/test.php

ファイルの内容は他のサイトで詳しく書かれていましたので、そちらのリンクを参照して下さい(参考:stdinからのメール処理でメール情報を取得する)。

参考URLの補足として、Toを取得する場合は下記のようになります。

$to = $structure->headers['to'];

 

Postfixでメール受信後にPHPプログラムで処理を行う(2/3)

前回はPostfixのインストールまで行いましたので、今回はPostfixの設定まで行います。

6. ユーザを追加

バーチャルドメインで受けたメールを処理するユーザを追加します。

# groupadd -g 10000 vuser
# useradd -u 10000 -g vuser -d /var/spool/postfix/vhosts vuser
# chmod 771 /var/spool/postfix/vhosts

続きを読む

Postfixでメール受信後にPHPプログラムで処理を行う(1/3)

このブログはポイントやマイルに関する記事よりも技術的な記事のほうがアクセスが多いようで、微妙なブログになりつつあります…。

メール受信後にPHPで処理を行うプログラムを何度か作って来ましたが、毎回何度も設定を見直し、ようやく動くようになるということを繰り返してきましたので、そろそろ備忘録的にもこの設定をやれば動くという事を残しておこうと思います。

解説範囲は、メールサーバをSendmailからPostfixに変更し、メール受信後にPHPで処理し、送信元アドレス、送信先アドレスを取得するところまで行います。

続きを読む