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】投稿編集画面で画像(メディア)を追加する際に挿入されるURLを相対URLにする

WordPress の投稿編集画面で、「メディアを追加」ボタンを使って画像(メディア)を追加する際、挿入されるHTMLコードのURL部分は 絶対URL になります。 しかし、これだと不便なので「相対U …

no image

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

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

Webサイトに Font Awesome 5 を導入する方法

Font Awesome 5 の使い方をご紹介します。 目次1. Font Awesome とは?2. Font Awesome 5 の2つのフレームワークSVG with JSWeb Fonts w …

エックスサーバーに Node.js をインストールする

エックスサーバーは、SSH を使ってターミナルエミュレータでログインすることができますが、そのままだと Node.js が使えません。つまり、node コマンド(npm, npx も)が使えません。 …

【VPS, クラウドサーバー】MySQL (MariaDB) が突然停止する場合は、innodb_buffer_pool_size が大きすぎるかもしれません

VPS や クラウドサーバー(OS は Linux)を借りて、MySQL (MariaDB) を使っている場合のお話しです。 目次現象調査my.cnf で innodb_buffer_pool_siz …

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