PHP 警告: PHP 起動: 動的ライブラリをロードできません

PHP 警告: PHP 起動: 動的ライブラリをロードできません

この問題に関する投稿をここでいくつか見てきましたが、私の設定の何が問題なのかまだわかりません。PHP で何かを実行しようとすると、次のようなエラーが表示されます。

Sat Sep 02 - 12:11 PM > php -version
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/tidy.dll' - No such file or directory in Unknown on line 0
PHP 7.0.19 (cli) (built: May 14 2017 03:08:04) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

tidy.dllこのiniファイルではが参照されています

Sat Sep 02 - 12:11 PM > cat /etc/php.d/tidy.ini
extension = tidy.dll

私の定義は次のとおりですextension_dir:

Sat Sep 02 - 12:12 PM > php -i | grep extension_dir
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/tidy.dll' - No such file or directory in Unknown on line 0
extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012

そのディレクトリの権限は問題ないようです。

Sat Sep 02 - 12:12 PM > ls -la /usr/lib/php/20151012
total 2228
drwxr-xr-x+ 1 RobertMarkBram None      0 Aug 31 21:20 .
drwxr-xr-x+ 1 RobertMarkBram None      0 Apr 13 15:25 ..
-rwxr-xr-x  1 RobertMarkBram None  15389 May 14 18:27 ctype.dll
-rwxr-xr-x  1 RobertMarkBram None  81949 May 14 18:27 curl.dll
-rwxr-xr-x  1 RobertMarkBram None  76829 May 14 18:27 gd.dll
-rwxr-xr-x  1 RobertMarkBram None 956957 May 14 18:27 imap.dll
-rwxr-xr-x  1 RobertMarkBram None 426013 May 14 18:27 intl.dll
-rwxr-xr-x  1 RobertMarkBram None  36381 May 14 18:27 json.dll
-rwxr-xr-x  1 RobertMarkBram None  35357 May 14 18:27 mcrypt.dll
-rwxr-xr-x  1 RobertMarkBram None 110621 May 14 18:27 mysqli.dll
-rwxr-xr-x  1 RobertMarkBram None  27165 May 14 18:27 pdo_mysql.dll
-rwxr-xr-x  1 RobertMarkBram None 271389 May 14 18:27 phar.dll
-rwxr-xr-x  1 RobertMarkBram None  19485 May 14 18:27 pspell.dll
-rwxr-xr-x  1 RobertMarkBram None  10781 May 14 18:27 recode.dll
-rwxr-xr-x  1 RobertMarkBram None  43549 May 14 18:27 tidy.dll
-rwxr-xr-x  1 RobertMarkBram None  21021 May 14 18:27 tokenizer.dll
-rwxr-xr-x  1 RobertMarkBram None  81949 May 14 18:27 xmlrpc.dll
-rwxr-xr-x  1 RobertMarkBram None  27677 May 14 18:27 xsl.dll

そして、 の ACL だけを見るとtidy.dll、問題はないようです。

Sat Sep 02 - 12:13 PM > getfacl /usr/lib/php/20151012/tidy.dll
# file: /usr/lib/php/20151012/tidy.dll
# owner: RobertMarkBram
# group: None
user::rwx
group::r-x
other:r-x

答え1

0x0f4d0000 は非常に低いアドレスであり、tidy.dll はそのアドレスでの読み込みで他のリソースまたはプログラム自体と衝突しているため、読み込みに失敗しました。

32 ビット インストールの場合、インストールされているプログラムが多すぎて、使用可能なアドレス空間が枯渇しています。dll
アドレスの割り当ては 0x6fff から始まり、下がっていくため、すべて消費されてしまいます。

アドレス空間がどのように割り当てられているかを確認するには、/proc/self/mapsまたは を参照してください。/proc/<pid>/maps

考えられる解決策:
1 インストールされているプログラムの数を大幅に減らし、不要なものをすべて削除します。その後、完全なリベースをトリガーする必要があります。https://cygwin.com/faq.html#faq.using.fixing-fork-failures
または2 64ビットインストールに移行する

Cygwin は 8000 を超えるパッケージを提供していますが、2000 を超えるパッケージが必要になることはほとんどありません。

Cygwinメーリングリストでの同じ問題に関する最近の議論
出典: Cygwin

関連情報