PHP7RC3:如何安装缺失的MySQL PDO
我正在尝试在PHP7RC3:如何安装缺失的MySQL PDO,php,mysql,ubuntu,pdo,php-7,Php,Mysql,Ubuntu,Pdo,Php 7,我正在尝试在ubuntu14.04上使用php7rc3+Nginx设置web服务器(用于测试目的) 我使用Undřej Surý()的Ubuntu/trusty64和PHP7RC 3在Vagrant中安装了Ubuntu 我找不到安装MySQL-PDO(PHP看到PDO类,但没有任何与MySQL相关的内容,比如PDO::MySQL\u ATTR\u DIRECT\u QUERY等) 看起来没有libphp7.0-mysql(类似于Ondřej的标准php5-mysqlnd和php7.0-fpm等)
ubuntu14.04
上使用php7rc3
+Nginx
设置web服务器(用于测试目的)
我使用Undřej Surý()的Ubuntu/trusty64
和PHP7RC 3在Vagrant中安装了Ubuntu
我找不到安装MySQL-PDO
(PHP看到PDO
类,但没有任何与MySQL相关的内容,比如PDO::MySQL\u ATTR\u DIRECT\u QUERY
等)
看起来没有libphp7.0-mysql
(类似于Ondřej的标准php5-mysqlnd
和php7.0-fpm
等)
phpinfo()中的PDO
部分:
我怎样才能得到它呢?我几乎也有同样的问题。我能够看到PDO已启用,但我没有可用的驱动程序(使用PHP7-RC4)。我通过将php_pdo_mysql扩展添加到已启用的扩展中,成功地解决了这个问题
希望这有帮助 也有同样的问题,通过实际使用正确的文件名在php.ini中启用扩展名来解决。它被列为php_pdo_mysql.so,但是/lib/php/modules中的模块名被称为pdo_mysql.so
因此,只需从php.ini文件中删除“php_3;”前缀,然后重新启动httpd服务,它就会像一个符咒一样工作
请注意,我使用的是Arch,因此路径名和服务可能会因您的发行版而异。因为在他在评论中给出正确建议后,没有提供他的评论作为答案-我将其发布在这里:在我的情况下,我必须安装模块php mysql
。有关详细信息,请参见问题下方的注释。首先,检查您的php.ini是否启用了扩展名“php_pdo_mysql”和“php_mysqli”,以及“extension_dir”的路径是否正确。如果需要上述配置之一,则必须重新启动php fpm以应用更改
在我的例子中(我在公司使用Windows操作系统,我更喜欢OSX或Linux),我解决了将这些值放入php.ini中的问题:
; ...
extension_dir = "ext"
; ...
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
; ...
我希望这会有所帮助。对于使用apache2运行Linux的用户,您需要安装php mysql
apt-get install php-mysql
sudo apt-get install php7.0-mysql
//change the version number based on the php version
或者,如果您正在运行ubuntu 16.04或更高版本,只需运行以下命令即可,无需编辑php.ini文件
apt-get install php7.2-mysql
如果您运行的是ubuntu 15.10或更低版本:
编辑你的php.ini文件,它位于/etc/php/[version]/apache2/php.ini
并搜索pdo_-mysql
你可能会发现像这样的东西
;extension=pdo_mysql.so
换成这个
extension=pdo_mysql.so
保存文件并重新启动apache
service apache2 restart
sudo service apache2 restart
检查它是否在您的phpinfo()中可用如果您在windows上,并且您的php文件夹不在路径中,那么您已经在php.ini中设置了绝对目录
例如:
extension_dir = "C:/php7/ext"
和取消注释
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
重新启动apache2.4,它应该可以工作
我希望有帮助
下载PHP7的源代码并将其解压缩
打开你的终端
游到ext/mysqli目录
使用命令:
phpize
/配置
制造
以root用户身份进行安装
在php.ini文件中启用extension=mysqli.so
完成了李>
这对我来说很管用首先安装php mysql
apt-get install php-mysql
sudo apt-get install php7.0-mysql
//change the version number based on the php version
然后启用该模块
sudo phpenmod pdo_mysql
然后重新启动apache
service apache2 restart
sudo service apache2 restart
我将从答案开始,然后上下文注释这个修复程序被记录在上面,我只是为谷歌搜索的任何人重新声明它
下载PHP7的源代码并将其解压缩
打开你的终端
游到ext/pdo_mysql目录
使用命令:
phpize
/配置
制造
以root用户身份进行安装
在php.ini文件中启用extension=mysqli.so
apt-get install php7.2-mysql
这被记录为此处的答案(如果对您也有帮助,请向上投票):
背景:
我正在尝试将LimeSurvey添加到标准WordPress Docker中。阻碍我前进的一点是“PHP PDO驱动程序库”,即“未找到”
Ubuntu 16(Ubuntu 7.3.0)
结果:
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添加apt存储库-y ppa:ondrej/apache2
我明白了:
找不到有效的OpenPGP数据
按照其他一些说明运行此操作:
更新源
我明白了:
错误:14个宇宙/主amd64软件包
404找不到
错误:15个宇宙/主amd64软件包
404找不到
而且-我想正因为如此-我得到:
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问题,试图解决这个问题,然后。。。。你明白了。。。打鼹鼠。我放弃了,想看看我是否能编译它,我找到了我开始的答案
你可能想知道我为什么写这么多?这样,谷歌上的任何人都可以找到这个解决方案(包括我!)
很简单:
只需提供端口号和主机名
并将默认sock路径设置为运行服务器的php.ini
中的mysql.sock
文件路径。我通过重新安装php mysql解决了UBTO 20.4上的问题
删除php mysql:
sudo apt purge php7.2-mysql
sudo apt install php7.2-mysql
然后安装php mysql:
sudo apt purge php7.2-mysql
sudo apt install php7.2-mysql
它将在ubuntu 18.04的php.ini中添加新的配置
在你的终端中输入这个
对于php7.3
sudo apt-get install php7.3-gd php7.3-mysql
对于php7.0
sudo apt-get install php7.0-gd php7.0-mysql
对于php5
sudo apt-get install php5-gd php5-mysql
你说的是Ubuntu12.04,但你使用的是14.04的Ubuntu/trusty64。假设您实际上使用的是Trusty(毕竟,Ondřej还没有生成精确的包),那么他的包将提供php mysql
。是的,您完全正确!(版本是固定的)。你的建议和模块名是有效的。谢谢如果您添加它作为答案,我会将其标记为正确。我的错误-我是这样搜索的apt cache search php pdo
,而模块php mysql
在本例中未显示。如果它类似于标准Ubuntu/Debi