PHP 5.2、5.3、5.4のモジュールの最小構成でインストールしてみた

今までPHPのインストールはyum経由でインストールとかレンタルサーバとかでデフォルトで使えるモジュールが統一されていない場合が多く、基本となる最小構成を調べたくなったので調べてみた。

OS: CentOS5.5にソースからインストール。
* — デフォルトでインストールされる

5.2.17 5.3.9 5.4.0 Remove directive
ctype * * * –disable-ctype
date * * *
dom * * * –disable-dom
ereg * * ?
fileinfo * * –disable-fileinfo
filter * * * –disable–filter
hash * * * –disable-hash
iconv * * * –without-iconv
json * * * –disable-json
libxml * * * –disable-libxml
pcre * * * –without-pcre-regex
PDO * * * –disable-pdo
pdo_sqlite * * * –without-pdo-sqlite
Phar * * –disable–phar
posix * * * –disable-posix
Reflection * * *
session * * * –disable-session
SimpleXML * * * –disable-simplexml
SPL * * *
SQLite * * –without-sqlite
sqlite3 * * –without-sqlite3
tokenizer * * * –disable-tokenizer
xml * * * –disable-xml
xmlreader * * * –disable-xmlreader
xmlwriter * * * –disable-xmlwriter
こんな感じ。
SQLiteがバージョンによって使えたり使えなかったりの様です。
おまけ:
各バージョンの extの中身
php 5.2 ./ext
bcmath      ext_skel_win32.php  json        ncurses       pdo_pgsql   snmp       tokenizer
bz2         fbsql               ldap        oci8          pdo_sqlite  soap       wddx
calendar    fdf                 libxml      odbc          pgsql       sockets    xml
com_dotnet  filter              mbstring    openssl       posix       spl        xmlreader
ctype       ftp                 mcrypt      pcntl         pspell      sqlite     xmlrpc
curl        gd                  mhash       pcre          readline    standard   xmlwriter
date        gettext             mime_magic  pdo           recode      sybase     xsl
dba         gmp                 ming        pdo_dblib     reflection  sybase_ct  zip
dbase       hash                msql        pdo_firebird  session     sysvmsg    zlib
dom         iconv               mssql       pdo_mysql     shmop       sysvsem
exif        imap                mysql       pdo_oci       simplexml   sysvshm
ext_skel    interbase           mysqli      pdo_odbc      skeleton    tidyphp 5.3 ./ext
bcmath      ereg                hash       mssql    pdo_dblib     pspell      sockets    tokenizer
bz2         exif                iconv      mysql    pdo_firebird  readline    spl        wddx
calendar    ext_skel            imap       mysqli   pdo_mysql     recode      sqlite     xml
com_dotnet  ext_skel_win32.php  interbase  mysqlnd  pdo_oci       reflection  sqlite3    xmlreader
ctype       fileinfo            intl       oci8     pdo_odbc      session     standard   xmlrpc
curl        filter              json       odbc     pdo_pgsql     shmop       sybase_ct  xmlwriter
date        ftp                 ldap       openssl  pdo_sqlite    simplexml   sysvmsg    xsl
dba         gd                  libxml     pcntl    pgsql         skeleton    sysvsem    zip
dom         gettext             mbstring   pcre     phar          snmp        sysvshm    zlib
enchant     gmp                 mcrypt     pdo      posix         soap        tidyphp 5.4 ./ext
bcmath      ereg                hash       mssql    pdo_dblib     pspell      sockets    wddx
bz2         exif                iconv      mysql    pdo_firebird  readline    spl        xml
calendar    ext_skel            imap       mysqli   pdo_mysql     recode      sqlite3    xmlreader
com_dotnet  ext_skel_win32.php  interbase  mysqlnd  pdo_oci       reflection  standard   xmlrpc
ctype       fileinfo            intl       oci8     pdo_odbc      session     sybase_ct  xmlwriter
curl        filter              json       odbc     pdo_pgsql     shmop       sysvmsg    xsl
date        ftp                 ldap       openssl  pdo_sqlite    simplexml   sysvsem    zip
dba         gd                  libxml     pcntl    pgsql         skeleton    sysvshm    zlib
dom         gettext             mbstring   pcre     phar          snmp        tidy
enchant     gmp                 mcrypt     pdo      posix         soap        tokenizer

IE8でnocache + SSLでファイルがダウンロードができない。

IE8でnocache + SSLでファイルがダウンロードができない。

