本記事の概要
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などプログラム言語における「マニュアル」とは「取り扱い説明書」「教科書」に該当するものであり、プログラムコードの書き方(リテラル・変数・式・制御文)や組み込み関数の種類と特徴、使い方ついて粛々と説明しているものであり、ケースバイケースの状況でどういうコーディングをすればいいか、という逆引き的な情報は、有志の方々が技術系ブログとして公開されている記事を参考にさせてもらったほうが効率が良いのは当然です。
言葉の定義として、分からないことを参照(リファレンス)するのがマニュアルであり、リファレンスマニュアルとも呼ばれるくらいですから、マニュアルとリファレンスの違いは何か?という問いは無意味です。
マニュアルもリファレンスもリファレンスマニュアルもドキュメントも、言葉は違ってもニュアンスは同じですが、公式かそうでないかはアフィリエイト用のバナー広告が貼ってあるかないかが目安になると思いますが、情報をもらうということは決して無償ではないので、仮にバナー広告がウザくても仕方ないところです。
- PHP
公式PHPマニュアル(日本語) - MySQL
MySQL公式リファレンスマニュアル(日本語) - jQuery
jQuery 公式APIドキュメント(英語)
本家英語版の翻訳です。
jQuery日本語リファレンス - JavaScript(公式サイトではないがデファクトスタンダード的なサイト)
JavaScriptリファレンス
httpd.confとhttpd-xampp.confの違い
XAMPPの場合、Apacheの設定ファイルhttpd.confは、PHPに関する設定をhttpd-xampp.confに分離してincludeしています。そしてPHPINIDirにphp.iniが置かれるディレクトリを指定します。
httpd.conf
1 2 |
//#XAMPP settings Include "conf/extra/httpd-xampp.conf" |
httpd-xampp.conf
1 2 3 4 5 6 7 8 9 10 11 |
//# //# 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部分
httpd.conf上のドキュメントルートの設定にあるディレクトリ内のファイルが外部に公開され、クライアントの要求に対してHTTPプロトコルによりHTMLとして返されます。このようにxamppの綴り間違ってインストールしてもちゃんと動きます。
1 2 |
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を指定する必要があります。
PHPの拡張モジュールとして読み込むモジュール達
PHP自体はApacheのハンドラとしてロードされますが、PHPで利用するマルチバイト文字列関数や、MySQLにアクセスするためのドライバはphp.ini中で拡張モジュールとして登録されている必要があります。
1 2 3 4 5 6 7 8 |
//拡張ディレクトリのパス 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のスレッドセーフドライバー |