在Mac上安装原生PHP/MySQL,激活PDO驱动程序

4
我在MacOSX Lion上进行了自定义安装,包括以下内容:
  1. Native PHP upgraded to 5.4, works like a charm.
  2. Installed MySQL, being run from /usr/local/mysql-5.5.25-osx10.6-x86_64/bin/mysql, works like a charm, Workbench connects and can do ops.
  3. Edited php.ini in /etc/ to activate the following:

    extension=php_mysqli.so
    extension=php_pdo_pgsql.so
    extension=php_pdo_mysql.so
    
  4. phpinfo() says the following:

    PDO

    PDO support enabled PDO drivers mysql, pgsql, sqlite

    pdo_mysql

    PDO Driver for MySQL enabled Client API version mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $

    Directive Local Value Master Value pdo_mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock

这意味着它可以工作,对吗?

但有两个问题:

  • /var/mysql/mysql.sock文件不存在,实际上它在/tmp/mysql.sock中。但我已经配置和构建了带有PDO选项的php:--with-mysql=mysqlnd --with-mysqli=mysqlnd --without-pear --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/mysql/mysql.sock。如果我将ini设置更改为/tmp/mysql.sock,虽然会在php.ini中反映出来,但错误仍然完全相同。

  • 当我在PHP内部尝试实例化PDO类时,会发生以下情况:Uncaught exception 'PDOException' with message 'could not find driver'

当我以旧式mysqli方式从PHP访问MySQL时,会出现以下情况:

Failed to connect to MySQL: (2002) No such file or directory Warning: main(): Couldn't fetch mysqli in...

还有什么其他方法可以尝试让我的PHP和MySQL友好地协作?

1个回答

6
解决方案如下:
  1. 更改php.ini中.sock路径以反映实际路径
  2. 重新启动计算机,不仅仅是Apache

看起来在执行时php.ini更改未加载

$ sudo apachectl restart

在将它们纳入考虑之前,需要Macbook重新启动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接