無料CGI、PHPサイト(確認画面付きメールフォーム・メーリングリスト・メルマガ設置、逆アクセスランキング、画像カウンター等)PHPマニュアル by k-sky

Windows 用 PHP 拡張モジュール

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 時点): BCMathCaledarCOMCtypeFTPMySQLODBCOverloadPCRESessionTokenizerWDDXXML そして Zlib

PHP 5 (PHP 5.0.4 時点) では、さらに以下が組み込まれています。 DOMLibXMLIconvSimpleXMLSPL そして 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 拡張モジュール
拡張モジュール 説明 備考
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.dllphp.iniphp_exif.dllphp_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.dllssleay32.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.dllexpat.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 以降ビルトイン