4

PHP で Firebird 拡張機能を使用しようとしています。フォルダに拡張ファイル ( php_pdo_firebird.dll, php_interbase.dll) がありextます。私は自分のphp.iniファイルにそれらを追加しています

...
[PHP_PDO_FIREBIRD]
extension=php_pdo_firebird.dll
[PHP_INTERBASE]
extension=php_interbase.dll
...

拡張機能をロードできなかったというエラーはスローされていませんが、印刷するたびに、phpinfoどちらもリストされていません。ここで何が欠けていますか?

参考までに、私は Windows 7 で Apache 2.2 を使用して PHP バージョン 5.3.14 TS を実行しています。

編集:いくつかのエラーがログに記録されているようです。error_log設定が上書きされただけです (これを見ている人は、C:\Windows\Temp\php-errors.log を再確認してください)。ファイルが明らかに存在するときはいつでも、指定されたモジュールが見つからないことがわかりました。

PHP Warning:  PHP Startup: Unable to load dynamic library 
    'C:\Program Files (x86)\PHP\ext\php_pdo_firebird.dll' - 
    The specified module could not be found.
    in Unknown on line 0

PHP Warning:  PHP Startup: Unable to load dynamic library 
    'C:\Program Files (x86)\PHP\ext\php_interbase.dll' - 
    The specified module could not be found.
    in Unknown on line 0
4

1 に答える 1

8

理解した!さて、まず基本を理解するために:

  • DLL のバージョンが PHP のバージョンと一致していることを確認してください。
  • Windows インストーラーを使用している場合、何らかの理由で Interbase および Firebird モジュールを含めるオプションが提供されていないため、一致する .zip ファイルをダウンロードしてext、そこのフォルダーからコピーする必要があります。
  • エスケープされていないバックスラッシュなど、extension_dir設定に入力ミスがないか再確認してください。これは、値が「引用符で囲まれていない」場合にのみ適用されます。

さあ、とどめの一撃だ。このエラー メッセージは非常に誤解を招きます。この時点で、DLL が検出されているはずですが、Firebird インストールfbclient.dllのフォルダーにある1 つの不可欠な部分が欠けています。bin以前に読んだどこでも、フォルダーに配置するように言われfbclient.dllましたが、extフォルダーのルートに配置した場合にのみPHP機能します。

これが将来の気まぐれな魂に役立つことを願っています:)

于 2012-12-05T16:38:34.010 に答える