WEB環境起動時に読み込まれるモジュールをphpinfo()でチェックしてみた。

本記事のポイント

php.iniはPHPの設定ファイルであり、PHPからDBに接続するための拡張モジュールphp_mysql.dllやphp_oci8_11g.dllを設定します。

httpd.confはApacheサーバーの設定ファイルであり、Apacheディレクティブと値(ON/OFF, 数字, HTTP環境変数, URLなど)を設定することでApatchのチューニングを行い、これと親子関係にある.htaccessをディレクトリ単位に配置することもできます。

Apacheの設定ファイルhttp.confは、XAMPPの場合PHPに関する設定部分をhttpd-xampp.confに分離して別途includeしており、httpd-xampp.conf内のPHPINIDirで指定したディレクトリのphp.iniが有効になります。

マニュアルとリファレンスとドキュメントの違い

PHPやJavaScriptなどプログラム言語における「マニュアル」とは「取り扱い説明書」「教科書」に該当するものであり、プログラムコードの書き方(リテラル・変数・式・制御文)や組み込み関数の種類と特徴、使い方ついて粛々と説明しているものであり、ケースバイケースの状況でどういうコーディングをすればいいか、という逆引き的な情報は、有志の方々が技術系ブログとして公開されている記事を参考にさせてもらったほうが効率が良いのは当然です。

言葉の定義として、分からないことを参照(リファレンス)するのがマニュアルであり、リファレンスマニュアルとも呼ばれるくらいですから、マニュアルとリファレンスの違いは何か?という問いは無意味です。

マニュアルもリファレンスもリファレンスマニュアルもドキュメントも、言葉は違ってもニュアンスは同じですが、公式かそうでないかはアフィリエイト用のバナー広告が貼ってあるかないかが目安になると思いますが、情報をもらうということは決して無償ではないので、仮にバナー広告がウザくても仕方ないところです。

  1. PHP
    公式PHPマニュアル(日本語)
  2. MySQL
    MySQL公式リファレンスマニュアル(日本語)
  3. jQuery
    jQuery 公式APIドキュメント(英語)
    本家英語版の翻訳です。
    jQuery日本語リファレンス
  4. JavaScript(公式サイトではないがデファクトスタンダード的なサイト)
    JavaScriptリファレンス

httpd.confとhttpd-xampp.confの違い

XAMPPの場合、Apacheの設定ファイルhttpd.confは、PHPに関する設定をhttpd-xampp.confに分離してincludeしています。そしてPHPINIDirにphp.iniが置かれるディレクトリを指定します。

httpd.conf

Apache用PHP本体であるphp5apache2_4.dllがサーバー上のApacheのハンドラ(イベントで呼び出される関数)としてインストールされている場合、mod_phpというモジュール名でApacheにロードされて起動します。

httpd-xampp.conf

phpinfo()上のapache2handler部分

apache_handler

httpd.conf上のドキュメントルートの設定にあるディレクトリ内のファイルが外部に公開され、クライアントの要求に対してHTTPプロトコルによりHTMLとして返されます。このようにxamppの綴り間違ってインストールしてもちゃんと動きます。

httpd.confから読み込んだhttpd-xampp.conf内のPHPINIDirで指定したディレクトリのphp.iniが有効になりますので、Configuration File Pathが違うディレクトリを指していても問題ありません。逆にPHPINIDirにディレクトリの指定がなければLoaded Configuration FileにC:\Windows\php.iniを指定する必要があります。

phpini

PHPの拡張モジュールとして読み込むモジュール達

PHP自体はApacheのハンドラとしてロードされますが、PHPで利用するマルチバイト文字列関数や、MySQLにアクセスするためのドライバはphp.ini中で拡張モジュールとして登録されている必要があります。