1

Windows XP (32 ビット) で EnterpriseDB ApachePHP を使用しています。ApachePHP のあるディレクトリの php.ini でいくつかの拡張機能を有効にしようとしましたが、何も変わりませんでした。次に、php.ini でコメントを外した拡張機能が phpinfo() に表示されないだけでなく、コメントを外していない他の拡張機能も表示されることがわかりました。私のコンピューターには他にもいくつかのphp.iniファイルがありますが、phpinfo()はphp.iniファイルへの正しいパスを「ロードされた構成ファイル」として表示します( D:\Programy\EDB_Apache\php\php.ini-使用するphp.iniファイルへのパス。さらに、そのC:\WINDOWS「構成ファイル(php.ini)パス」にコピーします)。

設定は ApachePHP の何かでオーバーライドする必要があります。一方で、D:\Programy\EDB_Apache\php\Sdk\include\ext(D:\Programy\EDB_Apacheは ApachePHP ルート) に含まれる拡張子も phpinfo() に表示されるものと一致しないため、さらに困難になる可能性があります。

phpinfo() に表示されている構成を見つけて編集する方法、またはロードされた php.ini ファイルに対応しないバグを解決する方法は? Apache や自分のコンピューターを再起動するように言わないでください (私は localhost を構成しています)。この質問をする直前でも、何度も再起動しました。

編集:もう一度、「ロードされた構成ファイル」としてphpinfo()に表示されるパスが、使用するphp.iniファイルのパスと一致することを絶対に確信しています。そこに示されているパスが正しくなかったとしても (これは問題です-どのように可能で、どのように修正するのでしょうか?)、コンピューター上の php.ini ファイルのどれも、phpinfo によって示される構成と一致しません。php.ini のすべてのインスタンスを検索したので、たとえそれが隠しファイルまたはシステム ファイルであったとしても、それらのいずれも見逃さなかったと確信しています。

EDIT2: EDB ApachePHP の再インストールは役に立ちませんでした。再インストール中にパスを少し変更したため、ここでパスを更新しました。「ロードされた構成ファイル」パスはまだ正しい構成ファイルと一致しており、変更のたびに Apache を再起動し続けています。

phpinfo()、特に「Configure Command」を詳しく調べました。

cscript /nologo configure.js "--enable-cli" "--enable-cgi" "--with-openssl" "--enable-pdo" "--with-extra-includes=C:\pgBuild32\include; D:\pginstaller_2.auto-repo\output\include;D:\pginstaller_2.auto-repo\apache.staging\include" "--with-extra-libs=C:\pgBuild32\lib;D:\pginstaller_2.auto -repo\output\lib;D:\pginstaller_2.auto-repo\apache.staging\lib" "--enable-apache2filter" "--enable-apache2-2filter" "--enable-apache2handler" "--enable- apache2-4handler" "--with-apache-hooks" "--with-pgsql" "--with-pdo-pgsql" "--with-prefix=D:\pginstaller_2.auto-repo\php.staging" " --enable-one-shot" "--enable-cli-win32" "--enable-embed" "--enable-isapi" "--enable-ftp" "--without-mysqlnd" "--with-xsl=SHARED" "--enable-mbstring" "--enable-mbregex" "--enable-shmop" "--enable-exif" 「--enable-soap」「--enable-sockets」「--with-gd=SHARED」「--without-mysql」「--without-mysqli」「--without-sqlite3」「--without-pdo」 -mysql" "--without-pdo-sqlite"

そこにリストされているパス (など) はC:\\pgBuild32\includeD:\\pginstaller_2.auto-repo\output\lib私のコンピューターには存在しません。それらの存在は、設定の一部がEnterpriseDBのデフォルトによって上書きされるという私の仮定を裏付けているようです(またはphp.iniの設定が何らかの形で機能しないため、デフォルトが適用されます)。これらの設定がどこに保存されているのかわかりません。それがこの質問のポイントです。わかっていれば、設定を変更して祝います。

この問題には、別の原因として考えられるものがあります: dll の不足です。ほとんどの php ディストリビューションには、./ext. EnterpriseDB の「php」ディレクトリにはサブディレクトリが 1 つしかなく、「Sdk」という名前が付けられています。拡張子はディレクトリにあります(またはそうあるべきです;そのディレクトリにはdllファイルはありません)D:\Programy\EDB_Apache\php\Sdk\include\ext。このディレクトリには .h ファイルのみ (拡張子にちなんで名付けられたディレクトリ内) が含まれ、dll は含まれません。これが EnterpriseDB バンドルの通常のアーキテクチャでない場合は、教えてください。インストーラーファイルが悪い可能性があります。

そのため、最初に別のphpインストールからdllをコピーしました(PHP 5.4.23のものを正確に取得することはできませんでしたが、5.4でもあります)が拡張フォルダーにコピーされましたが、何も変わりませんでした。次に、ext フォルダー全体を ApachePHP バンドルの場所にある php ディレクトリにコピーし、拡張機能のパスをそこに変更しましたが、変更はありません。

テストのため、php.exe を実行してみました。警告が返されました:

PHP Warning:  PHP Startup: gd: Unable to initialize module
Module compiled with build ID=API2010025,TS,VC9
PHP    compiled with build ID=API2010025,TS,VC10
These options need to match
in Unknown on line 0

したがって、dll を置き換えたい場合は、VC9 ApachePHP (まだ PostgreSQL 9.3 をサポートしますか? これの主な理由は、データベースのフォームを作成できるようにするためです)、または VC10 PHP 5.4 を見つける必要があります。PHP 5.4 用の .msi インストーラーが見つかりませんでした (VC10 インストーラーよりも少ない)。Windows のコマンド ラインからのソフトウェア インストールでいくつかの悪い経験をした後、msi 以外のバージョンを試したくありません。選択。

今何かアドバイスはありますか?

4

0 に答える 0