Windows 7、php 5.3.5、WAMPサーバーを使用しています。 2つのphpファイルがあります。trigger.phpとbackground.phpです。
background.phpをバックグラウンドプロセスとして実行したい。このファイルをtrigger.phpから呼び出す必要があります。これを達成するために、以下の方法を使用しました。次のコードをtrigger.phpに含めて、background.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/
フォルダ。
任意の提案をいただければ幸いです。
Apache 2.2.Xの設定
Apache 2.2.x httpd.conf構成に次の行を追加します。
LoadFile "C:/Program Files/PostgreSQL/{version}/bin/libpq.dll"
上記の行は、次の行の前に入力する必要があります。
LoadModule php5_module "c:/wamp/bin/php/php5.2.11/php5Apache2_2.dll"
PHP 5.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/ )
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ファイルを実行すると、phpが参照されます。 C:\ wamp\bin\php\php5.3.5の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ファイル。今、それはうまくいきます。 :)
私の場合、Apache/2.4.10 PHP Version 5.4.32 PostgeSQL 9.3を使用しています。Apacheが拒否したため、PHPカタログからlibpq.dllをApache httpd.confに追加しましたPostgreSQL 9.3のlibpq.dllから始める