いまさらIE8の話題です。

Internet Explorerでは、 ホスト名 – ファイル名 をダウンロード出来ません。
このインターネットのサイトを開くことができませんでした。要求されたサイトが様できないか、見つけることができません。あとでやり直してください。

みたいな感じのエラーがでる現象が発生。

Google先生を調べていたらここにたどり着いた。

http://pentan.info/php/ie_cannot_dl.html
上記のサイトにも書いてある通りこの3つの条件が重なった時になるようです
1. SSLを使用している。
2. Content-Disposition:attachmentを使用している。
3. キャッシュを保存しないようなヘッダーが出力されている。

改善策として、MSのサイトに
http://support.microsoft.com/default.aspx?scid=kb;ja;436605
1. Content-Disposition に inline を指定する
2. キャッシュを制限しないこと
とある。 が、zip(バイナリ?)を送信する場合、Content-Disposition: inlineでは、改善が見られず 結局 Pragma: public で問題は解説した。

ということで。

Content-Disposition: attachment;でダウンロードする際は、

Pragma: publicをつけておけってことで解決した。

ちなみに PHP user note http://www.php.net/manual/ja/function.header.php#102175
こんな記述を見つけたので実は常識だったりする?

Posted in Web

あけまして 2012年

年もあけて20日もすぎてしまいましたよ。びっくりです。

そんなわけで、特に抱負とかもなく、日数がすぎていくわけですがっ

