ずっと言ってたTwitterBOTでのプロフィール画像変更処理の続き。
例のAPIの件は復旧したようなので(※2010/8/7現在復旧してません)相変わらずがりがりとやってみてるんだけど、やっぱりプロフィール変更がうまくいかない。
もしかしたらatPagesがダメなの?(atPagesのサービス仕様で外部ファイル呼び出しNGがあるがこれが関係している???)
…というわけでスクリプトが悪いのかatPagesが悪いのかを切り分けするため、自分PCにPHPをたててみることにした。
なんかものすごく回り道してますが…
WindowsVista(Home)+IISという環境での構築になりました。
えっと、罠が罠でなかなか動かず大変でした。
いろいろやりすぎてgdgdですが、うまく動かなかったときの切り分け参考でキーワード載せときます。
技術性にはかけるので、気になったキーワードでぐぐってください(なんという丸投げ)
(IISのインストール系は省きます。ぐぐれば良いページ一いっぱい見つかります)
(インストールしたPHPは 5.2.14。「Non Thread Safe」のインストーラでインストール)
■isapとFastCGI
Vista環境なのでFastCGIを使うでOK。よくわからず「php5isapi.dllがないよぉ」と嘆いてはみたが不要だった。
IISのハンドラマッピングで「php-cgi.exe」で動かします、とすればOK。
↑PHPインストーラ版だと勝手にやってくれていた。
■インストール先は故意に変更する
デフォルトインストール先が「C:\Program Files\PHP」になりますが、先人の知恵によるとあまりよくないっぽいのでパスに空白がないところにインストールしましょう。パスに空白はトラブルの元。
■動作確認で「phpinfo()」が動かない
私はこれでドハマリしました。
手順としては
1)http://localhost/にアクセスするとIISのようこその青い画面が出る
2)C:\Inetpub\wwwroot直下にphpinfo();だけを書いたPHPを置く。ファイル名「info.php」
3)http://localhost/info.php にアクセスする
(3)で真っ白になった。
●確認事項
・ドキュメントパスが誤ってないか?
「C:\Inetpub\wwwroot」直下にてきとーなhtmlを起きそこのURL叩いて表示できる? →できた。問題なさそう
・php.ini読めてるの?
コマンドプロンプトで「"C:\PHP\php-cgi.exe" -i」を叩くと、phpinfo()をブラウザで表示する時と同じHTMLを標準出力できるっぽい。
(exeのパスはPHPインストールパスに読み替えてください)
こちらで確認したところ「Loaded Configuration File」でちゃんとiniを読んでいることが確認できた。 →問題なさそう
・phpinfo();のファイル…このように書いてません?
<?
phpinfo();
?>
こうしていてかつ、php.iniにて「hort_open_tag = Off」と設定している場合
(しかもこれデフォルト)、PHPの開始文字列を「<?php」と書かないとPHPと認識しないらしい!!
たしかになんだかプレーンテキストっぽかった。
なので、info.phpを
<?php
phpinfo();
?>
に修正しブラウザから叩くと… →できた~!!
PHPinfoを表示させることができました。
環境が悪いのかIISが悪いのかVistaの
死ぬほどうざい強力なセキュリティが邪魔してるのかノートンが悪いのかと四苦八苦しましたが、まさかテスト用PHPファイルが悪いとは思わず、ここに行き着くのに大変苦労しました…。
付け焼刃でいじると駄目ですね。根本的に理解する努力が必要ですね。
ともかくここまで…あとは本題のBOT動かすだけだ。前途多難orz