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

関連記事

CodePen で書いたコードを自分のWebサイトに埋め込む方法

CodePen とは、Web上で HTML, CSS, JavaScript を書いてすぐに結果を表示することができるサービスです。 結果を確認しながら、コードを書いたり修正できるので、ちょっとしたW …

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

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

エックスサーバーに WP-CLI を導入する

WordPress は優れた管理サイトが用意されているため、ほとんどの操作をここから行うことができます。 しかし、何らかの原因で管理サイトにアクセスができなくなった場合に備え、別の操作方法を用意してお …

エックスサーバーのWAF機能について

エックスサーバーの WAF (Web Application Firewall) 機能について書きます。 目次1. WAF機能(エックスサーバー)の良いところ2. WAF機能(エックスサーバー)の残念 …

【エックスサーバー】サイトを編集する時は、mod_pagespeed をオフにしましょう

2019年3月27日:「mod_pagespeed設定」機能の新規設定の受付が終了しました。 「mod_pagespeed設定」機能の新規設定の受付終了について – 2019/03/27 …

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