web-dev-qa-db-ja.com

PHP警告:PHPスタートアップ:動的ライブラリをロードできません

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のUnknownにそのようなファイルまたはディレクトリがありません

どういう意味ですか?

79
Popolo

これは、PHP構成ファイルの1つにextension=...またはzend_extension=...行があることを意味します(php.ini、またはそれに近い別のファイル)その拡張をロードしようとしています:ixed.5.2.lin

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

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

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

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

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

php -i | grep ini
34
nefski

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

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

  1. phpinfo()を開き、Coreセクションの下でextension_dirを探します。これは、モジュールを配置する場所です。

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

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

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

16
EternalHour

XAMPPを使用したphpStom

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

XamppとxdebugでphpをデバッグするためにphpStorm 7を使用すると、突然問題が発生し始めました。 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"
9
Technotronic

php -r "echo php_ini_loaded_file();"

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

4

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

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

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

これで、root以外のユーザーとしてphp -l example.phpを実行すると、「動的ライブラリをロードできません」という問題が発生しなくなります。

3
Volomike

Linuxでの.dllのロード

php-extensionphp.iniファイル;

linuxで。dll拡張機能をロードできないことが判明するまで、

ただし、コメントインポートする拡張機能を;extension= ... .dllおよび正しくインストールするSudo apt-get install php-...を使用する必要があります。

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

2
Marco D.G.

Composerをインストールしようとすると、XAMPP for Windowsで同じ問題が発生しました。私はphp -vとphp throwing errorをしました:

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

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

2
Prima Putra

Windows 10 XAMPPの後、LAMPP (XAMPP)をUbuntuにインストールしました。 Windows XAMPPはMAC(iOS)に比べて設定するのがずっと少なかったが、Linux UbuntuではLinuxに行くことが多いので、もう少し持っていた(良いこと)。

私は混乱し、mysqli.dll(およびmysql.dll:/etc/php/7.2/cli/php.iniの「#」を消去します)をアクティブにしました

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

XAMPPはphp.iniから/etc/php/7.2/cliファイルを読み取り、php.ini/opt/lampp/etcを変更するように見えます。 (; ";"がApacheを再起動した後の、extension = php_pdo_mysql.dll。

1
Mehmet F Erten

サーバーで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
0
Rod

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

0
Ninad Kulkarni