PHPエラー「Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket」の原因と解決方法
PHPのpg_connect関数でCentOS 5のPostgreSQL 8.1環境に接続する際に、ポート番号を省略していたので、ポート番号の追記をしてみたところ、以下のようなエラーメッセージが表示されてしまった。
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5431"? in /var/www/html/test.php
《エラーとなったPHPプログラム》
$dbconn = pg_connect("port=5431 dbname=test_database user=postgres password=") or die("Could not connect");
PostgreSQLの標準のポート番号は、5432だが、何故か、私は間違った番号を指定してしまったようだった。
念のため、標準のポート番号を別の番号に変更していないかをpostgresql.confを見て確認する。
《PostgreSQLの設定ファイル》
/var/lib/pgsql/data/postgresql.conf
port = 5432
PostgreSQLの設定ファイルでは、標準のポート番号「5432」が設定されていた。
ポート番号の指定間違いが、今回のエラーの原因であろう。
《修正後のPHPプログラム》
$dbconn = pg_connect("port=5431 dbname=test_database user=postgres password=") or die("Could not connect");
正しいポート番号を指定することで、エラーは解消された。