–opt か –quick をつけましょう(5.1以降は –opt がデフォルトらしい)
takasick のすべての投稿
cron起動のshellscriptでsudoしたらエラーが
sudo: sorry, you must have a tty to run sudo
とか言われて困ったので調べてみたところ、CentOSはいつからかsudoの設定が厳しくなったようで /etc/sudoers から
Defaults requiretty
をコメントアウトして対応。
CentOS 5.5(64bit) + Apache 2.2 + PHP 5.1でメモリー約1.7GBの壁
バッチ処理的なものを書いてたらぶち当たったのでメモ。
32bit環境だったらわかるんだけど、64bit環境でも部分的に32bitな部分が残ってるんだかなんだか、メモリーが約1.7GBしか確保できなくてエラーが出た。
大量にメモリーを使わないように書きなおして回避できたけど、なんだかちょっと納得行かない感じ。まぁそもそもそんなにメモリー使う実装はどうなのよ?というのもあるけど。。
CentOS5.5上のPHP 5.1.6 + APC 3.0.19で関数の二重定義が出来ちゃう?
動いてるプログラムを別環境に持って行ったら「Cannot redeclare」が出た。元環境の方では特にエラーは出てなかったんだけど、元環境の方もAPCを外してみたら同じエラーが出るようになった。
現象としては func.php に hoge() の定義があったとして、index.php から func.php を複数回 include() してもエラーにならない。
とりあえず function_exists() で二重定義しないようにしたけどさ。。
mod_rewriteでアクセス制御
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^0\.0\.0\.0$
RewriteRule ^.*$ - [F]
これで403が返せる。
Apacheのログにcookieの内容を出す
LogFormat に %{cookie-name}C でいいのね。
PHPで乱数を生成するrand()を調べた
http://www.php.net/manual/ja/function.srand.php を見ると、
注意: PHP 4.2.0 以降、 srand() または mt_srand() によりランダム数生成器にシードを与える必要はありません。 これは、この処理が自動的に行われるためです。
と、あったので、どんなもんかと検索してみたところ http://d.hatena.ne.jp/yoya/20080807 に行き着いた。
で、実際どうなってるんだ?と思いソースを調べてみた。
/ext/standard/rand.c の65行目に
php_srand(GENERATE_SEED() TSRMLS_CC);
があって、これが /ext/standard/php_rand.h の 52行目の
#define GENERATE_SEED() ((long) (time(0) * getpid() * 1000000 * php_combined_lcg(TSRMLS_C)))
で、php_combined_lcgは /ext/standard/lcg.c にあって、そこからlcg_seed()に行き着いたんだけど、
if (gettimeofday(&tv, NULL) == 0) {
LCG(s1) = tv.tv_sec ^ (~tv.tv_usec);
} else {
LCG(s1) = 1;
}
以下の部分でなぜランダムになるのか良くわからず。。
intel統合チップセットを使っているPCで出る右クリックのディスプレイ関係のオプションを消す
今こんなのあるんだね。インテル純正。
WordPressのiPhoneアプリでエラーが出るとき
URLに最後の”/”まで含むかたちで設定すると、きちんと設定できたように見えるんだけど、いざ編集しようとしてみると「Communication Error」でまともに使えないみたい。
結構悩んだあげく、URLの最後の”/”を消してみたら(このブログだと http://labo.samuraistyle.org/blog )なぜか解決。
(もしかしたらこの現象はサブディレクトリで運用している場合のみかも)
WordPressにobject-cache.phpを入れてみた
ページキャッシュだとSuper Cacheってプラグインが有名っぽいんだけど、行けるところまでダイナミックに行きたいと思ってオブジェクトキャッシュの方に挑戦。
オブジェクトキャッシュだと次のストレージを使うドライバが見つかった
- ファイル
- APC
- memcached
- Tokyo Cabinet
memcachedとTokyo Cabinetはインストールが面倒だったので今回はパスw ファイルの方は古いバージョンでの事例しか見つからなかったのでパス。ということで今回はAPCにしてみた。
参考: http://se-suganuma.blogspot.com/2010/07/wordpressapcobject-cache.html