php一般使用xampp(apache+mysql+php+perl)部署,下载地址https://www.apachefriends.org/zh_cn/index.html。本文不用集成包,搭建PHP开发环境:

1、准备并安装下列软件: 
    MySQL: http://dev.mysql.com/downloads/。
    Apache: http://httpd.apache.org/. 在安装过程中,会出现3个文本框,上面两个输入你的本机IP(如:127.0.0.1),最下面输入你的EMAIL。安装完成后,apache就自动启动,可以测试apache是否成功启动。在浏览器地址栏里输入:http://localhost/或http: //127.0.0.1,如果出现“It works.”,那么恭喜你,apache已经成功安装了;同时在电脑右下角的任务栏里有一个绿色的 apache服务器运行图标。
    PHP: http://www.php.net/downloads.php. 下载无需安装的zip格式的解压包,不要用那个installer版本的安装文件包(用这个的话很多php扩展都没有安装,比如php的mysql扩展,导致不能连接mysql数据库).
    Zend Debugger 5.2: http://www.zend.com/en/products/studio/downloads. 选择Studio Web Debugger.
    Eclipse for PHP: http://www.eclipse.org/downloads/. 注意是Galileo Packages based on Eclipse 3.5 SR1的版本。Eclipse的工作空间设为D:/php_workspace。
    安装完后,对Eclipse作一些基本的配置。如果要使开发的应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使使用UTF-8编码。
然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP、Windows 2000简体中文)的缺省编码是GBK或GB18030,在此工作空间中建立的工程编码是GBK或GB18030,工程中建立的文本文件也是GBK或GB18030。如果要使新建立工程、文件直接使UTF-8,则需要做以下工作:
    打开Window->Preferences->General->Workspace,将"Thext file encodiing"最好设成UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。 
    修改各种文件的编码:在Window->Preferences->General->Content Type中,Text下面有各种文件格式,选择相应的文件格式,在下面的Default encoding输入框中
    输入UTF-8,点Update即可。对PHP开发,最好将HTML和PHP文件编码设为UTF-8。    
    2、让apache载入php模块: conf/httpd.conf,在尾部添加下列内容,表示载入php模块,要注意版本要吻合。

  1. PHPIniDir "D:/PHP/"
  2. LoadModule php5_module "D:/PHP/php5apache2_2.dll"
  3. AddType application/x-httpd-php .php

这里注意一下,如果你的apache是2.0版的你就填写LoadModule php5_module "D:/php/php5apache2.dll"。
    3、添加虚拟目录和默认首页: 默认站点主目录为Apache的htdocs目录。由于要在D:/php_workspace下放置所有的Eclipse工程,因此为了能够访问到各个工程    下面的php文件,需要建立一个虚拟目录指向eclipse工程所在目录。修改httpd.conf,在文件结尾添加:

  1. Alias /Workspace/ "D:/php_workspace/"
  2. <Directory "D:/php_workspace/">
  3. Options Indexes MultiViews
  4. AllowOverride None
  5. Order allow,deny
  6. Allow from all
  7. </Directory>

这样做的好处是,所有php工程都共享一个apache配置,通过http://localhost/Workspace/ProjectDirectory即可访问相应工程下面的php文件。
    4、PHP配置: 
    (1)把D:/php下的php.ini-recommended,改名为php.ini。
    (2)设置下面的项目:

  1. zend.ze1_compatibility_mode = Off //是否支持PHP4,最好关闭它,否则用PHP5处理Zip文件会出错
  2. post_max_size = 20M     //POST信息最大容量
  3. magic_quotes_gpc = Off     //是否使用魔法引号
  4. extension_dir = "D:/PHP/ext"    //PHP扩展
  5. upload_max_filesize = 20M    //上传文件大小
  6. max_execution_time = 6000    //页面最大执行时间(秒)
  7. max_input_time = 600     //脚本解析时间上限(秒)
  8. memory_limit = 20M     //脚本分配最大内存
  9. output_buffering = On     //是否打开输出缓冲区
  10. implicit_flush = On     //及时输出缓冲区内容

