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

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

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

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

続きを読む

ポイ探のサーバメンテナンスを行います

ポイ探のサーバも若干重くなってきたよう気がするのと、突発的なアクセスにも対応できるように、Webサーバ(httpd)を入れ替える予定です。

以前、ワールドビジネスサテライトで取り上げられた時に負荷分散用に利用したnginxを採用する予定で、負荷分散時のnginxのパフォーマンスが良かったためにポイ探サーバに採用しようと考えました。負荷分散時のサーバと現在のサーバではスペックも違うため一概に比較することはできませんが、ポイ探サーバのload averageは10以上、nginxのload averageは1~2程度でした。

ウェブサーバへのアクセスもnginxのサーバには普通にアクセスすることが出来ましたが、ポイ探サーバはほぼアクセス出来ない状態でしたので、パフォーマンスには期待ができると思います。

もし、思ったようなパフォーマンスが出ない場合や、何らかの不具合が出た場合は、現在のhttpdに戻しますが。

続きを読む

Windows版PHPでコマンドライン処理だけを行う

PHPPHPの便利なところは、コマンドラインの処理が可能なところです。通常はApache等のWebサーバのモジュールとして動かして利用しますが、コマンドラインで実行可能なため、cronを設定することにより、特定の時間にバッチ処理を行うことも可能です。ポイ探や買いログでも、cronでのバッチ処理は多く利用しています。

今回は、大量のログデータの処理を行う必要があり、そのファイルをどのように処理するかを考え、契約しているサーバで実行するよりもWindowsクライアントで実行できないかと考えました。実行するためにはWebサーバは不要ですので、PHP単体でインストール・実行可能かを検証してみます。

続きを読む

iMacにSSHでログインする

今回もiMacネタです。Mac OS Xは何度も書いている通りUNIX系のOSですので、Linuxサーバと同じように設定することができます。前回はiMacから外部のサーバにSSHで接続する時の文字化け対策を書きましたが、今回はiMacにSSHでログインするように設定して見ました。

今のところiMacにはWebサーバ等をインストールする事は考えていませんがインストールは可能です。Amazon EC2の方が開発環境には向いていると思いますので、iMacをサーバとして使う必要は無いと思うからです。もしAmazon EC2がなければWebサーバ等を設定していたかもしれません。

続きを読む

Tera Term MenuでPortを指定してログイン

Tera Termに自動でログインする方法としてTera Term Menuを使っている方も多いともいます。先日、SSHのポート番号を変更する方法を書きましたが、Tera Term MenuにはPort番号の変更に関する設定がありません(Tera Termを起動するとポートを指定できるのですが、Tera Term Menuにはポート番号がありません)。

今回はTera Term Menuで鍵認証、ポート番号指定してログインする方法を書きたいと思います。

続きを読む

SSHのセキュリティ設定(Port番号変更等)

SSHに関するセキュリティの設定の続きです。前回はパスワード認証から鍵認証への変更を書きましたが、今回はPort番号の変更、rootのアクセス拒否等、設定したほうが良い項目について書きたいと思います。

2.Port番号の変更
SSHは通常、22番ポートを使用しますが、それ以外のポートを使うように変更したほうが良さそうです。鍵認証にしていても、22番ポートを使っている場合は/var/log/secureログに下記のようなアクセスが出てきます。

Oct 31 08:58:54 server sshd[1111]: Illegal user sampleuser from ***.***.***.***

続きを読む

SSHのセキュリティ設定(パスワード認証から鍵認証へ)

国内の衆議院サーバへの不正アクセス、国土地理院サーバへの不正アクセス等、公的機関や民間企業のサーバに対する不正アクセスが相次いでいます。国土地理院のサーバはブルートフォースアタック(総当たり攻撃)でしたので、サーバのセキュリティ設定次第では攻撃が防げたと思います。

今回はSSHの設定について書こうと思います。まずは、設定するサーバにSSHでログインします。2つウィンドウを起動しておいたほうが便利です。1つは設定画面、もう1つは何かあった時のバックアップです。設定を間違えてsshd restartなどやってしまい、セッションを切断した場合は二度とログインできなくなってしまいますので複数ウィンドウを立ち上げて設定しましょう。

ここではTera Term Version 4.71での作業とします。

続きを読む

MySQLのレプリケーションの不具合、メンテナンス

MySQL弊社ではほとんどのシステムのデータベースMySQLを利用しています。レプリケーションの設定をしているのはポイ探だけですが、ある程度サイトが大きくなると更新系のSQLはMaster、検索系のSQLはSlaveと分けると快適に動作するサイトになります。ただ、レプリケーションの設定をしているとSlaveがエラーで止まっていたり、Masterに巨大なバイナリログが溜まっていたりします。そこでMySQLのレプリケーション運用時の注意点をいくつか書きます。

続きを読む

簡単なhttpdの起動確認スクリプト

弊社でもWebサーバをたくさん運用しています。ただ、サーバを監視するサービスは申し込んでいません。サーバといっても、やはり固まることはあります。その際、Webサーバのチェックツールを自分で作ることができますので、簡単なチェックツールの作り方と設置方法を書きたいと思います。まずは、サーバが何台あるかを考えて、相互に監視するように構成します。

  • サーバA
  • サーバB
  • サーバC

上記のように3台ある場合は、AがBを監視、BがCを監視、CがAを監視とすると、3台同時に落ちない限りチェックは可能です。例えば、サーバAでhttpdのチェック機能を作ったとしてもサーバ自体が固まるとチェックすることができなくなりますので、相互監視が必要です。

続きを読む