2009/7/1 水曜日

さくらインターネットMySQLを自動バックアップして『暗号化』してgmailに送る

Filed under: MySQL, さくらインターネット, Zend Framework — ne-zu @ 13:09:52 このエントリをはてなブックマークに追加

さくらインターネットMySQLを自動バックアップしてgmailに送る: PHPの種 ブログで運用していたところ、記事にこんなコメントが。

ネットワーク越しにバックアップするとなると、何らかの暗号化をした方が望ましいと思いますが、何か良い方法はないものでしょうか。

確かに言われてみればそうですね。MySQLにブログデータしか入ってなかったので、セキュアな考えが抜け落ちてました。ありがとうございます。

さくらのレン鯖にはgpg2が入っているので、それを活用させてもらいましょう!

/usr/local/bin/mysqldump –opt -c -h [MySQL SERVER] -u [USERNAME] –password=[PASSWORD] [DB NAME] | /usr/local/bin/gpg -c –cipher-algo AES256 –batch –passphrase “[PASSPHRESE]” | /usr/local/bin/php ~/mailto.php -m [MAILADDRESS]

AES256で暗号化してから送るコマンドに変更です。gpgのデフォルトで出力結果が圧縮されるので、前回付けていたgzipはいらないでしょう。

復号も色々オプションを付けられますが、一番簡単なのは

$ gpg [filename]

です。

暗号化したら一応復号できるかどうかのチェックしておいてくださいね。

ちなみに共有鯖の悲哀か

Warning: using insecure memory!

と警告が出ることは避けられそうにないので、cronに登録する時は、

1> /dev/null

を追記しておくのが好ましいでしょうね。

2009/6/29 月曜日

ZendFrameworkで作る『イマドキ』のWebアプリケーション:第5回 Zend Framework 1.8と新しいZend_Tool|gihyo.jp … 技術評論社

Filed under: Zend Framework — ne-zu @ 13:28:55 このエントリをはてなブックマークに追加

PHPImage via Wikipedia

ZendFrameworkで作る『イマドキ』のWebアプリケーション:第5回 Zend Framework 1.8と新しいZend_Tool|gihyo.jp … 技術評論社

1.8のzfコマンドでプロジェクトを作成した場合,UNITテスト用のディレクトリが作成されたり,基本的なエラー処理を行うエラーコントローラやビューが用意されるようになりました。プロジェクトを生成して自動的に作成されるデフォルトページも,テキストだけだったものがグラフィックを含んだページに更新されています。

うーむ。Zend Frameworkの進化はやりおる。自分の知識が1.0以前ぐらいで止まってる。
ここらで勉強しなおさないとなぁ。
勉強って言っても、自分が楽をするためにやるんだけどね。
100の苦労を取り除くために99頑張る。

Reblog this post [with Zemanta]

2009/6/27 土曜日

さくらインターネットMySQLを自動バックアップしてgmailに送る

Filed under: MySQL, さくらインターネット, Zend Framework — ne-zu @ 10:12:04 このエントリをはてなブックマークに追加

さくらインターネットで MySQL のバージョンを 4 から 5 に移行: PHPの種 ブログ
↑なんて感じでさくらインターネットでのMySQLを5に変えたのですが、これでmysqldumpが(文字コード的に)安定したということで、前諦めた自動バックアップを設定しておこうと思いました。

mysqldumpしてメールで送るうんぬんは今までも色んなところでやられていると思いますが、今回困った点としては

  • uuencodeの添付ファイルだとgmailでうまく扱えない

です。


~ | uuencode attached.file | mail -s attached.file hoge@gmail.com

なんてお手軽にしたかったんですが、どうもダメみたい。

で、普通に添付メールとして送れるコマンドを探していたらmuttやらemailやらあるものの、どうにもさくらインターネットのレン鯖に素直に入れられそうになかったので、phpでさくっと作ってみました。とりあえずZend Frameworkで。

