这适用于 Mac OS X,带有 Apache HTTP 的本机安装 和 MySQL 的自定义安装。
答案基于@alec-gorge 的出色响应,但由于我必须在 Google 上进行一些特定更改才能在我的配置中配置它,主要是 Mac OS X 特定的,所以我想我会在这里添加它完整性。
为 Apache HTTP 启用 PHP5 支持
确保在/etc/apache2/httpd.conf 中启用了 PHP5 支持。
使用sudo vi /etc/apache2/httpd.conf(询问时输入密码)编辑文件并取消注释(从开头删除;)行以加载php5_module模块。
LoadModule php5_module libexec/apache2/libphp5.so
使用sudo apachectl start 启动Apache HTTP(或restart,如果它已经启动并且需要重新启动以重新读取配置文件)。
确保/var/log/apache2/error_log 包含一条告诉您php5_module 已启用的行 - 您应该看到PHP/5.3.15(或类似名称)。
[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations
查找 Socket 文件名
当 MySQL 启动并运行时(使用./bin/mysqld_safe),应该会在控制台上打印出调试行,告诉您在哪里可以找到日志文件。请注意文件名中的主机名 - 在我的情况下为 localhost - 这可能与您的配置不同。
Logging to 之后的文件很重要。这是 MySQL 记录其工作的地方。
130309 12:17:59 mysqld_safe Logging to '/Users/jacek/apps/mysql/data/localhost.err'.
130309 12:17:59 mysqld_safe Starting mysqld daemon with databases from /Users/jacek/apps/mysql/data
打开localhost.err 文件(同样,您的文件可能名称不同),即tail -1 /Users/jacek/apps/mysql/data/localhost.err 以找出套接字文件的名称 - 它应该是最后一行。
$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
注意socket: 部分 - 这是您应该在php.ini 中使用的套接字文件。
还有另一种方法(有人说是更简单的方法)通过登录 MySQL 并运行来确定套接字文件名的位置:
show variables like '%socket%';
使用 MySQL 支持配置 PHP5 - /etc/php.ini
说到 php.ini...
在/etc 目录中有/etc/php.ini.default 文件。将其复制到 /etc/php.ini。
sudo cp /etc/php.ini.default /etc/php.ini
打开/etc/php.ini 并查找mysql.default_socket。
sudo vi /etc/php.ini
mysql.default_socket 的默认值为/var/mysql/mysql.sock。你应该把它改成你之前记下的值——在我的例子中是/tmp/mysql.sock。
替换 /etc/php.ini 文件以反映套接字文件的名称:
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
最终验证
重新启动 Apache HTTP。
sudo apachectl restart
如果没有与 PHP5 相关的错误,请检查日志。没有错误意味着你已经完成了,PHP5 和 MySQL 应该可以正常工作。恭喜!