PHP警告:PHPスタートアップ:ダイナミックライブラリをロードできません


94

PHPスクリプトを実行してこのエラーが発生しました。

PHP警告:PHPスタートアップ:動的ライブラリ '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin'をロードできません-/ usr / local / lib / php / extensions /no-debug-non-zts-20090626/ixed.5.2.lin:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリは行0の不明にありません

どういう意味ですか?

回答:


55

これは、その拡張機能を読み込もうとしているphp構成ファイル(php.iniまたはそれに近い別のファイル)の 1つにextension=...or zend_extension=...行があることを意味します。ixed.5.2.lin

残念ながら、そのファイルまたはパスが存在しないか、権限が正しくありません。

  1. .iniPHPによってロードされたファイルを検索してみてください(phpinfo()どのファイルかを示すことができます)-それらの1つがその拡張機能をロードしようとする必要があります。
  2. ファイルへのパスを修正するか、対応する行をコメント化してください。

6
だから私もこのエラーを受け取っていますが、私のサイトはまだ機能しています-それは最も奇妙な部分です。このタイプのエラーの場合、phpが最初からクラッシュすると想定しています。代わりにページを取得しましたが、ロガーがこのエラーを記録しています。変だよね?
BT

1
php.ini(私の場合は/etc/php.ini)で、行extension = php_pdo_mysql.dllをコメント化し、Apacheを再起動して私の問題を解決し、警告を取り除きました。(Mac、Maverick)
ola

パスを修正するどちらのパスについて話しているのですか?
prats1411

3.または欠落していた拡張機能をインストールする
Andrew

@ prats1411 ini file:extension = [path here]
Andrew

37

Linuxを使用している場合は、シェルに次のように入力すると、読み込まれているすべての構成ファイルを見つけることができます。

php -r "print phpinfo();" | grep ".ini"

更新:コメントで述べたように、これはさらに正確になる可能性があります。

php -i | grep ini

5
php -i | grep ini(コマンドの引数があるときにphpinfoを出力する必要はありません)
YorickH

1
同様のエラーが発生しましたがphpinfo()、問題のあるiniファイルのリストはありませんでした。YorickHphp -i | grep iniによって提案されたように私のために働いた。これは、CLI用にロードされたライブラリーをリストし、警告を引き起こしたiniファイルが私の場合はCLIディレクトリーの下にあることが判明しました。
DaneeL 2015年

7
どのようなphp --iniすべてのiniファイルを一覧表示するには
OzzyCzech

17

エラーを消したいだけで、拡張子が必要ない場合は、必ず行をコメントアウトしてくださいphp.ini。しかし、実際に問題を修正したい場合は、ここにいくつかの追加情報があります。

正確なモジュールに基づいてこれにはさまざまな原因がありますが、いくつかの一般的なガイドラインもあります。

  1. セクションの下を開いphpinfo()て探します。ここにモジュールを配置します。extension_dirCore

たとえば、/usr/lib/php/modulesUnix / Linuxの場合です。

  1. ファイルが実際に存在する場合は、権限が適切であることを確認してください。
  2. ファイルが存在しない場合は、以下のリソースを使用してインストールしてください。

* nix(PEAR)への
インストールWindowsへの拡張機能のインストール


私は、この梨モジュールを介してインストールしようとしているが、私は実行してるperl install <module>私が得たCan't open perl script "install": File or Directory not found
Fabiotk

問題を知ることは困難です。パスと権限を確認してください。
EternalHour 16

コンテナ内の場合docker-php-ext-install <package>
jiggunjer

13

phpStomとXAMPP

TL; DRファイルが存在することを確認する場合を除いて、php.iniファイルの一部のレコードにドライブ文字を追加する必要がある場合があります。

xamppとxdebugでphpStorm 7を使用してphpをデバッグするときに、突然問題が発生し始めました。intellij interperterをxampps phpに設定しようとすると、質問のような多くの警告が表示されました。たとえば、次のようになります。

動的ライブラリ '/xampp/php/ext/php_bz2.dll'をロードできません

