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

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

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

//#XAMPP settings
Include "conf/extra/httpd-xampp.conf"

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

httpd-xampp.conf

//#
//# PHP-Module setup
//#
LoadFile "D:/xampp/php/php5ts.dll"
LoadFile "D:/xampp/php/libpq.dll"
LoadModule php5_module "D:/xampp/php/php5apache2_4.dll"


<IfModule php5_module>
    PHPINIDir "D:/xampp/php"
</IfModule>

phpinfo()上のapache2handler部分

apache_handler

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

DocumentRoot "D:/xampp/htdocs"
<Directory "D:/xampp/htdocs">

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中で拡張モジュールとして登録されている必要があります。

//拡張ディレクトリのパス
extension_dir="D:\xampp\php\ext"

extension=php_mysql.dll      //MySQL
extension=php_mbstring.dll   //マルチバイト文字列関数
extension=php_oci8_11g.dll   //Oracle Client 11g
extension=php_pdo_sqlsrv_56_ts.dll      //PHP5.6用PDOのスレッドセーフドライバー
extension=php_sqlsrv_56_ts.dll          //PHP5.6用SQL Serverのスレッドセーフドライバー