(3)开启出错消息提示:为了在开发时能更好地进行调试,开启php.ini中的display_errors和display_startup_errors变量。display_errors 变量的目的很明显,
它告诉PHP是否显示错误。另外,变量error_reporting 的默认值是 E_ALL。这个设置会显示从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细,
因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出。如果只想看到错误和不良编码实践,但是不想看到无害的提示,可设成以下值:

  1. error_reporting = E_ALL & ~E_NOTICE

(下列配置可选)依赖于Apache正在做的工作,在PHP中打开错误报告可能没法工作,因为在计算机上可能有多个PHP版本。有时很难区分Apache正在使用哪个PHP版本,因为Apache只能查看一个 php.ini 文件。不知道 Apache 正在使用哪个 php.ini 文件配置自己是一个安全问题。但是,有一种方法可以在 Apache 中配置 PHP 变量,从而保证设置了正确的出错级别。而且,最好知道如何在服务器端设置这些配置变量,以否决或抢占 php.ini 文件,从而提供更高级别的安全性。要做在 php.ini 文件中已经做过的事,请把下列各行添加到 httpd.conf,覆盖任何 php.ini 文件:

  1. php_flag  display_errors        on
  2. php_value error_reporting       2039

这会覆盖在 php.ini 文件中为 display_errors 已经设置的标志,以及 error_reporting 的值。值 2039 代表 E_ALL & ~E_NOTICE。如果愿意采用 E_ALL,请把值设为 2047。
同样,还是要重启 Apache。
    (4)找到Dynamic Extensions项,这里是PHP扩展设置部分,启用下列常用扩展(去掉以下几项前面的“;”).

  1. extension=php_bz2.dll
  2. extension=php_curl.dll
  3. extension=php_dba.dll
  4. extension=php_dbase.dll
  5. extension=php_gd2.dll
  6. extension=php_imap.dll
  7. extension=php_ldap.dll
  8. extension=php_mbstring.dll
  9. extension=php_mime_magic.dll
  10. extension=php_mysql.dll    //MySQL扩展
  11. extension=php_mysqli.dll
  12. extension=php_pdo.dll     //PDO扩展
  13. extension=php_pdo_mysql.dll     //PDO_MySQL扩展
  14. extension=php_sockets.dll
  15. extension=php_xmlrpc.dll
  16. extension=php_xsl.dll
  17. extension=php_zip.dll

(5)解压出Zend Debugger,把与PHP版本相对应的ZendDebugger.dll拷贝到PHP安装目录下,修改php.ini,添加以下内容:

  1. [zend]
  2. zend_extension_ts=D:/PHP/ZendDebugger.dll
  3. zend_debugger.allow_hosts=127.0.0.1
  4. zend_debugger.expose_remotely=always

把解压出来的dummy.php放到httpd DocumentRoot目录以及D:/php_workspace/下,用于在Eclipse里测试Debugger是否连通(Debug Configurations->PHP Web Page->Test Debugger),
成功会出来一个success message。(通过修改worksapce的对应站点目录,Configure "Default PHP Web Server",也可以放到网站的子目录下)。
    (6)这一步不是必须的:为防止以后出问题,把PHP下的php5ts.dll、libmysql.dll、以及ext/php_mysql.dll、ext/php_mysqli.dll(如果使用了这个扩展)三个文件拷贝到Windows/system32下。
注意很多时候出现一些与代码无关的很难解决的问题时,十之八九就是因为扩展没有正确加载的原因(即使php.ini中的extension_dir指向了ext目录),这主要
是因为PHP模块由Apache来加载,这是两个不同的软件,经常会出现一些协作上的问题。这时就要把你使用到的扩展从ext下拷贝到system32下。
    5、配置Eclipse指向PHP模块: 打开Eclipse的Window->Preferences->PHP->PHP Executables->Add,添加
Name: PHP 5.2.11
Executable Path: D:/PHP/php.exe
PHP ini file(optional): D:/PHP/php.ini
PHP debugger: Zend Debugger
    6、配置Eclipse中的php文件访问URL: 打开Window->Preferences->PHP->PHP Server,编辑Default PHP Web Server条目,将URL改为http://localhost/Workspace,注意URL栏中添加了Workspace,
