くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

サーバ再起動

2011-01-31 09:35:26 | SEまわり
自宅サーバが再起動してた。

原因不明。 正常にシャットダウンされたものではなかったようで、起動時にチェックがかかってた。

何らかの原因で、サーバが予期せず再起動した場合も、last の記録は reboot って出るのが正しいのだろうか。

 % last reboot
 reboot ~ 月 1 31 08:46

こういう表示を見ると、人かシステムが reboot コマンドを発行したのかと思ってしまう。

どうなんだろう。

CakePHP辞典

2011-01-10 18:23:17 | SEまわり
子供に買ってあげようと思った本を探しに出かけてきた。

本は大体ネットで買うんだけど、どこも売り切れなので、ダメで元々で出かけた。

ところが、駅の書店であっさり見つかったため、二冊(姉妹の分)買って、早速郵送した。


何かおもしろい本はないかと見回っていたら、CakePHP 本の新しいのを見つけた。

【送料無料】CakePHP辞典

【送料無料】CakePHP辞典

価格:2,730円(税込、送料別)



1.3系にちゃんと対応しているのと、Js ヘルパーについて丁寧に書かれていたのが目に付いた。
また、全体的にリファレンスとしてきちんと整理されていて、良くできた本だなあと感心した。

CakePHP についてはいくつか本が出ていて、2,3冊持ってるけど、どう難しいのか、なかなか分かりやすい本が少ない。

上の本は、ぶ厚くて重たいが、リファレンスとしてとても良いと思った。

ということで、すぐに注文した。


ついでに「もしドラ」を見かけた。
読んでみたいけど、買うのもどうかと思うので、だれか持ってたら見せてください(おぃ

CakePHP on PHP 5.3系で Deprecated エラー多発

2011-01-08 16:25:23 | SEまわり
異なる環境で作ったモジュールを、PHP 5.3系に持ってきたところ、Deprecated: Assigning the return value of new by reference is deprecated 警告が沢山出るようになった。

 例:Deprecated: Assigning the return value of new by reference is deprecated in /www/cake/libs/cache/file.php on line 89

根本的な対策はそのとおりに、new の戻り値の取り扱いを書き換えてあげることなんだけど、CakePHP のコアライブラリをいじることはしたくない(管理が煩雑になる)ので、CakePHP 自身が対応して、そっちに更新するときまでは、この警告を表示しないようにすることにした。

変更箇所は、cake/libs/configure.php の、write()関数定義中、以下の赤字部分を追記。
エラー報告有無の判定レベルを変えている。

if (isset($config['debug'])) {
 if ($_this->debug) {
  error_reporting(E_ALL);
  if ( error_reporting() > 6143 ) {
   error_reporting(E_ALL & ~E_DEPRECATED);
  }

  if (function_exists('ini_set')) {
   ini_set('display_errors', 1);
  }

  if (!class_exists('Debugger')) {
   require LIBS . 'debugger.php';
  }
  if (!class_exists('CakeLog')) {
   require LIBS . 'cake_log.php';
  }
  Configure::write('log', LOG_NOTICE);
 } else {
  error_reporting(0);
  Configure::write('log', LOG_NOTICE);
 }
}

なお、この問題は CakePHP 1.3 系では解決済みだそうだ。
ということで、このあと早速更新した。影響を受けるアプリもほとんどなかったし。

1.2 系で動かす理由がある場合は上のやり方で対応するしかないと思う。
CakePHP を呼んでいる全てのアプリケーションに影響してしまうことが問題になるのなら、.htaccess でエラーレベルを変更すれば良い。