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


7

Ich habe Fehler wie

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_intl.dll' - /usr/lib/php/20151012/php_intl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_soap.dll' - /usr/lib/php/20151012/php_soap.dll: cannot open shared object file: No such file or directory in Unknown on line 0

Wie @Parto sagte

ich renne php -i | grep ".ini"

Und bekam Ergebnis: -

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_intl.dll' - /usr/lib/php/20151012/php_intl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_soap.dll' - /usr/lib/php/20151012/php_soap.dll: cannot open shared object file: No such file or directory in Unknown on line 0
Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d
Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.0/cli/conf.d/10-opcache.ini,
/etc/php/7.0/cli/conf.d/10-pdo.ini,
/etc/php/7.0/cli/conf.d/15-xml.ini,
/etc/php/7.0/cli/conf.d/20-bcmath.ini,
/etc/php/7.0/cli/conf.d/20-calendar.ini,
/etc/php/7.0/cli/conf.d/20-ctype.ini,
/etc/php/7.0/cli/conf.d/20-curl.ini,
/etc/php/7.0/cli/conf.d/20-dom.ini,
/etc/php/7.0/cli/conf.d/20-exif.ini,
/etc/php/7.0/cli/conf.d/20-fileinfo.ini,
/etc/php/7.0/cli/conf.d/20-ftp.ini,
/etc/php/7.0/cli/conf.d/20-gd.ini,
/etc/php/7.0/cli/conf.d/20-gettext.ini,
/etc/php/7.0/cli/conf.d/20-iconv.ini,
/etc/php/7.0/cli/conf.d/20-intl.ini,
/etc/php/7.0/cli/conf.d/20-json.ini,
/etc/php/7.0/cli/conf.d/20-mbstring.ini,
/etc/php/7.0/cli/conf.d/20-mcrypt.ini,
/etc/php/7.0/cli/conf.d/20-mysqli.ini,
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.0/cli/conf.d/20-phar.ini,
/etc/php/7.0/cli/conf.d/20-posix.ini,
/etc/php/7.0/cli/conf.d/20-readline.ini,
/etc/php/7.0/cli/conf.d/20-shmop.ini,
/etc/php/7.0/cli/conf.d/20-simplexml.ini,
/etc/php/7.0/cli/conf.d/20-soap.ini,
/etc/php/7.0/cli/conf.d/20-sockets.ini,
/etc/php/7.0/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.0/cli/conf.d/20-sysvsem.ini,
/etc/php/7.0/cli/conf.d/20-sysvshm.ini,
/etc/php/7.0/cli/conf.d/20-tokenizer.ini,
/etc/php/7.0/cli/conf.d/20-wddx.ini,
/etc/php/7.0/cli/conf.d/20-xmlreader.ini,
/etc/php/7.0/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.0/cli/conf.d/20-xsl.ini,
/etc/php/7.0/cli/conf.d/20-zip.ini
user_ini.cache_ttl => 300 => 300
user_ini.filename => .user.ini => .user.ini
com_init_db => 0
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

Ich benutze PHP 7 und Ubuntu 16.04


3
Nun, ich kann nicht sagen, dass ich jemals gesehen habe, wie

Was gibt es php -i | grep ".dll"zurück, wenn es im Terminal ausgeführt wird? Wenn nichts zurückgegeben wird, führen Sie php -i | grep ".ini"das Ergebnis aus und fügen Sie es in Ihre Frage ein.
Parto

@Parto Ich habe meine Frage aktualisiert.
Jatin Raikwar

Als erstes muss überprüft werden, ob die DDL-Datei irgendwo außerhalb des Pfads vorhanden ist. Sie müssen also find /* -name "php_intl.dll"sicherstellen, dass Sie dies als Root oder Benutzer mit Berechtigungen ausführen , da für einige Verzeichnisse bestimmte Berechtigungen festgelegt sind. Normalerweise ist die PHP-Bibliothek, die Sie installieren möchten, Teil von PHP5. Haben Sie gesucht, ob PHP7 dies vollständig unterstützt?
upbeta01

Als Antwort auf den Kommentar von bc2946088 im Juni kann ich bestätigen, dass bei einer sauberen Ubuntu-Installation, bei der Apache, PHP, MySQL und Kakteen hinzugefügt werden, Protokolle angezeigt werden, die besagen, dass die dynamische Bibliothek nicht geladen werden kann - / usr / lib / php / 20121012 /php_gd2.dll '- es sieht also so aus, als ob entweder ein Protokollierungsfehler vorliegt oder Apache / PHP diese Erweiterung verwendet. Es ist allerdings komisch.
Ian

Antworten:


6

Lauf:

sudo gedit -H /etc/php/7.0/cli/php.ini

und auskommentieren extension=php_intl.dll.


3

Wie pro Antwort des oerdnj hier gibt es etwas falsch mit Ihrer Konfiguration. Sie sollten die Erweiterung in php.ini nicht aktivieren (z. B. sollten Sie die Zeile nicht auskommentieren ;extension=php_mbstring.dll).

Sie sollten die Erweiterung wie installieren sudo apt-get install php-mbstringund automatisch aktivieren lassen.


1
Das hat mir geholfen, danke. Ich stellte fest, dass meine nicht /etc/php/7.0/apache2/php.inikommentiert, aber kommentiert war /etc/php/7.0/cli/php.ini. Deshalb ist meine nur zu seltsamen Zeiten passiert.
Marius

2

Mit Ihrer Konfiguration stimmt etwas nicht, aber wenn Sie Root-Zugriff haben, installieren Sie einfach die fehlenden Erweiterungen erneut. Für PHP 7.0:

sudo apt-get install php7.0-intl
sudo apt-get install php7.0-soap

Beachten Sie, dass die Version Ihres Ubuntu in einigen seltsamen Fällen erforderlich sein kann (Sie haben Ihre Pakete zu stark aktualisiert und müssen ein Downgrade durchführen). Hier ein Beispiel, aber schauen Sie sich zuerst die installierte Version an!

sudo apt-get install php7.0-intl=7.0.22-0ubuntu0.16.04.1
sudo apt-get install php7.0-soap=7.0.22-0ubuntu0.16.04.1

Hat für mich funktioniert (übrigens keine SOAP-Erweiterung, aber intleinige andere)


1

Manchmal werden einige Erweiterungen nicht installiert

So können Sie es mit Terminal installieren

Führen Sie die folgenden Befehle aus, um diese bestimmten Erweiterungen zu installieren

sudo apt-get install php7.0-erweiterungsname

oder

Sie können alle Erweiterungen mit dem folgenden Befehl installieren

sudo apt-get install php7.0- *


0

Ich habe versucht mit folgenden Befehlen und Fehler verschwunden:

nano /etc/php/7.1/cli/php.ini

Suchen intl.dllund soap.dllkommentieren Sie diese Erweiterung

service apache2 restart

0

Überprüfen Sie zunächst, von wo aus die Datei php.ini für Ihr Projekt angewendet wird. Um dies zu überprüfen, speichern Sie einfach die Datei mit dem folgenden Code im Stammordner mit dem Namen phpInfo.php

<?php echo phpInfo(); ?>

Führen Sie nun die Datei im Browser aus, indem Sie Folgendes eingeben http://localhost/file_folder/phpInfo.phpund nach Loaded Configuration File suchen . Öffnen Sie nun die Datei im Editor und kommentieren Sie sie aus (entfernen Sie das Komma vom Start).php_intl

Vergiss nicht, Apache neu zu starten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.