@madmamor です。
昨日は @kenji_s さんの
FuelPHP でのセキュリティ対策(1)
でした。
今日は、FuelPHPのTasksについて書きます。
ドキュメントは、以下になります。
公式:
http://docs.fuelphp.com/general/tasks.html
日本語:
http://press.nekoget.com/fuelphp_doc/general/tasks.html
早い話が、コマンドラインやcronで実行できるFuelPHPのクラスです。
ローカルでも実行できますが、今回は、せっかくなのでサーバでやってみました。
尚、以下の方法でインストールを試みましたが、エラーが出てしまい、
とりあえずwgetでDLして解凍しました。
http://docs.fuelphp.com/installation/instructions.html
http://press.nekoget.com/fuelphp_doc/installation/instructions.html
DL/解凍する場所は、どこでも良いです。
phpのバージョンが5.2系以前では動きませんので注意して下さい。FuelPHPは5.3.xで動作します。
以下、FuelPHPに標準で入っているTasksのRobotsクラスを扱って話を進めます。
--
%wget --no-check-certificate https://github.com/downloads/fuel/fuel/fuelphp-v1.1.zip
%unzip fuelphp-v1.1.zip
%cd fuelphp-v1.1
%php oil refine robots
--
"KILL ALL HUMANS!" _____ / /_____\ ____[\*---*/]____ /\ #\ \_____/ /# /\ / \# \_.---._/ #/ \ / /|\ | | /|\ \ /___/ | | | | | | \___\ | | | | |---| | | | | |__| \_| |_#_| |_/ |__| //\\ <\ _//^\\_ /> //\\ \||/ |\//// \\\\/| \||/ | | | | |---| |---| |---| |---| | | | | |___| |___| / \ / \ |_____| |_____| |HHHHH| |HHHHH|
%php oil refine robots
は
%php oil r robots
としても良いです。
このコマンドにより、fuel/app/tasks/robots.phpのrunメソッドが実行されます。
1つの処理だけなら、runメソッドのみ実装すれば良さそうです。
%php oil r robots "Kill all Mice"
とすれば、runメソッドに対して"Kill all Mice"を引数として与えることがでできます。
また、fuel/app/tasks/robots.phpには、runメソッドとは別にprotectメソッドがあります。
%php oil r robots:protect
とすれば実行できます。
runメソッド以外を実装して実行する場合はこの形になるようです。
"PROTECT ALL HUMANS" _____ / /_____\ ____[\*---*/]____ /\ #\ \_____/ /# /\ / \# \_.---._/ #/ \ / /|\ | | /|\ \ /___/ | | | | | | \___\ | | | | |---| | | | | |__| \_| |_#_| |_/ |__| //\\ <\ _//^\\_ /> //\\ \||/ |\//// \\\\/| \||/ | | | | |---| |---| |---| |---| | | | | |___| |___| / \ / \ |_____| |_____| |HHHHH| |HHHHH|
さらに、以下のように、フルパスでも実行可能です。結果は同じです。
php /home/[username]/xxx/yyy/fuelphp-v1.1/oil r robots
このような感じで、DLして即、実行できます。
fuel/app/tasks/robots.phpを参考に、必要な処理(クラスとメソッド)を実装。
これをcronで実行するようにしておけば、わりとあっさりいけそうです。
尚、サーバによってはphpコマンドで反応するphpのバージョンが古い可能性があります。
以下のようにしないといけないかもしれません。。。
/usr/local/php/5.3.8/bin/php /home/[username]/xxx/yyy/fuelphp-v1.1/oil r robots
P.S.
いろいろなライブラリを適当に寄せ集めてやっつけで作った
cron用の各種プログラムをFuelPHPのTasksでリプレイスしたい。。。
明日は @kenji_s さんの
FuelPHP でのセキュリティ対策(2)
の予定です。
No comments:
Post a Comment