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にそのようなファイルまたはディレクトリがありません
どういう意味ですか?
これは、PHP構成ファイルの1つにextension=...
またはzend_extension=...
行があることを意味します(php.ini、またはそれに近い別のファイル)その拡張をロードしようとしています:ixed.5.2.lin
残念ながら、そのファイルまたはパスが存在しないか、権限が正しくありません。
.ini
ファイルを検索してみてください(phpinfo()
はどのファイルかを示すことができます)-それらの1つはその拡張機能をロードしようとします。Linuxを使用している場合は、シェルで次のように入力することにより、ロードされたすべての構成ファイルを見つけることができます。
php -r "print phpinfo();" | grep ".ini"
更新:コメントで述べたように、これはさらに正確になる可能性があります。
php -i | grep ini
エラーを消したいだけで、拡張機能が必要ない場合は、必ずphp.ini
の行をコメントアウトしてください。しかし、実際に問題を修正したい場合は、追加情報があります。
正確なモジュールに基づいてこれにはさまざまな原因がありますが、いくつかの一般的なガイドラインもあります。
phpinfo()
を開き、Core
セクションの下でextension_dir
を探します。これは、モジュールを配置する場所です。たとえば、Unix/Linuxの場合は
/usr/lib/php/modules
です。
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"
php -r "echo php_ini_loaded_file();"
CLIで現在のiniロードされたファイルを表示し、そこで拡張子を検索します。そのパスは正しくありません。
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
を実行すると、「動的ライブラリをロードできません」という問題が発生しなくなります。
php-extensionをphp.iniファイル;
linuxで。dll拡張機能をロードできないことが判明するまで、
ただし、コメントインポートする拡張機能を;extension= ... .dll
および正しくインストールするSudo apt-get install php-...
を使用する必要があります。
note:...
は有効にする拡張機能の名前です。
Composerをインストールしようとすると、XAMPP for Windowsで同じ問題が発生しました。私はphp -v
とphp throwing errorをしました:
動的ライブラリ「/xampp/php/ext/php_bz2.dll」をロードできません
XAMPPをセットアップする必要があることに気づくまで、しばらく時間がかかりました。だから私はsetup_xampp.bat
を実行し、php return to charmのように動作します。
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。
サーバーで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
同様のエラーが発生しました。私が犯した間違いは、URLで「コントローラー」名を「ページ」ではなく「ページ」として使用することでした。