在Linux中运行PHP:如何修复“PHP启动:无法加载动态库”问题?

问题描述 投票:0回答:1

我已经确定了 php 的路径,但我在 Ubuntu 22.04 中收到以下 php 错误,我想我需要加载 Mysqlnd 和 mysqli 来解决此问题

root@xxxx:~# php --ini
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pdo_mysql.dll' (tried: /usr/lib/php/20190902/php_pdo_mysql.dll (/usr/lib/php/20190902/php_pdo_mysql.dll: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/php_pdo_mysql.dll.so (/usr/lib/php/20190902/php_pdo_mysql.dll.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql.so' (tried: /usr/lib/php/20190902/pdo_mysql.so (/usr/lib/php/20190902/pdo_mysql.so: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_mysql.so.so (/usr/lib/php/20190902/pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pdo_mysql.so' (tried: /usr/lib/php/20190902/php_pdo_mysql.so (/usr/lib/php/20190902/php_pdo_mysql.so: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/php_pdo_mysql.so.so (/usr/lib/php/20190902/php_pdo_mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File:         /etc/php/7.4/cli/php.ini
Scan for additional .ini files in: /etc/php/7.4/cli/conf.d
Additional .ini files parsed:      /etc/php/7.4/cli/conf.d/10-opcache.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
/etc/php/7.4/cli/conf.d/20-calendar.ini,
/etc/php/7.4/cli/conf.d/20-ctype.ini,
/etc/php/7.4/cli/conf.d/20-exif.ini,
/etc/php/7.4/cli/conf.d/20-ffi.ini,
/etc/php/7.4/cli/conf.d/20-fileinfo.ini,
/etc/php/7.4/cli/conf.d/20-ftp.ini,
/etc/php/7.4/cli/conf.d/20-gettext.ini,
/etc/php/7.4/cli/conf.d/20-iconv.ini,
/etc/php/7.4/cli/conf.d/20-json.ini,
/etc/php/7.4/cli/conf.d/20-phar.ini,
/etc/php/7.4/cli/conf.d/20-posix.ini,
/etc/php/7.4/cli/conf.d/20-readline.ini,
/etc/php/7.4/cli/conf.d/20-shmop.ini,
/etc/php/7.4/cli/conf.d/20-sockets.ini,
/etc/php/7.4/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.4/cli/conf.d/20-sysvsem.ini,
/etc/php/7.4/cli/conf.d/20-sysvshm.ini,
/etc/php/7.4/cli/conf.d/20-tokenizer.ini

enter image description here

我不知道需要遵循什么具体步骤。请建议加载 Mysqlnd 和 mysqli

php php-extension
1个回答
0
投票

我认为你编辑php ini的方式是错误的,因为dll文件来自windows,linux使用所以 就像这样:

extension=/path/to/extension/mysqli.so

就是您正在寻找的。 下载适当的扩展(如果缺少),将它们放入文件夹中,添加路径

in php.ini. More details (from my php.ini):
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename
;
; For example:
;
;   extension=mysqli
;
; When the extension library to load is not located in the default extension
; directory, You may specify an absolute path to the library file:
;
;   extension=/path/to/extension/mysqli.so
;
; Note : The syntax used in previous PHP versions ('extension=<ext>.so' and
; 'extension='php_<ext>.dll') is supported for legacy reasons and may be
; deprecated in a future PHP major version. So, when it is possible, please
; move to the new ('extension=<ext>) syntax.
;
; Notes for Windows environments :
;
; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.

此外,要获取 php.ini 的正确位置,请使用

php --ini

© www.soinside.com 2019 - 2024. All rights reserved.