花了两天的业余时间,一路磕磕碰碰,终于调通了PHP的开发环境。遇到好几个没有想到问题,笔记下来。
我的开发环境是:apche2.0, php5.2.8, mysql5.0, 以及使用zend debugger的eclispe综合PDT:zend-eclipse-php-galileo-SR1-win32-x86.zip (这是eclipse平台上结合了zend debugger的一个综合php开发平台。)可以从:zend公司的Eclipse PHP Development Tools中下载windows版本的All-in-one.

安装的时候,为了方便,我都选择全部安装,没有遇到什么问题,很顺利。

随后问题就一个一个接着来了
第一个问题是:
apache2 0不能解析php代码!
上网搜索,找到了解决的方案:参考链接:php5 跟apache2 0安装不能解析php代码的解决办法
打开apache的配置文件httpd.conf 根据我的文件路径,添加以下几行(位置随便)
ScriptAlias /php5/ “C:/Program Files/PHP/”
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Action application/x-httpd-php “/php5/php-cgi.exe”

添加之后,apache就可以解释解析php代码了。

随后,遇到第二个问题:
调用http://localhost/phpinfo.php的时候,页面一片空白,什么也不显示。而其他的比如 <?php echo(12345);?>这样的简单语句可以正常执行。

继续在网上搜索解决方案,这次就比较麻烦了,搜到的方案都无法解决这个问题。后来直接看php的文档,终于在 PHP Manual中看了cgi的一段,突然觉得,phpinfo.php中的phpinfo()函数的运行,需要“php-cgi.exe”的支持。发现,php-cgi.exe没有在C:/Program Files/PHP/中,添加后,就立刻解决问题了。

/*后来我又重新装了一次php5.2.8发现,php5.2.8安装后,确实在php/目录下面没有php-cgi.exe文件*,但默认安装后,phpinfo.php也是可以正常运行的。之所以我会遇到问题,估计是因为原来的php很早就安装好了,在很长的一段时间里,做过一些修改,导致环境变量不对了。*/

最后,调试zend debugger, 遇到了第三个问题:
可以调试script但无法调试PHP web page,而且居然是Zend Debugger无法和127.0.0.1连接!上网查了很久,找到的方案是:在php的配置php.ini文件中添加
[Zend]
zend_extension_ts=”/full/path/to/ZendDebugger.dll”
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always

我按照这个方案配置后,问题一点也没有解决。不过也明确了zend debugger并没有正确地被php识别,因为在phpinfo.php显示的页面中,没有看到zend debugger的信息框。所以,估计还是php和zend debugger没有正确设置的问题。
再仔细阅读文档,这一次,我又下载了一个ZendDebugger-5.2.14RC9-cygwin_nt-i386 的plugin。比较其中的README文件中,明确了设置肯定正确。那么问题在哪里呢?
比较了一下ZendDebugger-5.2.14RC9-cygwin_nt-i386 和我构建环境的PDT平台zend-eclipse-php-galileo-SR1-win32-x86.zip里面的ZendDebugger.dll,发现了,原来两者size就有很大差别,是不是PDT平台的ZendDebugger.dll文件不适合???我立刻把ZendDebugger-5.2.14RC9-cygwin_nt-i386 下面的ZendDebugger.dll复制的php/ext文件夹下。
从新启动apache,这下子,phpinfo.php显示的页面中,就出现了zend debugger的信息框了!
再用PDT的zend debugger调试PHP web page, 一切正常了!呜呼,快哉!

扩展和联想:

访客的留言(3)

  1. 很有帮助,谢谢。

  2. 博主很有闲情雅意哦,是个MM吧。

欢迎留言