PHP

CLIを利用したPHPのデバッグ方法について調査&まとめ。

PHP CLIとは?

PHPスクリプトの実行は、Webサーバー経由での実行(CGI版)だけでなく、Webサーバーを経由せずコマンドライン上での実行(CLI版)が可能です。

(厳密に言うと、ApacheでPHPを実行する場合はCGI版ではなく、Apacheのモジュール「mod_php」経由=Apacheの一部としてPHPが処理されています。)

CLIとは - PHP用語 Weblio辞書

CLI シー・エル・アイ
【英】 Command Line Interface
PHP言語をコマンドライン上から実行するためのSAPI(Server Application Programming Interface)。PHPバージョン4.3からデフォルトでインストールされるようになった。CLI版のPHPは、カレントディレクトリの扱い、スクリプトの動作時間制限、エラーの表示方法などがCGI版と異なっている。

CLI - Wikipedia

コマンドラインインタフェース (Command line interface) 。キャラクターユーザインターフェース(CUI)と同義。

キャラクタユーザインタフェース - Wikipedia

キャラクタユーザインタフェース (character user interface、略称 CUI、和製英語)、コマンドラインインタフェース (command line interface、略称 CLI)は、コンピュータにおいて、キーボードを用いて入力を行い文字によって出力を行う様式のユーザインタフェースである。グラフィカルユーザインタフェース (GUI) の対義語として使われる。
CUI (character user interface) という呼称は基本的に日本だけで通用するものであり、英語圏などではCLI (command line interface) という呼称が使われる。
日本においても会話などではコマンドラインやコンソール(端末)と呼ばれることが多い。

PHP CLI/CGI SAPI - とみぞーノート

phpコマンドにはCLI版(CLI SAPI)とCGI版(CGI SAPI)がある。これらはそれぞれシェル(コマンドライン)アプリケーション向け、CGIとしての実行向けになっており動作が異なる。
CLI/CGI版の大きな違いは、コマンド実行時にHTTPヘッダを出力するか否か。
CLI版はコマンドラインからの実行向けにコマンド実行時にHTTPヘッダを出力しない。

CGIとPHPは違う!と言って聞かない人がいます - CGI - 教えて!goo

CGIとは、Coomon Gateway Interface の略で、サーバーに対してクライアントから要求があった場合、その要求を「他のプログラム」に渡してそのプログラムに処理を任せる仕組みのことです。
 他のプログラム、Perlやシェルスクリプト、Python、Ruby、C;;など色々な言語が使えます。・・・これらを【CGIプログラム】というが、【CGI】とは別。
 PHPは、その意味では普通はCGIに含めることはしません。特にapacheユーザーは。
 なぜなら、apacheでは、PHPは、mod_phpを使用するため、どちらかと言うと、SSI(Server Side Includes http://ja.wikipedia.org/wiki/Server_Side_Includes )に近いと考えたほうがよいからです。ただし、サーバーにAN-HHTTPDを使用する場合は、CGIとして動作させますし、WindowsIISで動作させる場合はISAPIを使用します。・・・apacheで動作している場合はCGIではないということです。
 結論から言うと、CGIとPHPは別のものです。

PHP CLIの確認

  • PHPがCLIを使えるようにビルドされているか、確認しましょう。
    # php -v
    とコマンドを打ちます。
PHP 5.4.15 (cli) (built: May  9 2013 08:20:20) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

という具合に、「(cli)」と表示されたら、CLI版としてビルドされたPHPインタプリターであることが分かります。
普通、PHPをパッケージでインストールしたら、CLI版になっているそうです。
手動でビルドする場合は、明示的にCLI版を指定してやればOKとのこと。

パスの確認

Linuxの場合、PHP CLI版がインストールされていて、パスが通っていれば、phpをコマンドとして実行できます。

# which php

と打って、

/usr/bin/php

等と表示されればOK。

または、

# whereis php

と打って、

php: /usr/bin/php /etc/php.d /etc/php.ini /usr/lib64/php /usr/share/php /usr/share/man/man1/php.1.gz

等と表示されればOK。

PHP CLIの使い方

(参考)PHP: コマンドラインの使用法 - Manual
↑いろいろなオプションが紹介されてます。

  • 使い方の一例
    「/var/www/html」というディレクトリの中にある「index.php」をコマンドラインで実行する場合。
    # cd /var/www/html
    # php index.php
    すると、index.phpがインタプリターで処理されて、結果が表示されます。

この方法でPHPスクリプトをデバッグすれば、Apache等のWebサーバーを経由しないでも、結果を確認できます。

参考リンク

PHP CLI - Google検索

コマンド・ライン PHP? もちろん可能です! - IBM developerWorks
PHPの便利なコマンドラインオプションを再発見 - PHPプロ!TIPS+
コマンドラインでPHPを使うときの11のTips | Suinasia


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-05-16 (木) 22:13:46 (1590d)