Linuxからあるサーバー(DBサーバーとかSMTPサーバーとか)のサービスを利用するには

プロセス間通信を行なう必要がある。


プロセス間通信を行なうにはソケットというインターフェースを利用する

このソケットというのはファイルみたいなものを想像したらよく、

Linuxがこのファイルをオープン、読み込んでプロセス間通信を実現する。


このソケットには2パターンある


 ①INETドメインソケット

 ②UNIXドメインソケット


である。

①は異なる2つのサーバー間のプロセス間通信に使われ、通常IPアドレス+ポート番号を指定して作成される。

一方で②はひとつのサーバー内のプロセス間通信に使われる。


①の場合、接続されるサーバーは接続されるポートのTCP接続を開放しなければ通信できない。

他方②の場合はポートをTCP接続用(外部向け)に開放しなくてもよい。



phpからmysqlに接続するmysql_connetc関数では

mysql_connect($hostname , $username , $password )

となる。INETドメインソケット通信で他サーバに接続する場合は、$hostnameにIPアドレス:ポート番号を指定する。

$hostnameに”localhost”を指定した場合は自動的にUNIXドメインソケット通信を行なう。