Tips

CGI と PHP(モジュール版) の違い

投稿日:

レンタルサーバーにおける「CGI」と「PHP(モジュール版)」の違いについて書きます。

1. 「CGI」と「PHP(モジュール版)」の共通点

CGI」と「PHP(モジュール版)」のどちらも、Webページとしてプログラムを実行させる機能です。ウェブブラウザで特定のURLにアクセスすると、ウェブサーバー側でそれに対応するスクリプトを実行させることができます。

CGI では いろいろなプログラミング言語が使えますが、レンタルサーバーサービスによって、用意されているプログラミング言語に違いがあります。PHP も CGI として使うことはできるのですが、それよりはウェブサーバーのモジュールとして組み込まれた機能として利用される場合が多いため、「CGI」と「PHP(モジュール版)」という2つを取り上げています。レンタルサーバーでは、この2種類が用意されていることが多いです。

2. 両者の違いと「PHP(モジュール版)」の手軽さ

レンタルサーバーサービスを契約して利用する立場から見ると、「PHP(モジュール版)」を使う方がラクです。

その例として、HTML文書として「Hello!」と画面に表示する場合を比較してみます。

※ エックスサーバーを使った例になります。

1. CGI の場合

エックスサーバーでの CGI はいろいろなプログラミング言語が使えますが、ここでは Perl を使った例を示します。

ドキュメントルートとなるディレクトリに、以下の内容を記述した hello.cgi というファイル名のファイルを作成します。

#!/usr/bin/perl

print "Content-type:text/html\n\n";

print "<html lang=\"ja\">\n";
print "<head>\n";
print "  <meta charset=\"UTF-8\">\n";
print "  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n";
print "  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n";
print "  <title>Test</title>\n";
print "</head>\n";
print "<body>\n";
print "Hello!\n";
print "</body>\n";

ウェブブラウザでこのファイルにアクセスすると、画面に「Hello!」と表示されます。

※ 最低限の機能で説明したいので、perl のライブラリは使っていません。

2. PHP の場合

同じことを、PHP(モジュール版)でやってみます。

以下の内容をファイルを作成し、ドキュメントルートとなるディレクトリに hello.php というファイル名を付けます。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Test</title>
</head>
<body>
  Hello!
</body>
</html>

PHP の場合は HTML がそのまま書けるため、わざわざ print のような命令(関数)を使う必要がありません。
あえて、「Hello!」をPHPの命令で出力するのであれば、echo という命令を PHPのタグで囲います(<?php?>)。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Test</title>
</head>
<body>
  <?php echo "Hello!"; ?>
</body>
</html>

こちらも、ウェブブラウザからこのファイルにアクセスすると、画面に「Hello!」と表示されます。

2つのファイルを比べてみると、明らかに PHP の方が記述が簡単で分かりやすいです。

他にも両者の違いはいろいろありますが、これがPHPの一番の利点だと思います。

参考

-Tips

執筆者:fitallright

関連記事

WordPress のウィジェットに、特定のカテゴリの「最近の投稿」を表示する方法

WordPress において、特定のカテゴリ内の「最近の投稿」をウィジェットに表示する方法をご紹介します。 目次WordPress のウィジェットとは?手順設定方法TitleFilterPost de …

エックスサーバーに tree コマンドをインストールする

エックスサーバーは、SSH を使ってターミナルエミュレータでログインすることができますが、tree コマンドが使えません。 ということで、tree コマンドを導入する手順を紹介します。 目次1. tr …

no image

エックスサーバーの「WordPress簡単移行」機能

目次概要メモ簡単移行の処理について試してみたお知らせマニュアルページ 概要 エックスサーバーの「WordPress簡単移行」機能は、他社のサーバーで運営していた WordPress サイトを、エックス …

WordPress に Font Awesome 5 を導入する方法

WordPress に Font Awesome 5 を導入する方法について説明します。 目次1. はじめに本ページで説明する方法について2. 導入手順「SVG with JS」の導入手順「Web F …

Wayback Machine にサイトを保存させない

robots.txt ファイルとは? にも書いたのですが、Wayback Machine というサイトがあります。 Wayback Machine Wayback Machine は、世界中のウェブサ …

ロリポップ!「スタンダードプラン」
さくらのレンタルサーバ「スタンダードプラン」