7

Windows 7、php 5.3.5、および WAMP サーバーを使用しています。trigger.php と background.php の 2 つの php ファイルがあります。
バックグラウンド プロセスとして background.php を実行したいと考えています。このファイルを trigger.php から呼び出す必要があります。これを達成するために、以下の方法を使用しました。バックグラウンドで処理する background.php を作成するために、trigger.php に次のコードを含めました。

$handle = popen('start /b C:\wamp\bin\php\php5.3.5\php.exe     C:\wamp\www\email3.php','r');

background.php には、データベースに接続するための次のコードがあります。

$conn_string = "host=localhost port=5432 dbname=tagbase user=postgres password=postgres";  

今、この行を解析すると、次のエラーが発生します。

致命的なエラー: 3 行目の C:\wamp\www\background.php の未定義関数 pg_connect() の呼び出し コール スタック: 0.0002 322792 1. {main}() C:\wamp\www\background.php:0

インターネットで検索していくつかの解決策を見つけ、以下で推奨されているように php.ini に変更を加えました。

uncommented, extension=php_pdo_pgsql.dll,
uncommented, extension=php_pgsql.dll,
uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/",

また、フォルダーに php_pdo_pgsql.dll および php_pgsql.dll ファイルがありc:/wamp/bin/php/php5.3.5/ext/ます。

任意の提案をいただければ幸いです。

4

3 に答える 3

25

Apache2.2.X構成

次の行をApache2.2.xhttpd.conf構成に追加します。

LoadFile "C:/Program Files/PostgreSQL/{version}/bin/libpq.dll"

上記の行は、次の行の前に入力する必要があります。

LoadModule php5_module "c:/wamp/bin/php/php5.2.11/php5apache2_2.dll"

PHP5.2.Xの構成

php.ini構成ファイルで次の2行を有効にします。「有効にする」とは、つまり、末尾を削除することです。(セミコロン)。これらにより、行のコメントを解除します。

extension=php_pdo_pgsql.dll
extension=php_pgsql.dll

WAMPを再起動します

これをindex.phpに追加してテストします

echo extension_loaded('pgsql') ? 'yes':'no';

(ソース:http ://www.plaatsoft.nl/wamp-postgresql-integration/ )

于 2013-02-13T08:15:33.137 に答える
4

WAMPサーバーをインストールすると、2つのphp.iniファイルが取得されます。1つはC:\ wamp \ bin \ php \ php5.3.5にあり、もう1つはC:\ wamp \ bin \ apache \ Apache2.2.17\binにあります。

ブラウザからphpファイルを実行すると、C:\ wamp \ bin \ apache \ Apache2.2.17\binにあるphp.iniファイルが参照されます。コマンドラインからphpファイルを実行すると、C:\ wamp \ bin \ php\php5.3.5のphp.iniファイルが参照されます。

PHP-> PHP拡張機能でdllを有効/無効にした変更が何であれ、すべての変更はC:\ wamp \ bin \ apache \ Apache2.2.17 \ bin\php.iniファイルに保存されます。ただし、C:\ wamp \ bin \ php \ php5.3.5\php.iniファイルは変更されません。

私の問題のために、私は次の変更を加えました

uncommented, extension=php_pdo_pgsql.dll,
uncommented, extension=php_pgsql.dll,
uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/",

C:\ wamp \ bin \ php \ php5.3.5\php.iniファイルにあります。今ではうまく機能しています。:)

于 2013-02-13T12:30:04.450 に答える
0

私の場合、Apache/2.4.10 PHP バージョン 5.4.32 PostgeSQL 9.3 では、Apache が PostgreSQL 9.3 の libpq.dll で開始することを拒否したため、libpq.dll を PHP カタログから Apache httpd.conf に追加しました。

于 2014-11-09T14:43:58.383 に答える