[PHP-users 1035] Re: 邪道でしょうか・・・PHP をスクリプトで起動する

Ryuzi Kambe php-users@php.gr.jp
Thu, 02 Aug 2001 18:29:24 +0900


> > で、この手段の部分で、「チェックするスクリプト」を
> > PHPで書いてしまいたいと考えています。しかしPHPは
> > Webサーバを介して実行するものであるので、Perlや
> > Shellのように実行することはできないように思います。
> 
> 勘違いをされているようで…
> PHPをスタンドアロンでコンパイルすればいいのでは?
> --with-apache
> などのオプションをつけなければ、スタンドアロン版でコンパイルされますので、
> php
> というコマンドが使用可能になります。

そうなのですか(^^;
CGI版の仕組みを考えれば出来て当然ですね。これはただそれを
Webサーバからのアクセスに用いないというだけで。

さっそくPHP4.0.6のソースからコンパイルしました。
(Linux Kernel 2.2.x で、DBはMySQL 3.23.32)

> スクリプトの先頭に
> #/usr/bin/php -q
> と書けば、perlやshなどを同じように利用可能です。

#shellはbashを使っています。

スクリプトを書いた際の呼び出し方ですが、
まずはshellのように#/usr/bin/php -qと書き、実行権をつけて
.コマンドで

./scriptname.php

と実行したところ、どうやらbashスクリプトと
勘違いしたらしく、

echo "test";

のみ表示してあとは書式エラーと出ます。そこで

#!/usr/bin/php -q

としたところ、
./scriptname.php
でphpとして解釈してくれました。

また、built-inのMySQL関数を使い、MySQLへの
接続にも成功しました。

<余談1:ロジックの記述について>

スクリプトといえどロジックの部分は
<? ?>で囲む必要があり、それ以外の部分は
HTMLと同じくそのまま出力されるのが面白いですね。

</余談1>
<余談2:PHPのヘッダについて>

コマンドラインで -q のHTMLヘッダ抑制オプションをつけずに

php scriptname.php

とすると、ヘッダが見えますが、PHPの出力するヘッダって

X-Powered-By: PHP/4.0.6
Content-type: text/html

だけなんですね。意外にシンプルで驚きました。

</余談2>

Ryuzi Kambe
kambe@mc.kcom.ne.jp