PHP 7 RC3:如何安装缺less的MySQL PDO

我正尝试在Ubuntu 14.04上安装带有PHP 7 RC3 + Nginx web服务器(用于testing目的)。

我使用ubuntu/trusty64和PHP 7 RC 3安装了Ubuntu的Vagrant( https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0 )。

我无法find安装MySQL PDO (PHP看到PDO类,但没有任何与MySQL相关的东西,比如PDO::MYSQL_ATTR_DIRECT_QUERY等)

看起来像没有lib的php7.0-mysql (与Ondřej的标准php5-mysqlndphp7.0-fpm等类似)

phpinfo() PDO部分:

 PDO support enabled PDO drivers no value 

我怎么才能得到它?

对于使用apache2运行Linux的情况,您需要安装php-mysql

 apt-get install php-mysql 

或者如果你正在运行Ubuntu 16.04或更高版本,只需运行以下命令就足够了,不需要编辑你的php.ini文件

 apt-get install php7.0-mysql 

如果你正在运行的Ubuntu 15.10或以下:

编辑你的php.ini文件并搜索pdo_mysql,你可能会发现像这样的东西

 ;extension=php_pdo_mysql.so 

将其更改为此

 extension=pdo_mysql.so 

保存该文件并重新启动Apache

 service apache2 restart 

检查它是否在你的phpinfo()中可用

首先安装php-mysql

 sudo apt-get install php7.0-mysql 

然后启用该模块

 sudo phpenmod pdo_mysql 

并重新启动Apache

 sudo service apache2 restart 

由于eggyal没有提供他的评论作为回答后,他给了正确的建议在评论 – 我在这里发布:在我的情况下,我不得不安装模块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 ; ... 

我希望这有帮助。

如果你在windows上,而你的php文件夹不在你的PATH中,你已经在你的php.ini中设置了绝对目录

例如:

 extension_dir = "C:/php7/ext" 

并取消注释

 extension=php_mysqli.dll extension=php_pdo_mysql.dll 

重新启动apache2.4,它应该工作。

我希望它有帮助。

我有,几乎相同的问题。 我能够看到PDO已启用,但我没有可用的驱动程序(使用PHP 7-RC4)。 我设法通过将php_pdo_mysql扩展添加到已启用的扩展来解决该问题。

希望这可以帮助!

有相同的问题,通过实际在php.ini中启用正确的文件名来解决。 它被列为php_pdo_mysql.so,但是/ lib / php / modules中的模块名称只是被称为pdo_mysql.so

所以,只需从php.ini文件中删除“php_”前缀,然后重新启动httpd服务,就像一个魅力。

请注意,我正在使用Arch,因此路径名称和服务可能因您的分布而有所不同。

  1. 下载PHP 7的源代码并解压。
  2. 打开你的终端
  3. 游到ext / mysqli目录
  4. 使用命令:

    phpize

    。/配置

    使

    使安装(作为根)

  5. 在你的php.ini文件中启用extension = mysqli.so
  6. 完成了!

这对我有效