Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP7RC3:如何安装缺失的MySQL PDO_Php_Mysql_Ubuntu_Pdo_Php 7 - Fatal编程技术网

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
等)

看起来没有lib
php7.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