このぐらいはワンライナーで作れそうですが、敢えて?のZend Frameworkで。Pear_Mailとかもきっとあるに違いないけど全く調べて無いです。きっとある。

PHP:
  1. <?php
  2.     PATH_SEPARATOR . '[PATH TO ZENDFRAMEWORK]'
  3. );
  4.  
  5. require_once 'Zend/Loader/Autoloader.php';
  6. $autoloader = Zend_Loader_Autoloader::getInstance();
  7.  
  8. $opts = new Zend_Console_Getopt('m:');
  9. if (!$address = $opts->getOption('m')) {
  10.         echo('How to : mailto.php -m [mailaddress]');exit;
  11. }
  12.  
  13. $mail = new Zend_Mail();
  14. $mail->setBodyText('This is the text of the mail.');
  15. $mail->setFrom('somebody@example.com', 'Some Sender');
  16. $mail->addTo($address, 'Some Recipient');
  17. $mail->setSubject('MYSQL DUMP');
  18. $mail->createAttachment(file_get_contents("php://stdin"));
  19. $mail->send();

何も考えずにモジュールを持ってくるだけで簡単に作れますね。

Zend_Mail部分はZend Frameworkマニュアルそのまんまなので、本文や差出人とか、自由に変更してくださいね。添付ファイルに名前をつけたい場合は、マニュアルを参考に。

このスクリプトに標準入力からdumpを流し込みます。
スクリプトはmailto.phpと名付けてホームディレクトリに保存しました。

/usr/local/bin/mysqldump --opt -c -h [MySQL SERVER] -u [USERNAME] --password=[PASSWORD] [DB NAME] | gzip | /usr/local/bin/php ~/mailto.php -m [MAILADDRESS]

無事dumpしたgzファイルが添付されましたでしょうか。

上のコマンドが無事成功したなら、さくらコンパネからcronで登録しておきましょう!

ちなみに私はgmail宛に送信して、すぐにゴミ箱に行くようにフィルタリングしています。これなら30日は保存されますし、gmailの容量も食わないですしね。

2009/6/23 火曜日

さくらインターネットで MySQL のバージョンを 4 から 5 に移行

Filed under: DB, さくらインターネット — ne-zu @ 18:56:42 このエントリをはてなブックマークに追加

さくらインターネットで MySQL のバージョンを 4 から 5 に移行 - 転校生@Hatena