何らかの理由で、php.iniファイルのextension_dirおよびbrowscapのレコードにドライブ文字を追加する必要がありました。

extension_dir = "\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"

extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"

2
これは、Windows 10上で私のためにそれを固定
ジャスティンEldracher

1
これにより、Windows 7で修正されました。ありがとうございました
Paramjeet

6

php -r "echo php_ini_loaded_file();"

CLIに現在のiniロードされたファイルが表示され、そこで拡張機能を検索します。そのパスが正しくありません。


4

Linuxでの.dllのロード

php.iniファイルを介してphp-extensionをインストールしようとしたときに、この警告メッセージが表示されました。

Linuxで.dll拡張子を読み込めないことがわかるまでは、

しかし、インポートしたい拡張機能をコメントしてそれを介して正しくインストールする必要があります;extension= ... .dllsudo apt-get install php-...

...は、有効にする拡張機能の名前です。


まさに、私にとってはそれは単にモジュールのインストールが欠けていたことでした-私はphpPgAdminをインストールしていました、そして私が明示的にインストールする必要があったのはsudo apt install php-pgsqlphp-version固有sudo apt install php7.1-pgsql(phpのバージョンに7.1を変更)
jave.web

3

PHPライブラリに「その他」のディレクトリを開く権限がない場合にも、このエラーが発生する可能性があることに注意してください。私の特定のケースでphp -lは、テキストエディタでスクリプトを構文チェックするためにを使用しているときに、これに気付きました。つまり、私のアカウントは "volomike"と呼ばれていたため、そのアカウントには、phpコマンドが依存するライブラリを実行する権限がありませんでした。

たとえば、Ubuntu 14.04では、パスにPHP5が自動的にインストールされていました/usr/lib/php5/20121212+lfs。ただし、C ++でいくつかの共有オブジェクトを作成していたため、ディレクトリのアクセス許可をいじくり回して、非ルートアカウントに表示するディレクトリの実行(ディレクトリを開く)アクセス許可が与えられないようにしました/usr/lib/php5/20121212+lfs。そこで、次のコマンドを入力してその問題を修正しました。

sudo chmod o+x /usr/lib/php5/20121212+lfs

php -l example.phproot以外のユーザーとして実行すると、この「ダイナミックライブラリをロードできません」という問題が発生することはありません。


これは、Ubuntu 16.10を使用する私にとって正確なソリューションでした。Linuxを使用する場合は、拡張子 "extension"を.soに変更してください(標準構成では.dllが提供されていました)
mroesler

私はLinux Mint 18を使用していますが、これはまだ有効です
Dika

2

XAMPP for Windowsでcomposerをインストールしようとすると、同じ問題が発生しました。私がやったphp -vとphpはエラーを投げます:

動的ライブラリ '/xampp/php/ext/php_bz2.dll'をロードできません

XAMPPをセットアップする必要があることに気づくまで、しばらく時間がかかりました。だから私は走りsetup_xampp.bat、phpは魅力のように動作するように戻ります。


2

XAMPP for Windows10でcomposerをインストールしようとすると、同じ問題が発生しました。

動的ライブラリ '/xampp/php/ext/php_bz2.dll'をロードできません

次に、この手順に従います

  1. current_xampp_taining_drive:\ xampp(default_xampp_folder)\ p​​hp \ php.iniをテキストエディター(メモ帳++など)で開くだけです
  2. 今ちょうど見つける-current_xampp_taining_drive:\ xamppは存在しますか?
  3. そうでない場合は、「extension_dir」を見つけて、ドライブ名(c、dまたは目的のドライブ)を取得します。

extension_dir = "F:\ xampp731 \ php \ ext"(ここでfinded_drive_name_from_the_fileはF)

  1. 再びfinded_drive_name_from_the_file:\ xamppをcurrent_xampp_taining_drive:\ xamppに置き換えて保存します。
  2. ここで再びcomposerのインストールの進行を開始します。問題は解決されると思います。

1

