WordPressとApache、PHP、MySQLの関係


WordPressの公式オンラインマニュアル(ドキュメント)であるCodexには、スタートガイドがありWordPressのインストールから設定まで詳しく書かれています。しかし、スタートガイドにはサーバに関する説明も含まれています。
例えば、サーバ要件の説明の一部をみてみます。

WEBアプリ開発をしていないと、いきなり上記のようなことを言われてもわからない方も多いと思います。

  • Apache
  • PHP
  • MySQL

上記の3つの言葉は、サーバを選定するにもWordPressのバージョンを選定するにも非常に重要です。これら3つの言葉とWordPressとの関係について簡単にまとめたいと思います。

WordPerssはWebアプリケーション

Webアプリケーションについてみていきます。IT用語辞典e-Wordsさんの説明を引用します。

Webの技術を利用して構築されたアプリケーションソフトのこと。利用者は操作するWebブラウザや専用のクライアントソフトなどを用いてWebサーバにアクセスし、必要なデータの処理や転送を指示する。技術的には、通信プロトコルにHTTPを、データの表現にHTMLやXMLを用いるアプリケーションソフトの総称。

簡単に言えば、インターネット(イントラネット)を利用して使うアプリケーションソフトのこと。ソフトはサーバ側に置きます。WordPressもWebアプリケーションなのでサーバ側にインストールします。なのでスタートガイドにサーバの用意という項目があるのですね。

ブラウザ(クライアント)はURLを通してサーバに欲しい情報をリクエスト(要求)します。リクエストを受け取ったサーバは、リクエスト内容を判断して処理を行いレスポンス(結果)を返します。

WordPressにおいては、ブラウザは見たいブログやCMSの内容をURLを通してリクエストします。サーバ側にあるWordPressはリクエスト内容からブラウザが解釈できるHTML形式の情報をつくり、レスポンス(結果)を返します。

サーバの3層構成

サーバ側の構成を少し詳しくみてみます。Webアプリケーションではサーバ側を3層構成で表現することがあります。

  1. WEBサーバ

    Webサーバは、HTML文書や画像などの情報を蓄積しておき、Webブラウザなどのクライアントソフトウェアの要求に応じて、インターネットなどのネットワークを通じて、これらの情報を送信する役割を果たす。
    ※引用;IT用語辞典e-Words > Webサーバ 

    レンタルサーバを借りたことがある人は、FTPアカウントをもらっていると思います。FTPを利用してサーバにhtmlファイルや画像ファイルなどをアップロードし、ホームページとして見ることができます。URLはファイルのあるサーバへのアドレスと、そのサーバでのファイルの置き場所を示しています。
    ブラウザなどのクライアントソフトウェアからURLを通してリクエストを受けると、URLから要求されているファイルを探しクライアントソフトウェアに返すのがWEBサーバの主な働きです。
  2. アプリケーションサーバ

    プログラムの実行環境やデータベースへの接続機能、複数の処理を連結するトランザクション管理機能などを持ち、業務の処理の流れを制御するビジネスロジックを実装しているのがアプリケーションサーバである。
    ※引用;IT用語辞典e-Words > アプリケーションサーバ 

    掲示板やブログなどはプログラムで記述されています。その記述されているプログラムを解釈して実行する環境を整えるのがアプリケーションサーバです。WordPressもプログラムで記述されてますので、そのプログラムを実行できる環境がアプリケーションサーバになければWordPressは動きません。

    javascriptもプログラムで記述されていますが、javascriptのプログラムを解釈して実行するのはブラウザが行います。ブラウザはクライアント側にあり、javascriptのようにクライアント側で実行するプログラムを「クライアントサイド・スクリプト」といいます。それに対して、アプリケーションサーバが実行するプログラムを「サーバサイド・スクリプト」といいます。

    また、プログラムによってはデータ管理のスペシャリストであるデータベースを利用することがあります。そのデータベースとの橋渡しをします。

  3. データベースサーバ

    複数のサーバが役割分担をしているようなシステムにおいて、データベース管理システム(DBMS)が稼動しているサーバのこと。クライアントやアプリケーションサーバ(APサーバ)に要求されたデータを送信したり、操作要求を受け付けてデータを書き換えたり削除したりする。
    ※引用;IT用語辞典e-Words > データベースサーバ 

    データベースはデータ管理のスペシャリストです。例えば、書店や図書館で書籍が何も管理されていないで無造作に置かれていると、欲しい書籍を探すのも非常に大変です。きちんと規則に従った分類で管理されているからこそ簡単に探し出すことができます。システムで扱うデータも無造作に保存されていては、そのデータを検索、更新、削除するのは非常に大変です。データベースは規則に従って簡単にデータを検索、更新、削除できる仕組み提供してくれます。
