回答:
これは、その拡張機能を読み込もうとしているphp構成ファイル(php.iniまたはそれに近い別のファイル)の 1つにextension=...
or zend_extension=...
行があることを意味します。ixed.5.2.lin
残念ながら、そのファイルまたはパスが存在しないか、権限が正しくありません。
.ini
PHPによってロードされたファイルを検索してみてください(phpinfo()
どのファイルかを示すことができます)-それらの1つがその拡張機能をロードしようとする必要があります。Linuxを使用している場合は、シェルに次のように入力すると、読み込まれているすべての構成ファイルを見つけることができます。
php -r "print phpinfo();" | grep ".ini"
更新:コメントで述べたように、これはさらに正確になる可能性があります。
php -i | grep ini
php -i | grep ini
(コマンドの引数があるときにphpinfoを出力する必要はありません)
phpinfo()
、問題のあるiniファイルのリストはありませんでした。YorickHphp -i | grep ini
によって提案されたように私のために働いた。これは、CLI用にロードされたライブラリーをリストし、警告を引き起こしたiniファイルが私の場合はCLIディレクトリーの下にあることが判明しました。
php --ini
すべてのiniファイルを一覧表示するには
エラーを消したいだけで、拡張子が必要ない場合は、必ず行をコメントアウトしてくださいphp.ini
。しかし、実際に問題を修正したい場合は、ここにいくつかの追加情報があります。
正確なモジュールに基づいてこれにはさまざまな原因がありますが、いくつかの一般的なガイドラインもあります。
phpinfo()
て探します。ここにモジュールを配置します。extension_dir
Core
たとえば、
/usr/lib/php/modules
Unix / Linuxの場合です。
perl install <module>
私が得たCan't open perl script "install": File or Directory not found
docker-php-ext-install <package>
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"
php -r "echo php_ini_loaded_file();"
CLIに現在のiniロードされたファイルが表示され、そこで拡張機能を検索します。そのパスが正しくありません。
php.iniファイルを介してphp-extensionをインストールしようとしたときに、この警告メッセージが表示されました。
Linuxで.dll拡張子を読み込めないことがわかるまでは、
しかし、インポートしたい拡張機能をコメントして、それを介して正しくインストールする必要があります;extension= ... .dll
sudo apt-get install php-...
注:...
は、有効にする拡張機能の名前です。
sudo apt install php-pgsql
php-version固有sudo apt install php7.1-pgsql
(phpのバージョンに7.1を変更)
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.php
root以外のユーザーとして実行すると、この「ダイナミックライブラリをロードできません」という問題が発生することはありません。
XAMPP for Windows10でcomposerをインストールしようとすると、同じ問題が発生しました。
動的ライブラリ '/xampp/php/ext/php_bz2.dll'をロードできません
次に、この手順に従います
extension_dir = "F:\ xampp731 \ php \ ext"(ここでfinded_drive_name_from_the_fileはF)
サーバーで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
その後Ubuntu Windows 10 XAMPP
にインストールしLAMPP (XAMPP)
ました。Windows XAMPP
MAC(iOS)に比べて構成する必要がはるかに少なかったのですが、Linux Ubuntuを使用すると、Linuxでより多くのことができるようになるので、もう少しありました(良いことです)。
私は混乱してアクティブ化しましたmysqli.dll
(そしてmysql.dll:で "#"を消去します/etc/php/7.2/cli/php.ini
にPHP Warning: PHP Startup: Unable to load dynamic library
関連するメッセージを受け取り始めましたdll
。mysql(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を再起動し、メッセージはもうありません。
Windowsでは、「システム環境変数」のパスが間違っている可能性があります。php.exeディレクトリへの「パス」は適切なものでなければなりません。
私がしたことは
1-まず、phpinfo()関数を使用して、使用しているPHPのバージョンを確認します。
<?php
phpinfo();
?>
2-そこから、設定(php.ini)ファイルの場所がわかります
3-そのファイルを開く
4-下の画像のような行をコメント化します
これは異なる値になる可能性がありますが、拡張子に関連している必要があります。私は専門家ではありませんが、このプロセスは同様の問題を解決するのに役立ちました。
「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の場合。
私は同様の問題を抱えていて、以下はすべての警告/エラーの一部です。
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:\
ディレクトリにダウンロードし、問題を解決しました。