サーバーでPHPの異なるバージョンを並べて実行していたときに、いくつかのモジュールでこのエラーが発生しました。これを整理するために、その特定のPHPバージョンに対して見つからなかったパッケージをインストールする必要がありました。したがって、たとえば、私が見た場合:-

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xml.so'

具体的には、PHPバージョンのライブラリをインストールします。

sudo apt-get install php7.1-xml

そして、Apacheを再起動します。私のために修正しました。次のようにバージョンを確認できます:-

php -v

1

その後Ubuntu Windows 10 XAMPPにインストールしLAMPP (XAMPP)ました。Windows XAMPPMAC(iOS)に比べて構成する必要がはるかに少なかったのですが、Linux Ubuntuを使用すると、Linuxでより多くのことができるようになるので、もう少しありました(良いことです)。

私は混乱してアクティブ化しましたmysqli.dll(そしてmysql.dll:で "#"を消去します/etc/php/7.2/cli/php.ini

PHP Warning: PHP Startup: Unable to load dynamic library関連するメッセージを受け取り始めましたdllmysql(and i).dll同じファイルでコメントアウトしましたが、でコメントアウトするまでメッセージは消えませんでした/opt/lampp/etc/php.ini

XAMPPのように見えますが読み込みphp.iniからファイルを/etc/php/7.2/cliとに変更になりますphp.ini/opt/lampp/etc。(;の後の; extension = php_pdo_mysql.dllはApacheを再起動し、メッセージはもうありません。


1

私の場合、スレッドセーフバージョンのdll(で固定-ts-)をダウンロードしたためにこのエラーが発生しましたが、phpの私のphpインストールは非スレッドセーフ(で固定-nts-)でした。phpのインストールバージョンと正確に一致するdllの正しいバージョンをダウンロードすると、問題が解決しました。


1
サーバーのスレッドセーフな設定を確認するには、phpinfo()を参照してthread-safety有効/無効にします。同じエラーが逆に発生し、ts用に構成されたときにntsをダウンロードしました。
アンディ

0

同様のエラーが発生しました。私が犯した間違いは、URLで「ページ」ではなく「コントローラ」の名前を「ページ」として使用することでした。


0

Windowsでは、「システム環境変数」のパスが間違っている可能性があります。php.exeディレクトリへの「パス」は適切なものでなければなりません。



0

私がしたことは

1-まず、phpinfo()関数を使用して、使用しているPHPのバージョンを確認します。

<?php   
    phpinfo();
?>

2-そこから、設定(php.ini)ファイルの場所がわかります

メソッドphpinfo()の結果

3-そのファイルを開く

4-下の画像のような行をコメント化します

これは異なる値になる可能性がありますが、拡張子に関連している必要があります。私は専門家ではありませんが、このプロセスは同様の問題を解決するのに役立ちました。

ここに画像の説明を入力してください


0

「C:/PHP/5.2.13/ext \ php_mcrypt1.dll」

php.iniにタイプミスがあると思います(追加の1)。おそらく、予想とは異なるphp.iniをロードしている(php.iniの出力を確認してください)。

それ以外は、php_mcrypt.dllとPHPを確認してください:

同じVCランタイムライブラリ(通常はVC6のmsvcrt.dllまたはVC9のmsvcrt90.dll)にリンクされていました。たとえば、依存関係ウォーカーを使用します。両方ともデバッグビルドまたは両方のリリースビルドです。どちらもZTSが有効または無効になっています。上記の最初の3つの条件のいずれかが満たされていない場合、PHPは意味のあるエラーを表示するはずですが、確信が持てないのでそれらを書きましたPHP 5.2の場合。


-1

私は同様の問題を抱えていて、以下はすべての警告/エラーの一部です。

Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php\ext\curl 
(The specified module could not be found.), C:\php\ext\php_curl.dll (The specified 
module 
could not be found.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: 
C:\php\ext\fileinfo (The specified module could not be found.), 
C:\php\ext\php_fileinfo.dll (The specified module could not be found.)) in Unknown on 
line 0

警告を確認すると、PHPの拡張機能を探していることがわかります。 C:\php\ext\ます。phpをC:\ディレクトリにダウンロードし、問題を解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.