Windows に PHP を インストールし、Web サーバの設定ができたら、 次は PHP 拡張モジュールを使うための設定です。 php.ini を使って PHP が起動時にロードする拡張モジュールを設定することができます。 もしくは、スクリプトの中で dl() 関数を使用することにより、 拡張モジュールを動的にロードすることも可能です。
PHP 拡張モジュールの DLL には、ファイル名の前に 'php_' が付いています。
Windows 版の PHP には、多くの拡張モジュールが 組み込まれています。これらの関数を使用する際には、 追加の DLL ファイルや extension ディレクティブの設定は不要です。 追加の DLL が必要となる (あるいはかつて必要だった) 拡張モジュールについては、 Windows 版 PHP 拡張モジュール の表にまとめてあります。以下にあげられている拡張モジュールは、すでに PHP に組み込まれています。
PHP 4 (PHP 4.3.11 時点): BCMath、 Caledar、 COM、 Ctype、 FTP、 MySQL、 ODBC、 Overload、 PCRE、 Session、 Tokenizer、 WDDX、 XML そして Zlib
PHP 5 (PHP 5.0.4 時点) では、さらに以下が組み込まれています。 DOM、 LibXML、 Iconv、 SimpleXML、 SPL そして SQLite。 また、以下は組み込まれなくなりました。 MySQL および Overload。
PHP が拡張モジュールを探すデフォルトの場所は PHP 4 の場合 C:\php4\extensions、 PHP 5 の場合 C:\php5 です。 変更するには php.ini ファイルを編集してください。
extension_dir を拡張モジュール があるフォルダに変更する必要があります。 php_*.dllファイルをそこに置いてください。 例えば次のようになります。
extension_dir = c:\php\extensions
php.ini には、多くの拡張モジュール名がコメントアウトされた状態で記載済みです。 それらの拡張モジュールを有効にするには、php.ini 上の extension=php_*.dll の行をアンコメント(行頭の ; を削除する)してください。
例1 Windows 版の PHP で Bzip2 拡張モジュールを有効にする
// この行を以下から ;extension=php_bz2.dll // このように変更する extension=php_bz2.dll
拡張モジュールによっては、その動作に外部 DLL が必要な場合があります。 配布パッケージには、一部の外部 DLL がバンドルされています。 PHP 4 の場合は C:\php\dlls\を、 PHP 5 の場合は親フォルダを参照ください。ただし、必要な外部 DLL がバンドルされていないモジュールもあり、たとえば、Oracle モジュール (php_oci8.dll) は、非バンドルの DLL を必要とします。 PHP 4 をインストールする場合、バンドルされた DLL を C:\php\dlls からメインのフォルダ C:\php へコピーしてください。 また、忘れずに C:\php をシステムパスに 追加してください(その方法は、別途 FAQ に記載されています。)
これらの DLLs の中には、PHP の配布ファイルに含まれていないものもあります。 詳細は、それぞれの拡張モジュールのドキュメントを参照ください。 また、PECL についての詳細は、マニュアルの PECL 拡張モジュールのインストール という節を参照ください。多くの PHP 拡張モジュールが PECL に移行しつつあり、これらは 個別にダウンロード しなければなりません。
注意: PHP をサーバモジュールとして実行している場合は、Webサーバを再起動しないと、 php.ini の設定が反映されません。Web サーバの再起動を忘れずに行ってください。
以下の表は、使用可能な拡張モジュールと それらの実行に別途必要な DLL のリストです。
拡張モジュール | 説明 | 備考 |
---|---|---|
php_bz2.dll | bzip2 圧縮関数 | |
php_calendar.dll | カレンダー 関数 | PHP 4.0.3 以降ビルトイン |
php_crack.dll | Crack 関数 | |
php_ctype.dll | 文字型(ctype) 関数 | PHP 4.3.0 以降ビルトイン |
php_curl.dll | CURL, Client URL Library 関数 | libeay32.dll および ssleay32.dll が必要 (バンドル) |
php_dba.dll | DBA: (dbm 型の) データベース・アブストラクション レイヤー関数 | |
php_dbase.dll | dBase 関数 | |
php_dbx.dll | dbx 関数 | |
php_domxml.dll | DOM XML 関数 | PHP <= 4.2.0 では libxml2.dll が必要 (バンドル), PHP >= 4.3.0 では iconv.dll が必要 (バンドル) |
php_dotnet.dll | .NET 関数 | PHP <= 4.1.1 |
php_exif.dll | EXIF 関数 | php_mbstring.dll。php.ini で php_exif.dll は php_mbstring.dll の後で読み込まれる必要がある。 |
php_fbsql.dll | FrontBase 関数 | PHP <= 4.2.0 |
php_fdf.dll | FDF: Forms Data Format 関数 | fdftk.dll が必要 (バンドル) |
php_filepro.dll | filePro 関数 | 読み込みのみ |
php_ftp.dll | FTP 関数 | PHP 4.0.3 以降ビルトイン |
php_gd.dll | イメージ 関数 (GD ライブラリ) | PHP 4.3.2以降で削除。トゥルーカラー関数は GD1 では使用できない。 代わりに php_gd2.dll を使用のこと。 |
php_gd2.dll | イメージ 関数 (GD2 ライブラリ) | GD2 |
php_gettext.dll | Gettext 関数 | PHP <= 4.2.0 では gnu_gettext.dll が必要 (バンドル), PHP >= 4.2.3 では libintl-1.dll および iconv.dll が必要(バンドル) |
php_hyperwave.dll | HyperWave 関数 | |
php_iconv.dll | ICONV 関数 | iconv-1.3.dll が必要(バンドル)、 PHP >=4.2.1 iconv.dll |
php_ifx.dll | Informix 関数 | Informix ライブラリが必要 |
php_iisfunc.dll | IIS management 関数 | |
php_imap.dll | IMAP,POP3,NNTP 関数 | |
php_ingres.dll | Ingres II 関数 | Ingres II ライブラリが必要 |
php_interbase.dll | InterBase 関数 | gds32.dll が必要(バンドル) |
php_java.dll | Java 関数 | PHP <= 4.0.6 で jvm.dll が必要(バンドル) |
php_ldap.dll | LDAP 関数 | PHP <= 4.2.0 では libsasl.dll が必要(バンドル), PHP >= 4.3.0 では libeay32.dll と ssleay32.dll が必要(バンドル) |
php_mbstring.dll | マルチバイト文字列 関数 | |
php_mcrypt.dll | Mcrypt 暗号化 関数 | libmcrypt.dll が必要 |
php_mhash.dll | Mhash 関数 | PHP >= 4.3.0 で libmhash.dll が必要(バンドル) |
php_mime_magic.dll | Mimetype 関数 | magic.mime が必要(バンドル) |
php_ming.dll | Ming 関数 (Flash 用) | |
php_msql.dll | mSQL 関数 | msql.dll が必要(バンドル) |
php_mssql.dll | MSSQL 関数 | ntwdblib.dll が必要(バンドル) |
php_mysql.dll | MySQL 関数 | PHP >= 5.0.0。libmysql.dll が必要(バンドル) |
php_mysqli.dll | MySQLi 関数 | PHP >= 5.0.0。libmysql.dll (PHP <= 5.0.2 では libmysqli.dll) が必要(バンドル) |
php_oci8.dll | Oracle 8 関数 | Oracle 8.1+ クライアントライブラリが必要 |
php_openssl.dll | OpenSSL 関数 | libeay32.dll が必要(バンドル) |
php_overload.dll | オブジェクトオーバーロード 関数 | PHP 4.3.0 以降ビルトイン |
php_pdf.dll | PDF 関数 | |
php_pgsql.dll | PostgreSQL 関数 | |
php_printer.dll | プリンタ 関数 | |
php_shmop.dll | 共有メモリ 関数 (shmop) | |
php_snmp.dll | SNMP 関数 | NT のみ |
php_soap.dll | SOAP 関数 | PHP >= 5.0.0 |
php_sockets.dll | ソケット 関数 | |
php_sybase_ct.dll | Sybase 関数 | Sybase クライアントライブラリが必要 |
php_tidy.dll | Tidy 関数 | PHP >= 5.0.0 |
php_tokenizer.dll | Tokenizer 関数 | PHP 4.3.0 以降ビルトイン |
php_w32api.dll | W32api 関数 | |
php_xmlrpc.dll | XML-RPC 関数 | PHP >= 4.2.1 で iconv.dll が必要(バンドル) |
php_xslt.dll | XSLT 関数 | PHP <= 4.2.0 では sablot.dll と expat.dll が必要(バンドル)。 PHP >= 4.2.1 では sablot.dll, expat.dll および iconv.dll が必要(バンドル) |
php_yaz.dll | YAZ 関数 | yaz.dll が必要(バンドル) |
php_zip.dll | Zip ファイル 関数 | 読込のみ |
php_zlib.dll | ZLib 圧縮関数 | PHP 4.3.0 以降ビルトイン |