ちょっと気になって
作ったbotスクリプト、さくらだと動かないのか。php.iniとかなんかそんなんなのかなあ・・・ http://bit.ly/47e7J
http://twitter.com/pha/status/5226950218
というつぶやきが気になったので、試しに1.3をダウンロードして、とりあえず $username と $password のみ変更して、他はデフォルト設定のまま、
- さくらのレンタルサーバ スタンダード
- PHP 5.2.10*1
上でreply_random.php を試してみると……
- http://(fuga).sakura.ne.jp/(hoge)/reply_random.phpをブラウザから叩くと、正常に動作していそう。
- sshログインしてコマンドライン上で(~/www/(hoge)/以外のディレクトリから)、
$ php ~/www/(hoge)/reply_random.php
とかすると、
<body>
まで表示されたところで停まってしまう。 - $ cd ~/www/(hoge)/ ; php ./reply_random.php
なら、正常動作する。
という状態でした。
対処方法*2
ということで、どうやら実行されるPATHが問題らしい、と思ったので、
<?php require_once("Services/Twitter.php");
を
<?php chdir(dirname(__FILE__)); // 追加 require_once("Services/Twitter.php");
としてやると、コマンドライン上・相対パス指定でも動作するようになりました。
PHPなんて触ったことないし正しい修正かどうかは解りません(苦笑)。
ついでに
cronの方も試しに
*/5 * * * * php ~/www/(hoge)/reply_random.php
で5分間隔で動かしておいて何回か @ 付きで bot 宛につぶやいてみたところ、動作していたようです。
ただ、さくらの場合
実行頻度が1時間以内に連続する場合や、CPU処理時間が60秒以上連続で利用される場合、予告なく設定解除される場合があります。
https://secure.sakura.ad.jp/rscontrol/rs/crontab
とあるので、現在は停止しており、あまり深くは追求していません。
5分に1回くらいなら許してほしいなぁ…。
*1:PHPは初めて使うので、設定等は何もいじっていないデフォルト状態