付録 Q. サポートされるソケットトランスポートのリスト

目次
Internet ドメイン: TCP、UDP、SSL、および TLS
Unix ドメイン: UNIX および UDG

以下は、PHP がビルトインで持っている fsockopen()stream_socket_client() のような ストリームに基づくソケットトランスポートとともに使用できる URL 形式のソケットトランスポートのリストです。 これらの転送は ソケット拡張には 適用されません

自分が使用している PHP のバージョンのトランスポートのリストを得るには stream_get_transports() を使用してください。

Internet ドメイン: TCP、UDP、SSL、および TLS

PHP 3、PHP 4、PHP 5。 ssl:// & tls:// PHP 4.3.0 以降 sslv2:// & sslv3:// PHP 5.0.2 以降

注意: トランスポートが指定されなければ、tcp:// と仮定されます。

Internet ドメインソケットは、対象のアドレスに加えてポート番号を 受け付けます。fsockopen() の場合、これは 2 番目の パラメータとして指定するので、トランスポートの URL には影響を与えません。 しかし、stream_socket_client() および関連する関数では 伝統的な URL を使用します。この場合、ポート番号はトランスポート URL の 後にコロンで区切ってつなげます。

IPv6 数値アドレスとポート番号: IPv4 やホスト名形式の例では、ポート番号はアドレスやホスト名の直後に コロンでつながっていますが、上の 2 番目の例では IPv6 アドレスが 角括弧でかこまれて [fe80::1] となっています。 これは、IPv6 アドレスに使用されるコロンとポート番号を表す際のコロンを 区別するためです。

ssl:// および tls:// のトランスポート (PHP が openssl サポートを含めてコンパイルされている場合のみ有効)は、 tcp:// トランスポートに SSL 暗号化を含めた拡張です。 PHP 4.3.0 以降では OpenSSL サポートは PHP に静的に組み込まれている 必要があります。PHP 5.0.0 以降では静的に組み込むだけではなくモジュールとして コンパイルされていてもよくなりました。

ssl:// は SSL V2 での接続を試みます。 あるいはリモートホストの設定によっては SSL V3 での接続を試みます。 sslv2:// および sslv3:// は、SSL V2 と SSL V3 のどちらのプロトコルを 使用するかを明示的に指定します。

表 Q-1. ssl:// および tls:// の トランスポート時のオプション(PHP 4.3.2 以降)

名前使用法デフォルト
verify_peer TRUE あるいは FALSE 。 SSL サーバ証明書の検証を要求するかどうか。 FALSE
allow_self_signed TRUE あるいは FALSE 。 自己証明の証明書を許可するかどうか。 FALSE
cafile ローカルファイルシステム上の証明書ファイルの場所。 verify_peer オプションでリモートサーバとの 認証の際に使用する。  
capath cafile が指定されていなかったりその場所にファイルが 見つからなかったりした場合、capath が指す ディレクトリを検索して認証ファイルを探します。capath は認証ファイルのディレクトリを正確に指している必要があります。  
local_cert ファイルシステム上のローカル証明書ファイルのパス。 あなたの証明書とプライベートキーを含み、PEM エンコードされた ファイルである必要があります。オプションで、発行者の 認証チェーンを含めることも可能です。  
passphrase local_cert ファイルをエンコードした際の パスフレーズ。  
CN_match 予期している一般名(CN)。PHP は限定されたワイルドカード検索を 行います。もし一般名がこれにマッチしなかった場合、接続の試行は 失敗します。  

注意: ssl://https:// および ftps:// のラッパの 基盤となるものなので、ssl:// に適用可能なオプションは https:// および ftps:// にも 適用可能です。