phpといえば、apacheと連携させてWEBサイトの表示!というのが一般的ですよね。でも、コマンドラインからも利用できます。
当たり前といえば当たり前なんですが、レンタルサーバでwordpressを運用している程度だと、コマンドラインからphpを使う機会など皆無に等しいわけです。
そういうわけで、今回はphpをコマンドラインで使う方法に関してです。
php入ってますか?
そもそもですが、サーバにphpが入ってないと動かないです。
なので、phpが入ってるかを確認して下さい。
# yum list installed | grep php
入ってない場合は、インストールの必要ありです。一番簡単なのはyumでインストールする方法ですね。
# yum install php
phpのパスを確認
次に、コマンドラインで実行するときのphpのパスを確認します。
正確なパスの確認方法はよくわかりませんが、代替的に以下のような方法でたぶんOK。
# find / -name php /var/lib/php /usr/bin/php /usr/lib64/php /usr/share/php
binはbinaryの略ですが、コマンドラインで使うツールとかは基本的にbinというディレクトリの下にあります。(経験的にそうです)
よって、この場合のパスは「/usr/bin/php」という感じです。
いざ実行!
パスの確認までできたら、あとはコマンドラインで実行するだけです!以下の例だと、「sample.php」というphpプログラムを実行しています。
# /usr/bin/php sample.php
引数を渡す方法
引数を指定して実行することも可能です。この場合は、phpのプログラム側にも引数を受け取れるような書き方をする必要があります。
# /usr/bin/php sample.php hello world
phpで引数を受け取る方法は簡単で、$argvという配列に勝手に入ってやってきます。なので、$argv[n]という感じで利用してあげるだけ。
ちょっと注意なのは、引数のひとつ目はプログラム名になるってことですね。言われればそうなんですが、意外と盲点だったり。
したがって、上記の例で言えば、$argv[0]は「sample.php」になります。
sapmle.phpが以下のようなプログラムだとすると、
<?php echo $argv[1]." ".$argv[2]; ?>
実行結果は以下のようになります。
# /usr/bin/php sample.php hello world hello world
おしまい
普段phpに慣れてる場合は、シェルスクリプトを作るよりもこっちのほうが簡単だったりするかもしれないですね。
もっとも、そういう人は、シェルスクリプトを書く機会自体がそんなに無かったりして(笑)