\r\n\r\n
一般的なインターネットユーザーにとって、ウェブコンテンツの閲覧は簡単なことです。ブラウザーを開き、ウェブアドレスを入力すると、ほら。ページが表示されます。しかし、その一方で、あなたのために一生懸命働いてくれているソフトウェアがあります。多くのサーバーでは、コンテンツマネジメントシステムを使用して、お気に入りのコンテンツを作成し、提供しています。
コンテンツを画面に表示するためのさまざまな部分について見ていきましょう。
1990年代後半にウェブが普及し始めた頃、ユーザーがお気に入りのウェブコンテンツに簡単にアクセスできるようにするためのコンポーネントがたくさんありました。ホストサーバーから直接Webページを取得することから、より洗練されたシステムへと進化しています。
この間、ブラウザの無料化、アメリカオンライン(AOL)などのインターネットサービスプロバイダーによる無制限のダイヤルアップ接続、BBSシステムなどの閉じたコミュニティからオープンなWebベースのコンテンツへのユーザーの移行が進みました。しかし、情報が求められているにもかかわらず、生態系の一部が影響を受けてしまったのです。
初期のホームページはすべて手書き**のHTMLページが中心になっています。このため、特に今日の「動的」なウェブサイト(Perlなどの言語による電子商取引など)では、インラインスタイルや非常に多くのカスタマイズされたコードになることが多いのです。また、Webサイトを公開する過程では、FTP転送やWebホスティングなどの技術的な知識がまだまだ必要です。
その後、YahooやMySpaceなどの「プロフィール」サイトという形で、より多くのユーザー生成コンテンツが登場し始め、BloggerやLiveJournalなどのブログサービスがさらに進化し、デスクトップの「ウェブエディタ」によって、マークアップを知らなくても(魅力のない)ウェブページが作成できるようになりました。は、マークアップを知らなくても(見栄えの悪い)ウェブページを作ることを可能にした。これらの機能は、今日のユニバーサルコンテンツマネジメントシステムにインスピレーションを与え、ユーザーが簡単にできるようにしました。
次のセクションでは、CMSがどのようにこれらの作業を簡単に行うことができるかを詳しく説明します。
CMSアプリケーションは数多く存在しますが、その多くは以下のような共通点があります。
以下、順番に見ていきましょう。
各cmseの大きな違いのひとつに、サポートしているプログラミング言語があります。プログラミング言語は、サイトを「動的」にする、つまり計算やその他のロジックを実行するために使用されます。これらの操作は、フッターのコピーライトに現在の年を表示するような簡単なものから、数値レポートの追加や表示など多岐にわたります。
主要なWebプログラミング言語には、少なくとも1つのCMSが搭載されています。
これらの言語(およびその他の言語)の中で、PHPがコンテンツ管理システムの作成においてリーダー的存在となった理由は2つあります。まず、オープンソースであること、そして、そもそもすべての言語がオープンソースであったわけではないことです。その結果、安価なホスティングプランを持つ多くの小規模なウェブサイトでは、無料の言語として利用されています。さらに、ほとんどの点で、新しいユーザーが自分のサイトに独自の機能を侵入させることができるシンプルな言語である。最後に、apacheウェブサーバーは、非常に早い時期からPHPをモジュールとして搭載しています。その結果、世界をリードするウェブサーバーを素早く簡単に構築することができるようになったのです。
PHPに比べれば他の言語も進歩していますが(例えば、.NETはオープンソースになりました)、WordPressのような企業から大きなシェアを得るにはまだ時間がかかると思われます。
同様に、dnncmsはmicrosoftqlserverをサポートし、AlfrescoはOracleやdb2のような企業やJavaに適したデータベースをサポートしています。最後に、CMSに使用するデータベースは、ホスティング環境が提供するどのようなデータベースによっても駆動されるかもしれません。あなたのブログのホスティングアカウントでは、ほぼ間違いなくMySQLを使用できますが、あなたの会社ではOracleしか使用できないかもしれません。
データベースには、アプリケーションのファイル(ページテンプレート、アドオンなど)、メディア(画像や動画)、特定の設定を除く、ほとんどのCMSEのコンテンツが保存されています。しかし、あるページのテキスト、メディアファイルのパス、それがあるURLは、通常DBのテーブルに格納されています。
最後に、CMSはウェブアプリケーションであるため、ウェブサーバーが必要です。様々なモジュールを使用することで、Apacheはこれら4つの言語とそれ以上の言語に対応することができます。nginxやlighttpdなど、最近増えているウェブサーバーは、アドオンによってさまざまな言語セットに対応しています。
Webサーバーは、サイトのファイルを実行します。これらのファイルタイプ(.PHP、.JSPなど)は、通常、HTMLマークアップにプログラミング言語のコードを混ぜただけのものです。ウェブサーバーはページを処理する際に、その言語用のモジュール/プラグインの助けを借りて、遭遇したプログラミングコードを実行します。ページの処理が終わると、プログラミングコードはブラウザに適したコンテンツに置き換えられます。
上のコードをよく見ると、ヘッダーとページ・テンプレートを「取得」することで、実際にページの構築を助けていることがわかります。さらに複雑なのは、あるファイルが他のファイルを呼び出して助けを求めることがあることだ。以下のセクションで、CMSへの実際のリクエストのいくつかを見ていきますが、「PHPファイル」を実行すると、実際にはいくつものファイルを実行する必要があることを心に留めておいてください。
CMSを説明する最も簡単な方法は、いくつかの操作例を取り上げて、それぞれの操作のステップを繰り返し行うことです。これまでの例と同様に、これらのプロセスは、ページの要求から始まり、WebサーバーがいくつかのHTML(およびCSS/Javascript)をブラウザに送り返すことで終了します。しかし、PHPベースのCMSを想定して、以下にその手順の一部を紹介します。
CMSとの最も基本的なやりとりは、一般ユーザーがCMSのページをリクエストすることです。例えば、MakeUseOfに関するこの記事を見てみましょう。URLはあるが、その場所のディレクトリに実際のファイルはない。読者のブラウザがURLをリクエストすると、ウェブサーバーはCMSのPHPファイルの一つ、例えばindex.phpファイルを実行します。
PHP ページは、CMS ページとメタデータ内の一致する URL をデータベースに問い合わせることでリクエストを処理します (この場合も、URL は実際のファイルとは関係なく配置されます)。そして、ページの内容(プレーンテキストやグラフィック、ウィジェット)とメタデータ(タイトル、使用しているテンプレートなど)をデータベースから読み出し、ブラウザがレンダリングするためのページのHTMLを返します。要するに、URLを使ってデータベースで使用するページレコードを選択するのである。
同様に、サイトにログインしたいユーザー(例えば、「会員専用ページ」を閲覧したい場合など)も、認証情報を提供する必要があります。当該ページにアクセスしようとすると、DBにログイン権限が必要であることが表示される。
このようなページの login.php にユーザー名とパスワードを入力すると、入力されたユーザー名に対するパスワードをデータベースで検索し、一致するかどうか比較して、必要に応じてユーザーを要求されたページに送り返します。
CMSのページを更新するには、通常、管理画面にアクセスし、ページの内容を変更して、ページを保存/再公開する必要があります。例えば、WordPressにはwp admin page/post.phpがあり、まずユーザーがログインしているかどうか、ログインしている場合は管理者であるかどうかが確認されます。次に、ユーザーが変更したいページの内容をデータベースから検索し、テキストエリアやイメージセレクタなどのエディットコントロールに情報を入力します。
ユーザーはこれらのコントロールを操作し(例:テキストの変更やキャプション画像の置き換え)、終了したら「保存」または「公開」ボタンをクリックすることができます。このとき、管理画面は新しく記入された値を取り込んで、データベースに更新します。
内部的には複雑なアプリケーションですが、表面的にはWordPressのようなcmseは、技術者でないユーザーでも簡単にWeb上で制作できるようになっています。簡単なブログを公開したい人は、安価なホスティングアカウントにサインアップし、いくつかのボタンをクリックすれば、数分でCMSを準備することができます。さらに数ドル払えば、ホスティング会社がその更新やメンテナンスの管理までしてくれる。
特定のCMSでWebサイトやブログを運営していませんか?コンテンツマネジメントシステムがあれば、仕事がしやすくなるのでしょうか?それとも、以前のようにホスティングアカウントにHTMLをアップロードする方がいいのでしょうか?あなたがCMSの愛好家か、それとも昔ながらのHTMLの研究者なのか、コメントで教えてください。