はじめに
CLI SAPI の主な目的は、シェルアプリケーションを PHP で開発することです。CLI SAPI とその他の SAPI の間にはちょっとした違いがあり、 それを本章で説明します。CLI と CGI は多くの共通点がありますが、別の SAPI であるということも覚えておきましょう。
CLI SAPI は、 --enable-cli でデフォルトで有効となっています。 ./configure の際に --disable-cli オプションを指定して無効にすることもできます。
CLI/CGI バイナリの名前、位置、そして存在するかどうかは
PHP がどのようにインストールされているかによって異なります。デフォルトで
make を実行したときには、CGI と
CLI が両方ビルドされて、それぞれ PHP ソースディレクトリの sapi/cgi/php-cgi
と
sapi/cli/php
にできあがります。
両方とも php
という名前であることに注意しましょう。
make install のときにどうなるかは、configure
行に依存します。
configure で例えば apxs のような SAPI モジュールが選択された場合、または
--disable-cgi が指定された場合、
make install によって CLI が {PREFIX}/bin/php
にコピーされます。さもなければ CGI がそこにコピーされます。
つまり、たとえば configure で --with-apxs
を指定すると、make install での CLI のコピー先は
{PREFIX}/bin/php
となります。
既にインストールされている CGI バイナリを上書きしたい場合には、
make install の後に make install-cli
を実行してください。あるいは configure で
--disable-cgi を指定することもできます。
注意:
--enable-cli と --enable-cgi の両方がデフォルトで有効になっています。そのため、configure で --enable-cli を指定したからといって、make install で
{PREFIX}/bin/php
にコピーされるのが必ずしも CLI になるとは限りません。
PHP 5 以降、Windows 版の CLI はメインフォルダ内で php.exe
という名前で配布されます。CGI バージョンは、php-cgi.exe
として配布されます。さらに
PHP 5 では、configure で --enable-cli-win32
を指定すると、新しく php-win.exe
というファイルが配布されます。
これは CLI バージョンとほぼ同じですが、何も出力しないため、コンソールを必要としません。
注意:
自分の SAPI は何か?
シェルで php -v をタイプすると、
php
が CGI なのか CLI なのかわかります。 php_sapi_name() と定数PHP_SAPI
も参照してください。
注意:
Unix の
man
ページは、 シェル環境から man php とすれば見ることができます。