LAMP

Linux平台下的php集成开发环境(以下简称IDE)很多,这里为了以后配置方便,记录一下比较著名的NetBeans与Eclipse PHP Development Tool(以下简称PDT)的安装与设置。

当然,一提到PHP的IDE,可能都会想到Zend Studio,没错Zend很出色,它同样是基于Eclipse的,此外还有一样基于Eclipse的解决方案,不过没前面几个出名,就是Aptana Studio,它同样作为一个Ruby开发工具而闻名,在这里它不在讨论范围内。

首先是PHP环境的安装,可以分开安装Apache、PHP和MySQL,根据版本需求安装即可,过程比较简单。

Ubuntu下还有更方便的,可以打开System的Administration中Synaptic Package Manager,使用Edit菜单下的Mark Package by Task…选项,选中LAMP包后,OK,选择主画面Apply按钮即可安装。过程中会出现询问MySQL root用户的密码设置。

NetBeans的下载页面可以参考这里(选择PHP开发环境即可)

Eclipse PDT包的页面为这里

一、Xdebug

PHP在脚本debug时可能会需要用到这个工具,毕竟每人能保证自己写出来的代码不出错,或者说不依靠debug来修改程序。当然如果你选择Zend的话,这个可以不必安装,因为Zend自带了自己的Zend Debugger组件。

PHP Xdebug在Linux下的安装还颇为麻烦,这里给出主要的几部,给一些参考,在FreeBSD下可能没有编译好的二进制包,需要下载源代码自行编译。不过安装步骤类似,可以自行Google。

安装详细请参考PDT设置部分。

二、JDK

NB和PDT都是基于Java的解决方案。故而必须安装JDK才能使用它们。这里可以选择使用Sun-Java的JDK还是GNU自己的JDK——Open JDK。

在ubuntu中从9.04起,默认的apt-get就不再提供Sun-Java的JDK,如果不做Java相关开发,仅仅是使用这两个IDE的话,OpenJDK也是个不错的主意。

OpenJDK的安装方法如下

sudo apt-get install openjdk-6-jdk

而sun-Java的JDK,可以在这里获得 http://packages.ubuntu.com/hardy/sun-java6-jdk

三、NetBeans

1、安装

下载的文件是打包的sh脚本,可以在终端中运行,或者选择打开方式,用命令sh打开即可。安装过程有图形界面,默认安装路径是在用户home下。

2、配置

NetBeans安装后不需要特别设置什么,只需要在Tools菜单,Option中选好浏览器,另外在php选项中设置解释程序路径为/usr/bin/php即可(视php路径而言)。

3、与其他

NetBeans的插件很强大,这方面可以在讨论NB的地方找到不少技巧,这里就不赘述了。

有一点值得注意的是,NetBeans由于是基于Java的,所以不少配置都和JVM的设置相关。比如字体、语言等。

关于字体:举例来说,某使用的是OpenJDK,它的字体设置文件位于/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/下的fontconfig.properties中。字体的设置类似CSS的选择器,这方便的文章可以在Google很容易地找到。

NB似乎仅支持Unicode的字体,某最先找到的Monaco For Linux字体版本安装后竟然无法识别出。

此外,NB默认字体没有开启AA,字体大的时候很难看,可以在NB的主目录下etc文件夹里的netbeans.conf设置文件中,添加启动参数:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-Dawt.useSystemAAFontSettings=on"

重启NB后,AA开启,字体好看多了。

关于配色:用过Mac的开发人员会很喜欢Textmate的配色方案,某也是如此,在NB下可以在插件中安装Extra Color Theme,获取Ruby的配色方案。不过默认的黑底色,对于一些红色的关键字突显不利于阅读,需要手动修改一下。

四、Eclipse PDT

1、PDT安装

严格来说,PDT不需要什么安装过程,下载完成后的包解压至喜欢的地方即可。建立一个快捷方式后即可使用。 当然,你可能会喜欢在ubuntu的程序菜单中添加快捷方式。那么可以在 /usr/share/applications/eclipse.desktop 添加以下内容后保存即可。

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=/home/your_username/eclipse/eclipse  //改成自己安装Eclipse可执行文件的目录路径
Icon=/home/your_username/eclipse/icon.xpm  //改成自己的Eclipse 图标路径
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;  //指应用程序;编程

2、Xdebug的安装

此步推荐在安装完Xdebug后再设置,因为debug php使用的解释器需要用到Xdebug。

Xdebug的安装配置原文在这里

http://www.64bitjungle.com/tech/debugging-php-applications-with-xdebug-and-eclipse-pdt/

某大致翻译如下。 这里注意一下,如果没有pecl的话,需要先安装一下。 可以使用以下命令很方便的安装。

