Archive for the ‘WordPress’ Category

WordPressのxmlrpc.phpに対する攻撃って結構頻繁にあるものなんですね。インターネットで検索すると色々対策されている記事を見かけますが、実際に自分のサイトが攻撃の対象になるとは思っていませんでした。

.htaccessやxmlrpc.phpのパーミッションで対応する方法などいくつかあるようですが、sshなどでサーバーに接続ができない環境にある時などはすぐに対応するのはなかなか難しいです。そこで今回はAmazon Web Services VPCのセキュリティ、Network ACLsのファイアウォール機能を使って、ブラウザからAWS Management ConsoleにアクセスさえできればIP制限できる方法で対策してみたいと思います。

Network ACLsについてはこちらを参考にしてください。
ネットワーク ACL – Amazon Virtual Private Cloud

ある時、アクセス数が増加してサーバーへの負荷が急にかかり始めました。Scalingしてもある程度時間が経つと同じ状況になってしまいます。アクセスログを確認してみたところ

2017-02-27T23:00:33.822147Z example.com 51.00.00.00:54628 172.00.00.00:80 0.000029 0.236676 0.000022 200 200 250 370 “POST http://54.00.00.00:80/xmlrpc.php HTTP/1.0″ “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)” – -

のアクセスログが多発していることがわかりました。
続きを読む »

ある時から急に、t2.microインスタンスで稼働しているWordPressのサイトが「データベース接続確率エラー」で1週間に一度くらいの頻度で落ちるようになってしまいました。
いろいろ調査してみると、どうやらMySQLが落ちてしまっていることがわかりました。

こちらがその時のログです。

151010 03:21:04 mysqld_safe Number of processes running now: 0
151010 03:21:04 mysqld_safe mysqld restarted
151010 3:21:04 [Note] /usr/libexec/mysql55/mysqld (mysqld 5.5.45) starting as process 4511 …
151010 3:21:04 [Note] Plugin ‘FEDERATED’ is disabled.
151010 3:21:04 InnoDB: The InnoDB memory heap is disabled
151010 3:21:04 InnoDB: Mutexes and rw_locks use GCC atomic builtins
151010 3:21:04 InnoDB: Compressed tables use zlib 1.2.8
151010 3:21:04 InnoDB: Using Linux native AIO
151010 3:21:04 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
151010 3:21:04 InnoDB: Completed initialization of buffer pool
151010 3:21:04 InnoDB: Fatal error: cannot allocate memory for the buffer pool
151010 3:21:04 [ERROR] Plugin ‘InnoDB’ init function returned error.
151010 3:21:04 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
151010 3:21:04 [ERROR] Unknown/unsupported storage engine: InnoDBB
151010 3:21:04 [ERROR] Aborting
151010 3:21:04 [Note] /usr/libexec/mysql55/mysqld: Shutdown complete
151010 03:21:04 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

注目すべきは
続きを読む »

迷惑メールのメッセージ

システムから送信されたメールがGmailの迷惑メールに振り分けられてしまうことたまにありますよね?

WordPressにコメントがあるとメール通知があるように設定していましたが、ある時、そのメールがGmailで迷惑メールに振り分けられていることに気づきました。

この事象が発生した環境は以下の通り。
●サーバー
・Amazon EC2
・Nginx
・WordPress(PHP)
・MySQL
●クライアント(メール)
・Gmail
・Google Chrome

送られたはずのコメント通知のメールがなかなかこないな〜
と思い、Gmailを開いて迷惑メールを見てみると、、、なんと!その通知メールがはいっておりました。
メールには以下のようなメッセージが。
続きを読む »

先日、久しぶりにブログを書こうと思い、WordPressで画像アップロードなどしてみると、なんと、HTTPエラーになるではないですか!?

続きを読む »

当サイトでは、ブログエンジンにWordPressを利用しています。WordPressでは、theme(テーマ)というテンプレートを差し替えることにより、サイトデザインを簡単に変更することができます。

WordPress › Free WordPress Themesより、フリーのthemeをダウンロードすることができますが、Developer’s blogでは、オリジナルのthemeを使用しています。このオリジナルthemeの作成時にある問題が発生していました。その問題が解決に至るまでの経緯と簡単な考察をまとめてみたいと思います。

RSSフィードの取得でXML パースエラーが発生していました。

通常は、「このブログを購読する」のリンクをクリックすると、当プログのRSSをWebブラウザのRSSリーダーに登録したりすることができます。→
※ お使いのプラウザにRSSリーダーの機能がある場合。
続きを読む »

Root Device TypeがEBSのInstanceを停止せずにCreate Image(EBS AMI)する方法で、運用中のInstanceからEBS AMIを作成しました。

このAMIを使ってInstanceを立ち上げれば、運用中のInstanceとまったく同じ環境のサーバを立ち上げることができます。そして、WordPressやそのプラグインのアップデートを、本番サーバに切り替える前に、事前に動作確認をすることができるので、

使用中のテーマなどが対応していなかったりすると、不用意なバージョンアップでデザインが崩れたり、最悪は画面が表示されなかったりするかもしれません。

という懸念も無くなります。

実際に試してみたので、手順をまとめておきたいと思います。
続きを読む »

Amazon EC2のMicro InstancesにWordPressをセットアップするで、完了したかに思われたWordPressのセットアップですが、実は1点漏れがありました。

エントリに挿入する画像などは管理者画面からアップロードできますが、アップロード後の画像サイズがフルサイズしか選べず、変更できない状態になっていた、というものでした。

ちょっと調べてみたところ、PHPの拡張モジュールGDというグラフィックライブラリが必要であることがわかりました。
続きを読む »

前回に続いて、Amazon EC2のMicro InstancesにPHPをセットアップするで構築した環境にWordPressをインストールしたいと思います。
自宅サーバー再構築 その16 CentOS 5.2 にWordPressを導入してブログサイトを構築するを参考に進めました。

データベースの作成

まず、WordPressで使用するデータベースを作成します。

mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)

※ データベース名は任意の名前を指定することができます。ここではwordpressとしています。

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| wordpress |
| mysql |
+——————–+
3 rows in set (0.00 sec)

作成されました。
続きを読む »

現在flashcastでは、WordPressのテンプレートにオリジナルのThemeを使用しています。

以前使っていたBloggerで実装していた、いくつかの機能を移植しつつ、オリジナルのThemeを作りました。

せっかくなのでWordPress.orgにアップしたいと思います。

まずは、WordPress.orgのアカウントを作成します。
アカウント登録はこちらから。

WordPress › Free WordPress Themes

画面は、こんな感じです。
続きを読む »

httpsでホームページにアクセスすると、以下のような警告が出る場合があります。

このページにはセキュリティで保護されている項目と保護されていない項目が含まれます。

保護されていない項目を表示しますか?

これは、呼び出したhtmlの中にhttpのコンテンツが含まれているのが原因です。例えば、htmlはhttpsで呼び出しているのに、htmlの中に含まれる画像がhttpで呼び出されているような場合に起こったりします。

jQueryのライブラリのひとつにthickboxというのがあります。これをhttpsで利用すると、httpのコンテンツを表示しようとしているわけではないのに、IE6で同様の警告が出ます。

ie6
続きを読む »