这个是在httpd.conf中添加的目录别名。
    7、测试: 配置完后重启apache,然后新建一个PHP Project命名叫FirstPHPTest, 当然使用的是我们的D:/php_workspace作为Eclipse的workspace目录。在工程中新建
PHP File, 比如使用的phpinfo.php。内容为

  1. <?php
  2. phpinfo();
  3. ?>

当在phpinfo.php上右键 Run As->PHP Web Page。

php开发环境的更多相关文章

  1. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

  2. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  3. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  4. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  5. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  6. Angular企业级开发(2)-搭建Angular开发环境

    1.集成开发环境 个人或团队开发AngularJS项目时,有很多JavaScript编辑器可以选择.使用优秀的集成开发环境(Integrated Development Environment)能节省 ...

  7. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  8. 使用ubuntu作为web开发环境的一些感受

    从ms-dos,win95,win98,winMe,winXp,vista,win7,win10我都有使用的经历,我使用时间最长的应属winxp,其次是win7,说实话,我觉得这两个系统是微软做的最好 ...

  9. 自定义搭建PHP开发环境

    学习了一段时间php了,因为之前是刚接触php,所以用的是集成安装包(wamp).现在想进一步了解apache.mysql.php之间的关系以及提升自己所以进行自定义搭建PHP开发环境.废话不多说,请 ...

  10. Nova PhoneGap框架 第十章 开发环境

    10.1 Visual Studio + ReSharper PhoneGap程序由HTML.CSS和JS编写而成,这3种语言的编写你都可以用记事本来完成,但显然效率比较低,出错的概率也比较大.一个强 ...

随机推荐

  1. 动态加载(异步加载)jquery/MUI类库 页面加载完成后加载js类库

    动态加载Mui类库: // ==UserScript== // @name // @version 1.4.0 // @author zzdhidden@gmail.com // @namespace ...

  2. android源码的目录结构

    android源码的目录结构 [以下网络摘抄] |-- Makefile ! l/ a5 n% S% @- `0 d# z# a$ P4 V3 o7 R|-- bionic              ...

  3. Head First设计模式之策略模式(Strategy Pattern)

    前言: 刚刚开始学习设计模式,之前也接触过一些,但是从来都没有系统的学过,这次打算好好的学习一下.这里就当是对学习过程的一个记录.整理,以便可以在以后不时的温故知新. 这一节采用一个鸭子的示例,层层推 ...

  4. 【原创】新手用外挂来学C语言,外挂入门教程【2013.03.12更新V5.1版

    目录 e@vZg8Ie  第一章 配置编译环境    - 5 - W7~_XI  1.1 安装CB和gcc    - 6 - fj( WH L  1.2 使用gcc编写我们的第一个C程序    - 1 ...

  5. C++中一个常用的句型(两个for(;;)语句连用的重要性)

    在一些简单的C++编程中,经常会用到两个for(;;)语句连用的情况,这是一个常用句型,因此感觉也非常重要.下面举两个例子说明一下: 例1.用两个for(;;)语句来进行数组元素大小的排序 #incl ...

  6. delphi locate多字段查询

    简单格式: IF MSQ_NewBillQuantity.Locate('FStockID;FMarchID', VarArrayOf([FStockID, FMarchID]), []) = Fal ...

  7. 检测文件是否有BOM 头,并删除BOM头(php)

    将下面文件放在网站根目录访问即可,它会遍历当前目录下所有子目录,检测文件是否含有BOM头,并删除BOM头 <?php //remove the utf-8 boms //by magicbug ...

  8. JavaScript的学习2

      1. a.字符串运算符 符号 功能 + 字符串连接 += 将左边的值加上右边的值然后再赋值给左边的变量 b.比较运算符 运算符 含义 说明 > 大于 M>N,当M大于N时,返回TRUE ...

  9. PHP常用函数总结(不定期更新)

    array_merge函数和两个数组相加的区别 array_merge函数,在出现相同的索引数组,会把两个数组中的索引数组,进行融合,以第一个数组的索引最大值往后相加,如果是关联数组,后面数组的值覆盖 ...

  10. List subList(startIndex, endIndex);

    1. subList(startIndex, endIndex);//startIndex开始,到endIndex结束,不包含endIndex! 2. 集合排序可以实现 java.util.Compa ...