[PHP-users 31013] phpのコマンドラインからのpg_connectによるSSL接続がSegmentation faultを起こします。
平澤
h-hirasawa @ netassist.co.jp
2006年 12月 14日 (木) 15:33:48 JST
始めまして 平澤と申します。
linux上のphpのコマンドライン版から、他のDBサーバへssl接続するプログラム
を起動した際に、プログラムの終了時にSegmentation fault を起こしてしまう
現象について悩んでおります。
同様の症状になられた方などいらっしゃいましたら、原因・解決策などアドバイ
スいただけると助かります。
●動かしたプログラムの内容。
<?php
$PgCon = pg_connect("host=$DbIp dbname=$DbName user=$DbUser password=$DbPass");
pg_close($PgCon);
?>
(各変数には適切な値が入ります。)
●実行結果
[www]# php test.php
Segmentation fault
●コアをgdbしてみた結果
gdb php core.11662
(gdb) where
#0 0x00953634 in ?? ()
#1 0x0059a60c in CRYPTO_lock () from /lib/libcrypto.so.5
#2 0x005e8142 in ERR_set_implementation () from /lib/libcrypto.so.5
#3 0x005e89f5 in ERR_free_strings () from /lib/libcrypto.so.5
#4 0x00540022 in Curl_SSL_cleanup () from /usr/lib/libcurl.so.3
#5 0x00549400 in curl_global_cleanup () from /usr/lib/libcurl.so.3
#6 0x08083c72 in zm_shutdown_curl ()
#7 0x08175e22 in module_destructor ()
#8 0x0817a26c in zend_hash_clean ()
#9 0x0817a386 in zend_hash_graceful_reverse_destroy ()
#10 0x081738d1 in zend_shutdown ()
#11 0x0813db5a in php_module_shutdown ()
#12 0x081a7cca in main ()
となっています。
プログラム内自体の処理は処理されるのですが、どうやら終了処理でなんらかの
問題が発生しているようだ・・・
と言うところまでは解ったのですが対処の方法の見当が付かなく困っております。
また、ssl接続しない場合は、Segmentation faultは発生しませんでした。
Apache経由で起動した際も、Segmentation faultが発生していないように見えま
した。
動作環境と関係ありそうな物のバージョン
OS:FedoraCore4
PHP:PHP 5.0.4 (cli) (built: Nov 8 2005 08:27:12)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
php-pgsql.i386 5.0.4-10.5
libcurl/7.13.1
接続しているDBサーバ
OS:FredoraCor5
DB:PostgreSql 8.1.4
SSL接続に関しては pg_hba.confにて
hostssl all all xx.xx.xx.xx/32 md5
として接続しています。
また、ためしに別環境・・というかDBサーバ上からなのですが
OS:FredoraCor5
PHP:PHP 5.1.6 (cli) (built: Nov 3 2006 07:27:53)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
php-pgsql.i386 5.1.6-1.2
libcurl/7.15.5
から同様のプログラムを起動しても Segmentation fault が発生しました。
このことから環境に依存している物でもないような気がしてきています。
何か解決策など有りましたらご教授願えると幸いです。
PHP-users メーリングリストの案内