我将从答案开始,然后是上下文注意此修复已在上面记录,我只是为任何使用谷歌搜索的人重新说明它。
- 下载php 7的源代码并解压。
- 打开你的终端
- 游到 ext/pdo_mysql 目录
使用命令:
php化
。/配置
制作
进行安装(以 root 身份)
在 php.ini 文件中启用 extension=mysqli.so
这被记录为此处的答案(如果它也对您有帮助,请投票):https ://stackoverflow.com/a/39277373/3912517
背景:我正在尝试将 LimeSurvey 添加到标准的 WordPress Docker 中。阻碍我的单点是“PHP PDO 驱动程序库”,即“未找到”
php -i | grep PDO
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_odbc' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: Module 'mysqli' already loaded in Unknown on line 0
PDO
PDO support => enabled
PDO drivers => sqlite
PDO Driver for SQLite 3.x => enabled
Ubuntu 16 (Ubuntu 7.3.0)
apt-get install php7.0-mysql
结果:
Package 'php7.0-mysql' has no installation candidate
获取说明说我所要做的就是运行这个:
add-apt-repository -y ppa:ondrej/apache2
但后来我明白了:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 223: ordinal not in range(128)
所以我尝试强制使用某种类型的 UTF: LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/apache2 我得到了这个:没有找到有效的 OpenPGP 数据。
按照其他一些说明来运行它:apt-get update 我得到了这个: Err:14 http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic/main amd64 Packages 404 Not Found Err:15 http:// ppa.launchpad.net/ondrej/php/ubuntu cosmic/main amd64 Packages 404 Not Found - 我认为正因为如此 - 然后我得到:
The repository 'http://ppa.launchpad.net/ondrej/apache2/ubuntu cosmic Release' does not have a Release file.
到这个阶段,我仍然在 apt-get update 上得到这个:
Package 'php7.0-mysql' has no installation candidate.
我开始尝试添加 php 库,遇到 Unicode 问题,试图解决这个问题......你明白了...... whack-a-mole。我放弃了,看看我是否可以编译它,我找到了我开始的答案。
你可能想知道为什么我写了这么多?这样任何人都可以通过谷歌搜索找到这个解决方案(包括我!)。