サーバの3層構成とApache、PHP、MySQLの関係

前項でサーバの3層構成についてみました。この3層構成とApache、PHP、MySQLの関係についてみていきます。

  1. WEBサーバとApache

    ApacheはWebサーバソフトの1つ

    WEBサーバの機能を提供するWEBサーバソフトにもいくつかあります。例えば、Apache、NGINX、IISなどです。
    Apacheは、世界中でもっとも使われているWebサーバソフトウェアであり、大規模な商用サイトから自宅サーバまで幅広く利用されています。開発は、Apacheソフトウェア財団のApache HTTPサーバプロジェクトで行われています。
    ※参考;Wikipedia > Apache HTTP Server 

  2. アプリケーションサーバとPHP

    PHPはサーバ上で動作するプログラム言語の1つ

    サーバ上で動作するプログラム言語はいくつもあります。PHP、Perl、Ruby、JAVAなどです。
    PHPは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系です。PHPはサーバーサイド・スクリプト言語として利用されており、Webサーバ上で動作し、Webサーバ上でPHPスクリプトの文書が要求されるたびに、そのPHPスクリプトが実行され、結果をウェブブラウザに対して送信します。
    ※参考;Wikipedia >PHP: Hypertext Preprocessor 

  3. データベースサーバとMySQL

    MySQLはデータベース管理システムの1つ

    データベース管理システムにはいくつもあります。MySQL、Oracle SQL、Postgre SQLなどです。
    MySQL は最もよく知られているオープンソース SQL データベース管理システムです。データベースとは、構造化されたデータの集合です。データベースには、簡単なショッピングリストから絵画のギャラリー、または社内ネットワークの膨大な量の情報など、さまざまなものがあります。コンピュータデータベースに格納されているデータに対して追加、アクセス、および処理などを行うには、MySQL サーバのようなデータベース管理システムが必要となります。
    ※参考;MySQL公式>MySQLとは?

WordPressとApache、PHP、MySQLの関係

前項でサーバの3層構造とapache、PHP、MySQLの関係についてみました。WEBサーバにもアプリケーションサーバにもデータベースサーバにも候補はたくさんありました。なぜWordPressはたくさんの候補の中からapache、PHP、MySQLをサーバ要件としているのかみてみます。

  1. Apache

    パーマリンク、マルチサイトはWebサーバの機能を使ってる

    WordPressにはパーマリンク、マルチサイトといった機能があります。この機能を使うには.htaccessというファイルを使います。
    .htaccess(ドットエイチティーアクセス)は、Apacheを用いたWebサーバにおいて、ディレクトリ単位で設置及び設定を行える設定ファイルです。このファイルが動作する必要があるため、Apacheが推奨されています。
    ※参考;Wikipedia > Apache HTTP Server 

  2. PHP

    WordPressはPHPで書かれたプログラムである

    WordPressはPHP言語で書かれたプログラムです。よってアプリケーションサーバとしてPHP言語を解釈し実行する環境が必要になります。

  3. MySQL

    WordPressはMySQLにデータを保存すること前提に書かれている

    WordPressは投稿などのデータをデータベース管理システムを使って保存します。多くのデータベース管理システムからWordPressはMySQLを使うことを前提としてプログラムが書かれています。

WordPressの処理の流れ

では最後にWordPressの処理の流れをみながらApache、PHP、MySQLの繋がりをみていきます。

①ブラウザからのリクエスト
ブラウザはURLを通してWordPressのみたいページをサーバにリクエストします。

②URLの解釈

サーバではURLをWEBサーバのApacheが解釈し、リクエストされたファイルを探します。そのファイルがPHPプログラムならアプリケーションサーバに解釈・実行をお願いします。

③PHPの解釈・実行

アプリケーションサーバはPHPプログラムを解釈します。プログラムによってはデータの保存、読み込みが必要になります。必要ならばMySQLにデータ管理をお願いします。

④データ管理

PHPからデータの保存、読み込みの要求に応じます。データを要求されたらデータベースから必要データを探し出しphpに返します。

⑤PHPからの実行結果を受け取る

PHPは結果をブラウザが解釈できるHTMLなどの形式にして返します。その結果を受け取ります。

⑥ブラウザで表示

サーバからリクエスト結果が返ってきますので、結果を表示します。

Apache、PHP、MySQLついてみてきました。開発環境構築、サーバ選定にも非常に重要な言葉です。少しでも参考になってもらえれば幸いです。

「WordPressとApache、PHP、MySQLの関係」への2件のフィードバック

  1. めちゃめちゃわかりやすい記事で頭にスッと入ってきました。素晴らしい記事をありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です