【问题标题】:PHP Startup: Unable to load dynamic library for PHP folderPHP 启动:无法为 PHP 文件夹加载动态库
【发布时间】:2019-07-10 10:08:14
【问题描述】:

我已经引用了链接,PHP5 similar issue

并尝试了所有相关的解决方案,但我仍然遇到以下问题。任何帮助表示赞赏。谢谢!

PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20131226/msql.so' - /usr/lib/php/20131226/msql.so:无法打开共享对象文件:没有这样的第 0 行 Unknown 中的文件或目录 PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20131226/php_pdo_mysql.dll' - /usr/lib/php/20131226/php_pdo_mysql.dll:无法打开共享对象文件:没有这样的文件或目录在第 0 行的未知中 PHP 5.6.38-3+ubuntu14.04.1+deb.sury.org+1 (cli) 版权所有 (c) 1997-2016 PHP 集团 Zend Engine v2.6.0,版权所有 (c) 1998-2016 Zend Technologies 使用 Zend OPcache v7.0.6-dev,版权所有 (c) 1999-2016,由 Zend Technologies 提供

【问题讨论】:

  • 你安装php-pdo_mysql了吗?
  • 我已经执行了两个命令,apt-get install php5.6-mysql & sudo phpenmod pdo_mysql 然后重新启动。还是一样的问题
  • 可以通过phpinfo() 或者php -i | 来确认。从终端 grep pdo
  • 它有 /20-pdo_mysql.ini 文件。所以它安装对了吗?
  • 我想是的。当你说你重新启动时,你到底重新启动了什么?根据您的服务器配置,您可能需要重新启动 apache2/nginx 和 php-fpm

标签: php ubuntu nginx curl digital-ocean


【解决方案1】:

您的 php .ini 配置文件引用了几个不存在的文件,例如 /usr/lib/php/20131226/php_pdo_mysql.dll,您的 php 安装已损坏。重新安装 PHP 可能更容易,但如果您想手动修复它,请创建一个名为 phpinfo.php 的页面并包含它

<?php phpinfo(~0);

并在浏览器中打开它,您将获得 php.ini 的位置和已解析的其他 ini 配置文件列表,一旦获得,扫描 php.ini 文件和所有其他配置文件,然后删除对不存在的文件的所有引用。例如在这个截图中:

在这里您必须扫描文件 /etc/php/7.0/fpm/php.ini 和 /etc/php/7.0/fpm/conf.d/10-mysqlnd.ini 和 /etc/php/7.0/fpm/conf.d/10-opcache.ini 和 /etc/php/7.0/fpm/conf.d/10-pdo.ini 和 /etc/php/7.0/fpm/conf.d/15-xml.ini 和 /etc/php/7.0/fpm/conf.d/20-calendar.ini 和 /etc/php/7.0/fpm/conf.d/20-ctype.ini 和 /etc/php/7.0/fpm/conf.d/20-curl.ini 和 @9876543455 和 @9876 @和/etc/php/7.0/fpm/conf.d/20-fileinfo.ini和/etc/php/7.0/fpm/conf.d/20-ftp.ini和/etc/php/7.0/fpm/conf.d/20-gd.ini和/etc/php/7.0/fpm/conf.d/20-gettext.ini和/etc/php/7.0/fpm/conf.d/20-iconv.ini和/etc/php/7.0/fpm/conf.d/20-json.ini和/etc/php/7.0/fpm/conf.d/20-mbstring.ini和/etc/php/7.0/fpm/conf.d/20-mysqli.ini和/etc/php/7.0/fpm/conf.d/20-pdo_mysql.ini和/etc/php/7.0/fpm/conf.d/20-phar.ini和/etc/php/7.0/fpm/conf.d/20-phar.ini和@9876 /etc/php/7.0/fpm/conf.d/20-readline.ini和/etc/php/7.0/fpm/conf.d/20-shmop.ini和/etc/php/7.0/fpm/conf.d/20-simplexml.ini和/etc/php/7.0/fpm/conf.d/20-sockets.ini和/etc/php/7.0/fpm/conf.d/20-sqlite3.ini和/etc/php/7.0/fpm/conf.d/20-ssh2.ini和/etc/php/7.0/fpm/conf.d/20-sysvmsg.ini和/etc/php/7.0/fpm/conf.d/20-sysvsem.ini和/etc/php/7.0/fpm/conf.d/20-sysvshm.ini和/etc/php/7.0/fpm/conf.d/20-tokenizer.ini和/etc/php/7.0/fpm/conf.d/20-wddx.ini和/etc/php/7.0/fpm/conf.d/20-xdebug.ini和/etc/php/7.0/fpm/conf.d/20-xmlreader.ini 和 /etc/php/7.0/fpm/conf.d/20-xmlwriter.ini 和 /etc/php/7.0/fpm/conf.d/20-xsl.ini 对于不存在的文件的引用,并删除这些引用...玩得开心

(但说真的,您最好重新安装所需版本的 PHP。通过您的 cmets,我看到您已经安装了多个版本的 PHP。)

【讨论】:

  • 过去我丢失了一些库,但这并不妨碍我的应用运行?
  • phpinfo(~0); vs phpinfo(); ?
  • @113408 有一些你可以不用的库,但是当php_pdo_mysql.dll 无法加载时,许多 php 代码库会停止工作,它可能会使new PDO() 停止工作,至少如果你正在尝试连接到 MySQL 或 MariaDB 数据库
  • @abdulrashid 可能很少,phpinfo() 的参数是一堆位标志来决定显示什么信息,~0 启用所有可能的标志。 (在 x86-cpus 上,-1 也启用了所有可能的标志,但如果它可以移植到其他 cpu,则为 idk),但它可能不需要,因为默认参数(现在至少?)是 INFO_ALL 这也应该打印所有可能的信息
猜你喜欢
  • 2019-04-03
  • 2015-03-01
  • 2021-08-27
相关资源
最近更新 更多