5.1安装PHP――《PHP高级程序设计:模式、框架和测试》
PHP 6是PHP语言的一次重要升级。PHP 6的核心是对Unicode的内置支持,这允许你在应用程序中无缝地使用多种语言。非英语系国家的程序员甚至能够将函数和类的名称以自己的语言命名。Unicode支持马上变得极其重要,因为越来越多的应用程序将面向全球的用户。
除了多语言支持以外,PHP 6还添加了一些高级的OOP概念,例如命名空间和延迟静态绑定。如果使用得当,这些特性将允许你更好地组织类和方法。
PHP 6还提供了打破一些后向兼容的机会,并且清除了一些现存的函数。你将会发现register_globals、magic_quotes_gpc和safe_mode等函数被移除了,并且PHP 4的ze1兼容模式也被去掉了。为了使API更加一致,一些函数的参数顺序也被更新了。
最后,PHP 6包含了一些如XMLWriter这样的新类,这些类向PHP语言添加了新的功能。
说明 对于任何开源项目来说,很难预测语言将会如何发展。本章在很大程度上基于固定的信息和建议的修改,在最终发布PHP 6之前,这些内容还可能会变化。为了与这些变化保持同步,我会试图维护一张本章的最新勘误表,在Apress 网站本书页面(http://www.apress.com/ book/view/1590598199)的Book Extras中可以访问到。
5.1 安装PHP
最终,PHP 6将会包含在操作系统的安装包管理系统中,但是到目前为止,还是需要一些手工的安装过程。这里,我们将关注模块的手工安装过程,并且此过程未处于Debian/Ubuntu基于Linux的操作系统的安装包管理之下(在撰写本书的时候)。我还将假设目前正在使用Apache 2.2 Web服务器。
首先,需要安装包管理系统中的一些基础包。使用apt-get install安装下列的安装包。
> apt-get install apache2.2-common apache2-mpm-prefork
> apache2-prefork-dev apache2-src apache2-utils autoconf
> bison flex g++ libtool libxml2-dev re2c
当安装好这些包之后,需要安装Unicode库ICU。在编写本书时,ICU的安装包管理版本与PHP 6不兼容,所以必须手工安装ICU 3.6或更高版本。幸好,安装过程非常简单。
> mkdir~/icu3.6
> cd~/icu3.6
> wget ftp://ftp.software.ibm.com/software/globalization/icu/3.6/icu4c-3_6-src.tgz
> tar xf icu4c-3_6-src.tgz
> cd icu/source
> mkdir /usr/local/icu
> ./configure --prefix=/usr/local/icu
> make && make install
在完成ICU的安装之后,安装PHP 6就非常简单了。首先,需要下载PHP 6的副本,在http://snaps. php.net或者http://www.php.net(在PHP 6最终版发布之后)可以找到。临时版本的文件名应该是PHP 6.0-200XXXXXXXX.tar.bz2。使用以下命令来安装PHP 6。
> tar xf php6.0-200XXXXXXXX.tar.bz2
> cd php6.0-200XXXXXXXX
> ./configure
> --prefix=/usr/local/php6 --with-apxs2=/usr/bin/apxs2
> --with-icu-dir=/usr/local/icu
说明 如果你是一位Debian/Ubuntu用户,要特别注意对Apache安装程序的修改。如果需要附加功能,如MySQL或者PostgreSQL的支持,就必须将其添加到configure命令行中。要查看配置选项的完整清单,请在命令行中输入--help选项。
Debian/Ubuntu用户可能需要执行以下的命令来更新Apache 2,这是由于Debian/Ubuntu系统打包Apache 2的方式有些不同。
> echo #AddModule placeholder placeholder >> /etc/apache2/httpd.conf
最后,编译并安装PHP 6:
> make
> make install
现在,应该已经安装好了PHP 6,但还没有设置好。我们可以使用以下命令来确认已经正确安装了PHP 6。
> php --version
PHP 6.0.0-dev (cli) (built: Dec 13 2007 16:59:43)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2007 Zend Technologies
设置PHP 6的最后一步是将其与Web服务器集成。如果正在使用Debian/Ubuntu系统,需要遵循其模块格式,只需创建代码清单5-1和代码清单5-2中的配置文件即可。
代码清单5-1 创建 /etc/apache2/mods-available/php6.load文件
LoadModule PHP 6_module /usr/lib/apache2/modules/libphp6.so
代码清单5-2 创建 /etc/apache2/mods-available/php6.conf文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
创建完这两个配置文件之后,还需要从/etc/apache2/httpd.conf文件中去掉自动添加的内容。然后调用以下的命令即可:
> a2enmod php6
现在,PHP 6应该已经被安装并配置好了。
如果不是Debian/Ubuntu用户,PHP安装程序应该会自动更新httpd.conf文件,修改的内容就是代码清单5-1和代码清单5-2中的内容。你应该确认这些设置已经被正确地添加好了。
下一步,为了激活PHP 6,必须重新加载Apache。在Debian/Ubuntu系统中,调用以下命令即可:
> /etc/init.d/apache2 force-reload
以下是用来重新加载Apache的通用的Apache 2命令。
> apache2ctl restart
为了测试PHP安装是否正确,需要在Web服务器上创建一个.php文件,其中包含了对phpinfo()函数的调用,如代码清单5-3所示。
代码清单5-3 获取PHP信息(/var/www/index.php)
phpinfo();
然后访问http://example.com/index.php即可,这里的example.com是服务器的IP地址或者域名。屏幕上应该有“PHP Version 6.0.0-dev”的字样,另外还有所有已加载模块的信息。