sudo apt-get install pecl

Xdebug是一个由核心PHP开发团队Derick Rethans开发的非常棒的PHP扩展。

有许多方法可以安装Xdebug,可以在网站上下载二进制包、从源码编译,或者通过PECL下载:

sudo pecl install xdebug

某些时候,我可能更喜欢下载之后编译源码,它可以便于我理解到底安装了那些文件,安装在哪儿,可以参考这里:

cd ~/

mkdir xdebug

cd xdebug

wget http://www.xdebug.org/link.php?url=xdebug203

tar -zxvf xdebug-2.0.3.tgz

cd xdebug-2.0.3

在安装Xdebug时,必须有phpize包与php-config,它们可以通过安装php相关的开发包中获取:

sudo apt-get install php4-dev

或者

sudo apt-get install php5-dev

这取决与你安装的php版本,在解压Xdebug的源码后,可以运行

phpize

它会输出

PHP Api Version: 20041225

Zend Module Api No: 20060613

Zend Extension Api No: 220060519

之后可以参照http://www.xdebug.org/docs/install#phpize中的表格,来保证php版本可以兼容Xdebug,之后可以继续安装:

./configure --enable-xdebug --with-php-config=/usr/bin/php-config

make

这条命令在模块子目录中创建了一个xdebug.so的文件。这个文件需要复制到php扩展目录中,路径类似于/usr/lib/php5/20060613/

要找到php扩展路径,可以很方便地使用以下命令来获取

locate mysql.so

OK,我把xdebug.so复制到扩展目录中。

sudo cp modules/xdebug.so /usr/lib/php5/20060613/

目前为止看起来还不错,现在PHP必须知道有这个扩展并且加载它,可以在php.ini文件中添加

zend_extension="/usr/lib/php5/20060613/xdebug.so"

不过,在我的Ubuntu系统中,PHP扩展还可以通过在/etc/php5/apache2/conf.d目录中给每个扩展添加一个扩展名.ini的文件来激活它。所以我创建了一个xdebug.ini文件。

cd /etc/php5/apache2/conf.d

gksu gedit xdebug.ini

目前只包含了一行

zend_extension="/usr/lib/php5/20060613/xdebug.so"

利用

sudo /etc/init.d/apache2 restart

来重启apache服务

接下来可以在Web根目录下创建一个test.php文件,其中调用phpinfo()函数。

利用浏览器访问那个文件,在PHP Credits区域前,有个包含了Zend信息的方框,如果Xdebug安装成功的话,这里就会添加Xdebug的信息。

同样你可以在终端中运行以下命令

php -m

在它输出的模块信息中,在最后应该可以看到

[Zend Modules]

Xdebug

另外还可以

php -i | grep Xdebug

如果Xdebug安装成功的话,可以看到输出类似以下的信息

with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans

现在,在脚本调试前,必须启用Xdebug。所以在php.ini文件(或前面提到的xdebug.ini)文件中添加

xdebug.remote_enable=On

xdebug.remote_host="localhost"

xdebug.remote_port=9000

xdebug.remote_handler="dbgp"

之后,重启apache

运行

php -i | grep xdebug

在终端或包含了phphinfo()函数调用的test.php文件里,可以看到启用了新的设定,Xdebug可以运行了。

3、PDT的设置

在PDT中,打开Window->Preferences,选中php,展开目录树,选择Debug,在php debugger中选择Xdebug。Default PHP Server应该已经设置为localhost,然后在PHP Executables右侧的链接中新建新的PHP Executables。

在PHP Executables对话框中,点击Add,填入名字(比如PHP With Xdebug),输入php可执行文件的路径,我的系统上路径为/usr/bin/php,如果你不知道,可以在终端中运行

which php

在这里,最好设置一下php.ini文件的路径,在我的系统中,它的位置在/etc/php5/apache2/php.ini,最后在PHP Debugger里选择Xdebug。

点击OK,回到PHP -> Debug 性能页面,选择刚刚创建的HP Executables。

最后选中左侧的Debug -> Workbench 选项,在“allow multiple debug sessions”上,选择never,因为Xdebug不支持它(默认应该已经是这个了)

最后在浏览器设置中,选用喜欢的浏览器(一般可以使用Firefox)即可。如果不知道Firefox在哪里。

可以使用

which firefox

来找到它。

保存性能选项后,就可以使用Web Page的方式,调试php脚本了。

4、其他

关于字体:Eclipse同样是Java写的,字体就没那么刁了,安装完后不需要设置就可以认出来。

关于配色:感觉Eclipse的配色更出色一点,不过PDT代码识别还有待加强,喜欢Ruby配色的同学可以看这里: http://www.romiro.com/archives/7