PHP-Warnung: PHP-Startup: Dynamische Bibliothek kann nicht geladen werden

PHP-Warnung: PHP-Startup: Dynamische Bibliothek kann nicht geladen werden

Ich habe hier schon einige Beiträge zu diesem Problem gesehen, aber ich verstehe immer noch nicht, was mit meinem Setup nicht stimmt. Das hier bekomme ich, wenn ich versuche, irgendetwas mit PHP auszuführen:

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.dllIn dieser iniDatei wird auf Folgendes verwiesen

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

Hier ist meine extension_dirDefinition:

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

Die Berechtigungen in diesem Verzeichnis scheinen in Ordnung zu sein.

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

Und wenn ich mir nur die ACLs ansehe tidy.dll, sehe ich kein Problem.

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

Antwort1

0x0f4d0000 ist eine sehr niedrige Adresse und tidy.dll kollidiert beim Laden an dieser Adresse mit anderen Ressourcen oder mit dem Programm selbst; deshalb konnte es nicht geladen werden.

Da Sie eine 32-Bit-Installation haben, haben Sie zu viele Programme installiert und diese haben den verfügbaren Adressraum erschöpft.
Die DLL-Adresszuweisung beginnt bei 0x6fff... und geht nach unten, Sie haben also alles verbraucht.

Wie der Adressraum aufgeteilt ist, können Sie unter /proc/self/mapsoder unter sehen./proc/<pid>/maps

Mögliche Lösungen:
1. Reduzieren Sie die Anzahl der installierten Programme stark und entfernen Sie alles, was Sie nicht benötigen. Anschließend müssen Sie ein vollständiges Rebase durchführen, siehehttps://cygwin.com/faq.html#faq.using.fixing-fork-failures
oder 2. Wechseln Sie zu einer 64-Bit-Installation

Cygwin bietet mehr als 8000 Pakete, aber es ist unwahrscheinlich, dass Sie mehr als 2000 benötigen.

Aktuelle Diskussion zum gleichen Thema auf der Cygwin-Mailingliste
https://cygwin.com/ml/cygwin/2017-08/msg00265.html

verwandte Informationen