【PHP】CGI版とCLI版の違いについて

目次

CGI版

CGIとはCommon Geteway Interfaceの略で、Webサーバー経由で実行される方式

  • CGI版とは別に、Webサーバーにビルドインされているモジュール版というものもある。

モジュール版とCGI版の違い

  • CGI版:php.exeのような実行形式ファイルを実行しているイメージ(XAMPP,MAMP)
    • php.iniファイルなどでディレクトリによって実行するPHPのバージョンを切り替える事ができる
    • 実行速度がモジュール版に比べて遅くなる
  • モジュール版:Apach内部のプロセスとしてPHPを実行する(Apach内部から呼び出す)
    • 内部で処理できるので、処理がモジュール版と比べて高速
    • 実行するPHPのバージョンをディレクトリによって切り替えることはできない

CLI版

CLIとはCommand Line Interfaceの略で、OSコマンドとして実行できる方式

以下のように、phpコマンドの引数にファイルを渡すことで実行結果が表示される

1
php test.php

主な違い

出力結果が主な違いとして挙げられます。

以下のようなPHPファイルを実行したときに

1
2
<?
echo "test";
  • CGI

    • ヘッダー情報が自動で付与される
      1
      2
      3
      4
      X-Powered-By: PHP/8.0.0
      Content-type: text/html

      test
  • CLI

    1
    test

今実行しているPHPがどっち版なのかを確認する

コマンドラインで、以下のコマンドを実行するとCLIなのかCGIなのか確認できる((cli)の部分)

この実行結果の場合、CLI版

1
2
3
4
5
6
$ php -v
PHP 8.0.0 (cli) (built: Jun 7 2021 02:19:47) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans
Author

Daiki Iijima

Posted on

2021-05-24

Updated on

2024-04-17

Licensed under