ホームページ  >  記事  >  バックエンド開発  >  PHP がダイナミック ライブラリをロードできない場合はどうすればよいですか?

PHP がダイナミック ライブラリをロードできない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-07-23 11:02:313971ブラウズ

php がダイナミック ライブラリをロードできない問題の解決策: 1. PHP 統合パッケージの「libmySQL.dll」を system32 ディレクトリにコピーします; 2. PHP 解凍ディレクトリを PATH に追加します; 3. Apache の構成ファイルは、loadfile を使用していくつかのダイナミック リンク ライブラリをロードします。

PHP がダイナミック ライブラリをロードできない場合はどうすればよいですか?

#php はダイナミック ライブラリのロードに失敗しました

PHP の統合パッケージには多くのダイナミック リンク ライブラリが付属していますが、指示に従って設定した後、phpinfo() を実行したところ、多くのテンプレートが読み込まれていないことがわかりました。ただし、php.ini 内の対応するリンク ライブラリの前にあるコメント (;) は削除されました。

WAMP を構成するときに非常に興味深いことを発見しました。mysql モジュールがロードできる場合もあれば、ロードできない場合もあります。よく調べた結果、mysql がロードできる場合はインストール ファイルが使用され、ロードできない場合は主に圧縮パッケージが使用されることがわかりました。 2 つの都市の違いは何ですか?

違いは、インストール パッケージのインストール中に、mysql インストール ディレクトリ (./MySQL*.*/bin) を PATH に追加することを選択できることです。

これはどのような影響を及ぼしますか?このディレクトリには、PHP 統合パッケージ libmySQL.dll と同じ名前のファイルがあることがわかります。

インターネットを検索すると、他の解決策があることがわかりました。

PHP 統合パッケージの libmySQL.dll を system32 ディレクトリにコピーします。このディレクトリは通常、PATH にあります。

PATH の変更を必要としないもう 1 つの方法は、Apache 構成ファイルに次の文を追加することです: [loadfile X:/*/libmySQL.dll] は絶対パスを使用します。

問題の根本は見つかったようですが、他のモジュールでもこの​​方法で解決できますか?

答えは「はい、はい」です。

最も簡単な方法は、PHP 解凍ディレクトリ (通常は libmysql.dll、php.exe などを含む) を PATH に追加することです;

その後、システムを再起動します - Apache を再起動するだけでは機能しません, phpinfo()の「Apache環境」のPATHパラメータを確認してみると、「PATH」の項目が全く変わっていないことがわかりますが、システムを再起動せずにアプリケーションを変更できるかどうかは、まだ分かりません。知っている人は教えてください。

PATH の変更とシステムの再起動を回避するもう 1 つの方法は、Apache 構成ファイルでloadfile を使用してダイナミック リンク ライブラリをロードすることです。

テスト後、既知のモジュールとロードするダイナミック リンク ライブラリをリストしました。

  PHP模块      运行时要加载的动态链接库
  ------------------------------------------------------------
  php_fdf.dll                ->fdftk.dll
  php_interbase.dll      ->gds32.dll
  php_pdo_firebird.dll ->gds32.dll
  php_curl.dll               ->ssleay32.dll
  php_ldap.dll             ->ssleay32.dll
  php_openssl.dll        ->ssleay32.dll
  php_mcrypt.dll         ->libmcrypt.dll
  php_mhash.dll         ->libmhash.dll
  php_msql.dll           ->msql.dll
  php_mssql.dll           ->ntwdblib.dll
  php_pdo_mssql.dll   ->ntwdblib.dll
  php_mysql.dll           ->libmysql.dll
  php_mysqli.dll          ->libmysql.dll
  php_pdo_mysql.dll   ->libmysql.dll

ロードするダイナミック リンク ライブラリはすべて、PHP の統合パッケージ解凍ディレクトリにあります。 (通常、libmysql.dll、php.exe などが含まれます)。このディレクトリには、fribidi.dll、libeay32.dll、libswish-e.dll という 3 つのファイルもありますが、これらが何に使われるのかはまだわかりません。各モジュールの名前と機能については、詳細は説明しません。

推奨: 「

PHP チュートリアル

注: この方法は php5.1.X、php5.2.X シリーズに適していますが、php.4X はサポートされていません。テストされました。

以上がPHP がダイナミック ライブラリをロードできない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。