这是针对Mac OS X带有Apache HTTP的本机安装和MySQL的自定义安装。
答案基于@ alec-gorge的出色响应,但是由于我必须在Google上进行一些特定的更改才能在我的配置中对其进行配置(主要是特定于Mac OS X的配置),因此出于完整性考虑,我想在此添加它。
为Apache HTTP启用PHP5支持
确保在中启用了PHP5支持 /etc/apache2/httpd.conf
。
使用sudo vi /etc/apache2/httpd.conf
(在询问时输入密码)编辑文件,然后取消注释(;
从开头删除)以加载php5_module模块。
LoadModule php5_module libexec/apache2/libphp5.so
使用sudo apachectl start
(或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
查找套接字文件的名称
当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相关的错误。没有错误意味着您已经完成,并且带有MySQL的PHP5应该可以正常工作。恭喜!
/etc/init.d/mysql start
如果您在Debian基本发行版上,请粘贴输出。如果失败,请检查/etc/my.cnf
文件以获取正确的mysql套接字文件路径。