【问题标题】:PHP w/ Zend Debugger on OS X 10.5在 OS X 10.5 上带有 Zend 调试器的 PHP
【发布时间】:2010-09-19 10:28:25
【问题描述】:
我在 OS X 10.5 中设置了 PHP 5 和 Apache 2 的预编译版本。我正在尝试设置 Zend 调试器,但没有成功。这是我所做的:
- 我下载了
ZendDebugger-5.2.14-darwin8.6-uni.tar
- 我创建了目录
/Developer/Extras/PHP 并将权限设置为:
- 权限:
drwxrwxr-x
- 所有者:
root:admin
- 我将
ZendDebugger.so从5_2_x_comp目录复制到/Developer/Extras/PHP
-
我更新了/etc/php.ini 文件,添加了以下几行:
zend_extension=/Developer/Extras/PHP/ZendDebugger.so
zend_debugger.expose_remotely=always
zend_debugger.connector_port=10013
zend_debugger.allow_hosts=127.0.0.1
我通过系统偏好设置“共享”面板重新启动了 Apache
当我在 PHP 文件中运行 phpinfo() 时,我没有提到 Zend 调试器。当我从命令行运行php -m 时,它显示 Zend 调试器已加载。两者都声明他们正在运行相同版本的 PHP,并加载相同的 INI 文件。
有人有其他建议让我试试吗?
【问题讨论】:
标签:
php
macos
osx-leopard
php-5.2
zend-debugger
【解决方案1】:
如果我没记错的话,这个问题是因为 Zend Debugger 是为 32 位 Apache 编译的,而 Max OS 10.5 附带的 Apache 是为 64 位应用程序编译的。在 Zend 推出 64 位版本之前,您有两种选择:
1) Restart Apache manually into 32-bit
2) 在 32 位模式下重新编译 Apache 和 PHP。
我实际上还没有开始这样做,但我认为我倾向于重新编译以避免将来出现问题。
【解决方案2】:
在 32 位模式下重新启动就可以了。对于那些希望能够轻松做到这一点的人,这里有一点 AppleScript:
do shell script "apachectl stop" with administrator privileges
do shell script "arch -i386 /usr/sbin/httpd" with administrator privileges
坐在某个地方真是太好了,这样您就可以在需要时快速进入 32 位模式。
【解决方案4】:
我也是,小时!!非常感谢!!
此外,如果由于某种原因您需要在运行后重新启动 apache/httpd(例如,您需要在 php.ini 中进行更改)但是当您运行“sudo arch -i386 /usr/sbin/httpd”时,您会得到这个错误:
(48)地址已在使用中:make_sock: 无法绑定到地址 [::]:80
在终端窗口中输入:
sudo killall httpd
然后“sudo arch -i386 /usr/sbin/httpd”应该可以正常重启 apache/httpd。