もう、まんま↑で私もMySQL4からMySQL5に移行しました。元々のデータがUTF-8で、mysqldump4をした際に出力されたSQLのエンコードがかな~り怪しかったですが、特に問題なくインポートできましたヨ。(たぶん)
かなりドキドキしましたが(^-^;

Zend_Loader::registerAutoloadは廃止

Filed under: Zend Framework — ne-zu @ 18:24:08 このエントリをはてなブックマークに追加

PHPの種 ブログ » require_onceでなくautoloadなんて記事を書いてましたが、Zend Framework 1.8.3でZend_Loader::registerAutoloadを使っていたら、

Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /home/php-seed/lib/php/zendframework/1.8.3/Zend/Loader.php on line 207

なんて言われてしまいました。registerAutoloadは廃止されるので、Zend_Loader_Autoloader使って!とのことです。

というわけで、さくっと

PHP:
  1. require_once 'Zend/Loader/Autoloader.php';
  2. $autoloader = Zend_Loader_Autoloader::getInstance();

変えておきました。とりあえずinclude_pathへのautoloadだけなら問題なし。詳しい使い方はマニュアルで!

2009/5/23 土曜日

SimpleXMLElement オブジェクトは serializeできない

Filed under: XML, 基本 — ne-zu @ 12:35:14 このエントリをはてなブックマークに追加

SimpleXMLElement オブジェクトは serializeできない - phaのPHPとか自習室 - はてな自習室

なーんか、Zend_Cache_Classがうまく動かないなーと思ってたら、原因は別のところに。

SimpleXMLElement オブジェクトは serializeできないらしい。

OMG!
なんでそんな仕様に・・?

2009/5/20 水曜日

Zend_Form_Element_Hash

Filed under: その他 — ne-zu @ 15:08:26 このエントリをはてなブックマークに追加

Zend Framework: Documentation

Zend_Form_Element_Hashなんて便利なものがあったのね。
いわゆるCSRF対策に一意のハッシュを組み込んでおく、例のやつ。

この要素は CSRF 攻撃からフォームを保護するものです。 送信されたデータがもとのフォームのユーザセッションからのものである (悪意のあるスクリプトからのものではない) ことを保証できるようにします。 これを実現するために、フォームにハッシュ要素を追加して あとでそのハッシュを検証するようにしています。

ハッシュ要素の名前は一意なものでなければなりません。 この要素ではオプション salt を使うことを推奨します。 名前が同じでも salt が異なればハッシュは衝突しません。

$form->addElement('hash', 'no_csrf_foo', array('salt' => 'unique'));

salt は、後から setSalt($salt) メソッドを使って設定することもできます。

内部的には、この要素は一意な ID を

Zend_Session_Namespace を用いて保存しており、 送信されたときにその内容 (TTL が期限切れになっていないかどうか) をチェックしています そして、'Identical' バリデータを使用して、 送信されたハッシュと保存されているハッシュを比較します。

'formHidden' ビューヘルパーを使用して要素をフォームにレンダリングします。

Identicalバリデータでチェックしてるはずなんだけど、エラーメッセージが

Value is empty, but a non-empty value is required

とか出ちゃうのは何故だろうか。何か間違えてるかな。。

2009/5/18 月曜日

FileMaker×PHPで作る、簡単・便利なWebアプリ

Filed under: その他 — ne-zu @ 17:03:13 このエントリをはてなブックマークに追加

IMG_0020Image by Malabooboo via Flickr

【コラム】FileMaker×PHPで作る、簡単・便利なWebアプリ (1) まずは2大ライブラリを比較 | エンタープライズ | マイコミジャーナル

目のつけどころが良いですね:-)
fileMakerは結構使っているところが多いですからね。

Reblog this post [with Zemanta]

『Zend Framework 1.8』が公開、クラウド対応を強化

Filed under: Zend Framework — ne-zu @ 13:54:21 このエントリをはてなブックマークに追加

『Zend Framework 1.8』が公開、クラウド対応を強化 - japan.internet.com Webテクノロジー

Zend Framework 1.8 では PHP フレームワークの拡張を図り、新たに Amazon.com の提供する『Amazon Elastic Compute Cloud』EC2 クラウド コンピューティング サービスに対応した。さらに、PHP 開発をスピードアップさせる新たな高速アプリケーション開発 RAD 機能も加わった。

ほっほう。Amazon EC2対応とな。
・・・どんなだろ?
何が楽になるのか検討がつかんが、ちょっと見てみよう。S3にさくっと対応してくれてたほうが嬉しいけど。

2009/4/21 火曜日

PHPで作る簡易Httpプロキシ

Filed under: ログ — ne-zu @ 13:37:37 このエントリをはてなブックマークに追加

widgetown 開発チームブログ(仮) » PHPで作る簡易Httpプロキシ

データ通信のチェックのために簡単なプロキシをPHPで作っちゃおう、と。

ウィジェットの開発でそれなりに面倒なのが、通信のテストです。

問題が起こった場合に、ウィジェット側なのかサーバー側なのかの
切り分けを行うのは、以外に面倒。

Webアプリであれば、ブラウザのデバッグツールが使えたり
(FirefoxのLiveHTTPHeadersとか便利ですねー)するのですが、
ウィジェットの場合そういったツールは使えません。

いいですねー。これを実装しておけば、Logを採ったりも簡単にできますしね。

次のページ »

Powered by PHP-SeeD and WordPress ME