[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