php.iniのその他の設定
PEARを使う
PEAR(PHP標準のコンポーネント・フレームワーク)を使いたい場合には、php.iniの「include_path」の指定を変更します。 例えばWindowsの場合は

; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
include_path = ".;C:/Wintools/php5/PEAR"

UNIXの場合は、

include_path = ".:/usr/local/lib/php"

のようになります。環境変数PATHと同じく、 Windowsではセミコロン(;)、UNIXではコロン(:)が、パスの区切り子となります。

セッション保存先
また、セッション機能を使うときには、PHPはセッション情報を一時ファイルに書き出します。 標準設定ではこのファイルを書くディレクトリは /tmp (C:\tmp)になっていますが、 特にWindowsで C:\tmp が存在しない場合は、 セッションを利用しようとしたときにエラーが発生してしまいます。 これは下の部分を設定すればOKです。

; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this 
; variable in order to use PHP's session functions.
;session.save_path = "/tmp"
session.save_path = "/temp"

timezoneの設定
timezoneの設定をしないと、date()関数を使ったときにセキュリティ面の脆弱さを警告する出力が出ることがあります。

;date.timezone =
date.timezone = "Asia/Tokyo"

PHPがファイルを開けるディレクトリを限定する
デフォルトでは、PHPのプログラムはApacheの実行ユーザー(daemonとかnobody) がアクセスできるサーバー上の任意の場所からファイルを読んだり書いたりできます。 これを制限するにはopen_basedirを設定します。

open_basedir = /usr/local/apache2/docs:/tmp:/usr/local/php/lib

このように、複数ある場合はコロンで区切って連結します。 指定のあるディレクトリの下の階層は再帰的に許可されます。 一点注意として、session_start()などでセッションを使う場合は、セッションの保存先ディレクトリもアクセスの許可が必要です (ここでは/tmp)。指定しないとsession_start()を使用した瞬間にエラーが出ます。

expose_php
expose_php の値はデフォルトでOnで、これはHTTP応答レスポンスにPHPのバージョン番号を含める指定です (つまりバージョンだけでなく、PHPを使って作られたサイトだということも要求元に露見します)。 セキュリティを重視するならOffにしておきます。

expose_php = Off

Open Source Web Architecture Top

(first uploaded 2025/10/11 last updated 2025/10/11, MISUMI URANO)