PHP 开发环境搭建——Nginx+PHP+Eclipse(PHP)

2013-10-10 由 创建在标签 开发

概述

以前做PHP时搭建服务器时整理的文档,现将它与大家分享。本文描述PHP环境的搭建步骤,以及配置过程;形成一个能够通过IDE进行单步调试的开发测试环境,节省开发时间。

软件准备

Windows7 64位系统

软件包

php-5.5.1-nts-Win32-VC11-x64

eclipse-php-helios-SR2-win32-x86_64

nginx-1.4.2

php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll

环境搭建

软件包均使用的是绿色版,可以打包直接拷贝(由于当前配置的机器是64位,32位需要重新配置)。

HTTP server

当前安装使用Nginx,也可以使用其他的Server,可以在此补充。

Nginx

配置使其支持PHP请求,找到如下所示首行的文本,去掉这块的注释(删除#号);把标记为红色的/scripts改为”$document_root”,这里的”$document_root”就是指前面”root”所指的站点路径。

location ~ \.php$ {
root D:/web/website;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

Nginx使用PHP需要使用CGI,所以PHP和Nginx都需要配置CGI参数。

PHP

PHP主要配置三个方面,一个是扩展包,另一个是关于CGI参数的解析,还有一个是关于与eclipse联合单步调试的配置。

扩展包

; extension_dir = "ext" 改为
extension_dir = "ext"

CGI参数修正

;cgi.fix_pathinfo=1 改为
cgi.fix_pathinfo=1

XDebug扩展

将下载的XDebug扩展的dll放到php的ext文件夹中,编辑php.ini,在最后添加如下的配置:

[Xdebug]
zend_extension = php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll
;下面的线程安全版本的配置
;zend_extension_ts = php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.remote_mode = req
xdebug.remote_handler=dbgp

XDebug配置成功后调用phpinfo会显示有Xdebug运行,如果没有如图 31所示的Xdebug信息则说明配置失败。


图 31:XDebug配置后phpinfo显示

Eclipse

运行

Eclipse运行时使用的是jre运行,jre已经放在eclipse配置文件中。

eclipse.ini中添加如下配置(jre放在eclipse根目录下,下载的jre有版本号,此配置中已经把版本号删除):

-vm
jre/bin/javaw.exe

注:如果电脑上已经安装jdk,可以不用下载安装jre,也可以不用修改配置文件。

配置单步调试

在Window -> Preferences窗口的左边选择PHP -> Debug(如图 32),在窗口右边的PHP Debugger这一项中选择XDebug,这个选项的右边有个Configure链接,点进去可以对XDebug进行设置,请确保XDebug使用的端口号与php.ini文件中指定的相同(通常为9001)。


图 32:调试选项

调试的使用

打开 Eclipse ,新建立一个PHP Project,我继续建立一个测试项目,打开 index.php 页面。选择 Eclipse 菜单里的 Run –>Run Configurations,设置一下:


图 33:运行配置选项卡


图 34:开始调试

其他

自动运行和停止脚本

在启动脚本中,由于windows不能像Linux那样用&符号将程序在后头运行,所以在需要使用RunHiddenConsole工具,这样就能让windows程序在后台运行。启动脚本如下:

echo Starting PHP FastCGI...
RunHiddenConsole D:/web/php-5.5.1-nts/php-cgi.exe -b 127.0.0.1:9000 -c D:/web/php-5.5.1-nts/php.ini
echo Starting nginx...
RunHiddenConsole D:/web/nginx-1.4.2/nginx.exe -p D:/web/nginx-1.4.2

停止脚本:

echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

遇到的问题和解决方案

Php不能运行,提示缺少DLL错误

这个是由于系统没有安装VS造成的,在PHP的下载首页可以看到提示到微软的官网上下载VC11的补丁;

不能断点调试

由于php和eclipse的配置造成的。一个是端口的冲突,由于FastCGI使用的是9000端口,按照网上的默认配置XDebug还是使用9000端口,在保证端口能够使用的情况下还要注意端口不要产生冲突;另一个是因为XDebug配置是使用的是extension参数而不是使用zend_extension。

参考资料

说明:本文中的图片也引用于上面两个资料,而不是自己配置时实际执行时截屏,在配置过程中仅有版本号不同,其余均与两个资料中的情况相同。

无评论

发表评论