经过摸索,总结出下列Apache、MySQL、PHP、EPP、ZendDebugger的开发环境配置方法:
版本:
Apache: Apache-httpd-2.2.25-win32-x86-no_ssl.msi
MySQL:mysql-5.5.28-win32.zip
PHP:php-5.3.28-Win32-VC9-x86.msi
EPP:EPP3_Setup.rar
ZendDebugger:ZendDebugger-20110410-cygwin_nt-i386.zip
一、先安装上述软件
二、配置Apache和php环境:
(1)修改php.ini文件如下:
1) extension_dir = "C:\PHP53\ext"
2) extension=php_mysql.dll
extension=php_gd2.dll
......
(2) 修改Apache/conf下的httpd.conf,在文件尾部添加:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:\PHP53\"
LoadModule php5_module "C:\PHP53\php5apache2_2.dll"
AddType application/x-httpd-php .php
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
(3)
1)在环境变量的Path设置下添加:
C:\php53\php-5.2.6;C:\php53\php-5.2.6\ext
2)经过上述配置,在Apache/htdocs目录下创建一个php测试文件index.php如下:
<?php
echo "Hello php!";
?>
3)重新启动Apache, 打开IE在地址栏输入:http://localhost/index.php,如果能工作就表示php和apache能工作了。
三、配置Eclipse的PHP开发、调试环境
(1)解压ZendDebugger-20110410-cygwin_nt-i386.zip, 将5_3_x_nts_comp目录中的ZendDebugger.dll文件拷贝到C:\php53\ext下面
(2)在php.ini文件的最后增加:
[zend]
zend_extension_ts= C:/PHP53/ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always
(3)将dummy.php文件copy到Apache的安装目录下的htdocs目录下,例如:C:\Program Files\Apache Software Foundation\Apache2.2\htdocs下面
(4)配置Apache:
比如我在D:\Workspace_EPP3下放置所有的Eclipse工程,那么修改Apache/conf/httpd.conf,在文件结尾添加:
Alias /Workspace/ "D:/Workspace_EPP3/"
<Directory "D:/Workspace_EPP3/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
这样做的好处是,所有php工程都共享一个apache配置(看下面如何设置)。
(5)配置Eclipse:
打开Eclipse->Window->Preferences->PHP:
PHP Executables->Add,如下所示设置:
PHP Servers->New,如下所示设置:
注意URL栏中添加了Workspace,这个是在httpd.conf中添加的目录别名。
PHP Debug,如下图所示,选择合适的Debugger、Server:
至此,配置完成。
记得再次重新启动Apache。
四、最后,建一个测试程序,看看效果如何:
新建一个PHP Project命名叫FirstPHPTest, 当然使用的是我们的D:\Workspace_EPP3作为Eclipse的workspace目录。
在工程中新建PHP File, 比如使用上面的test1.php:
<?php
echo "work done!"
?>
当在test1.php上右键Run As->PHP Web Page时就可以看到类似如下画面了:
五、关于XDebug
如果上述使用ZendDebugger发现Test Debugger报错:
如果你的php版本是5.3以上,且是thread safe的,那么不要浪费你的时间做尝试,建议你直接改用XDebug吧。以下官方给出的解释。
The Debugger we provide supports only the non-thread-safe architecture, that is why it does not load in your configuration.
Zend stopped supporting the thread safe architecture when Microsoft also decided to implement its PHP engine with the fast-cgi architecture which means non-thread-safe.
XDebug安装,在php.ini中配置:
[Xdebug]
zend_extension = C:\PHP53\ext\php_xdebug-2.2.5-5.3-vc9.dll
xdebug.auto_trace=on
xdebug.profiler_enable=on
xdebug.trace_output_dir=C:\PHP53\debuginfo
xdebug.profiler_output_dir=C:\PHP53\debuginfo
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.collect_params=on
xdebug.collect_return=on