今年はもっとブログかけるといいですね(説得力がすでになっていうね

PHP ctype_digitの変な挙動


http://jp.php.net/ctype_digit

整数の判別をするのに使われるであろう関数 ctype_digit()
エラーが起きたり起きなかったりする現象に遭遇

この関数を活用するには string を渡さなければなりません。 たとえば integer を渡すと常に FALSE を返します。


ということだったので、問題の箇所をトレースしてみたらintegerで渡っていることが判明
さくっと文字列で渡すことで解決…
しかし、trueを返すこともあったので気になって以下のようなスクリプトで確認すると

php 5.2.13

for ($i=-10; $i<=1000 ; $i++) {
    var_dump($i);
    var_dump(ctype_digit($i));
}

256上はtrueになる。ググッたところ 256以上は自動で文字列キャストするらしい
が、48~57もtrueになる… なんだか気持ち悪い結果になってしまったが
型がゆるいPHPならではな感じもしなくもない

アレルギー検査をしてきた。結果は…

どうも風邪っぽい症状。しかし、高熱もなく、喉も痛くなく、鼻と咳がでる。
毎年この季節になるとこの症状がでる。
もしや?と思いアレルギー検査をしてきた。(1万近くかかったorz)

検査といっても、血液を2本抜く程度だった。
結果は1週間後ということで、その1週間後の今日結果を取りに行った。

その結果は…
Continue reading

検索エンジン(robots)判定 大雑把編

ちょっと検索エンジンをUA(ユーザエージェント)を元に判定したくなり
手っ取り早い方法は無いか?とログから一定の法則を探してみた。

※タイトルにもある通り大雑把です
・http:// がある
・空白がない
ここまでで大部分が弾ける!(気がする)

これで判定漏れしたのを地道にリストアップ…
・wwwがある
・botがある
・@がある(メールアドレス)
これらの方法だと、概ねロボット判定できるとは思いますが、将来にわたり
ロボットではないUAもロボットと認識してしまう可能性もありますのでご注意を。
ちゃんと判定したい時は、UAリスト、IP判定をするといいと思います。

Javascript, Object.prototypeについて調べたのでメモメモ

今までJavascriptのprototypeについてよくわかっていなかったのでちょっと調べてみたのでメモ。
以前は、newしたときの動作が不明だったが、なんとなくわかった気がする。

//prototypeについての動作
stdObject = function(){}
stdObject.prototype.a = 'apple';
stdObject.b = 'orange';

obj = new stdObject;
console.log(obj.a); // apple ←引き継がれた (prototype.a)
console.log(obj.b); // undefined ← 引き継がれない
console.log(typeof obj.prototype) //undefined ←prototypeは無くなる

console.log(obj.n); //undefined
stdObject.prototype.n = "pine"; //元のオブジェクトを拡張してみる
console.log(obj.n); // pine ← 元オブジェクトのprototypeから参照される!

console.log(obj.hasOwnProperty("n")) // false ←obj自体に持ってない
obj.n = "berry";
console.log(obj.hasOwnProperty("n")) // true ←obj自体に持ってる

delete obj.n // 削除してみる
console.log(obj.n); //pine ← obj の n は消え、prototypeから参照されるようになった

// __proto__について
Firefoxの独自拡張らしく、IEでは参照できない。GoogleChromeには存在していた。
オブジェクトを new すると、オブジェクトのインスタンスを生成する。
この時に、インスタンスには、prototypeを引き継いだ__proto__ が生成される。
stdObject = function(){}
stdObject.prototype.a = "apple";
obj = new stdObject;
console.log(obj.__proto__); //object 
console.log( obj.__proto__.a ); //apple

Javascript(jQuery) で オブジェクトとかタグの存在を確認する

基本的な内容ですが、ちょくちょく忘れるので書いておく。
これをまとめているときに、prototypeと__proto__の挙動がちょっと理解できた気がするw
やっぱり、書いてまとめるって大切ですなーと自己満足

// オブジェクト(jQuery)があるかどうか
if (typeof(jQuery) !== undefined){ /** jQueryオブジェクトは存在してるよ! */ }

//プロパティがあるかどうか
obj = {foo:"muu",bar:"boo"}
if (obj.bar ){ /** true */ }

//if in 文法
if ("bar" in obj){/** true */}

//プロトタイプか判別
if (obj.hasOwnProperty("bar" )){ /** プロトタイプじゃないよ */ }



// 任意の要素(hogeクラス)があるか?
$(".hoge").length;

// チェックボックスがチェックされているかどうか
$("input[type=checkbox]:checked").length;

//ある要素が指定のクラスを持っているか
$("#hoge").hasClass("foo");

//子要素に特定の存在があるか
$("form:has(input)").css("border","1px solid silver");

600万人の女性に支持されるクックパッドというビジネス(書評)



女性600万人が利用するレシピサイト「クックパッド」ができる前からどうやって
多くの人々に使われるサイトになったか、というもの
全体的に、絶賛の論調ですがそれも納得できる、というもの

社長の佐野さんは、すごく努力家で徹底したこだわりをもっておられるようで
「毎日の料理を楽しみにすることで心からの笑顔を増やす」ことに徹している。

広告も、投資の話も理念に合わなければ、断るという撤退ぶり。
膨大なログからユーザの行動を分析し、サイト構造を最適化させページ表示も
夕方の忙しい主婦に合わせすぐ表示させるというレスポンスの良さも追求
こういった見えないところの努力が多くのユーザを惹きつけたのかもしれない。

サイトを見ただけでは知り得無かったクックパットの生い立ちなどがいろいろわかり
面白い本でした。Webの中の人、今日ものある方はぜひおすすめな本でした。

ウェブはバカと暇人のもの (書評)



ニュースサイトを運営されていた、著者の中川氏の実体験が元になっている。

自由な発言ができると思われているネットでも、ちょっとした発言の揚げ足を取り、バッシングの対象なり

執拗に個人を調べ上げ、多数で攻撃したりする「暇人」はいるし、
ニュースに対して、当事者(被害者)ではないのにクレームを出す「暇人」なユーザ
そういう意味は本書の内容はすごくまっとうに当たってる気がする。
ただ、ニュース編集という仕事だから見える世界もあったりするのかなーと思ったり。

ネットに過度に期待する企業にも触れられていた。

続きはWebで!とか、広告の広告をTVCMで流したり、そのWebの方はFlashで固められてたりして、
制作者の自己満足なサイト。「Web2.0」を界王拳の如くなにかすごいものとよくわからないまま
ユーザ置いてけぼりでは売上は上がらない。
こういうバズワードに、よくわからないままなんかスゴそうだけで乗っちゃう人結構居る気がする。。

”ネットは居酒屋であると居心地の良い店に自然と人が集まり、そこで楽しんでいるのだ”

B級ネタや突っ込みどころのあるネタ、身近に感じれるネタが受けるそうで
たしかに、普段はダラダラネットしてたりするんで、見に覚えはある、最近Twitterとか流行ってるもんだからさらに居酒屋感が増してる気がする。ツイ飲み?w

ネットを使ったからと、人と人の関係も、人の興味も変わらず
ネットあくまで道具でしかなく、その本質を理解して使わないとっていうのを再認識。
その居酒屋的なネットを頭のイイ人はお金にすることもできる。


ところで、この本でいくつか実話を元にした記事がでてくるがほぼ分かっている自分も暇人かw