第三章 - PHP 基础入门
本章重点
■ 决定外包还是自建
■ 寻找适当的ISP
■ 避开常见的主机陷阱
■ 安装PHP
■ 选择PHP开发工具
在本章中,我们会讨论有关各种不同Web
虚拟主机选项的优缺点:外包,自建和不同的折衷方安案。接着再讨论安装PHP的详细内容,最后则是关于寻找适当开发工具的一些建议。到本章结束时,你应该就能开始进行自己编写的第一份script了。
虚拟主机和DIY的比较
你需要确定的第一个重要决策是:谁将掌握及管理支持PHP的Web网站,是你本人,还是提供Web虚拟主机服务的厂商?另外,是否需要一个单独的开发安装;如果需要,谁将掌握它?如果你已经做好了决定,就可以跳过这部份内容,直接翻阅本章关于安装的部分。
选择ISP
由于许多ISP公司开始提供支持PHP的Web服务,远端虚拟主机(Remote Hosting)已逐渐成为主流的选择。以下是一些必须记记的基本概念。
优点
外包的虚拟主机有不少优点。从理论上讲,ISP有责任(理论上)要掌握许多关键的技术和管理细节,好让这个站能维持正常的运转,这些细节包括:
■ 硬体
■ 软体升级
■ InterNIC注册、IP寻址、DNS
■ 邮件服务器(POP/IMAP与SMTP)
■ 宽频
■ 电源供应
■ 备份
■ 安全
如果使用者的网站出了什么问题,ISP技术人员的手机半夜都得开机;了解这一点之后使用者能更安稳地入睡了。潜伏的怪客(cracker)、停电、备份磁带出了问题,所有这些令人头痛的事现在都交给了提供虚拟主机服务的公司。
在大多数情况下,Web虚拟主机其成本效益是比较好的。Linux或某个BSD上的PHP费用非常低,而且很容易取得。目前只的少数公司提供NT服务器平台的PHP,当然有一些价格还很不便宜。反正多看多比较,找找看适合的ISP服务提供者。
缺点
当然,ISP虚拟主机也有一些严重的缺点。
还好这些缺点大多都是可以控制的。当使用ISP时,使用者自己基本上就是个[客人],必须遵循别人的规则。也许你是个付费且受欢迎的好客人,但在别人家怎么说还是不如在自己家里那么方便和随意。
最令人关切的议题是PHP模组和CGI的对比。PHP做为模组执行的效果最佳也最快,换句话说,模组是内置于Web服务器本身,而不是当作单独的行程在执行。只要有可能,几乎每个有都愿意使用模组版本。然而,许多ISP公司更喜欢执行CGI版本,因为对它的安全管理是比较简单。所幸市面上有越来越多的虚拟主机的服务提升了,使得你可以更简易找到模组的方式。
目前,使用委外PHP虚拟主机的最大问题就是无法取得其它程序资源,显然ISP非常鼓励你在他们的服务器上设计程序,但是有许多PHP的参数必须介于一些服务与通讯协定之间,无法在上面执行一些未授权的执行格式或连结到你所在目录的程序库。
有一条不变的法则是:需求越常见,就越可能且越适合外包虚拟主机,如果需求越特殊,则越可能需要自己架设。当然,实际上还有一条不成文的规则:你的网站规模越大,需要花费的钱就越多,则交给别人管理的权衡比重就越大。
下面的几个因素会使得在寻找虚拟主机服务上更加困难:
■ 一般来说有争议性的内容(暴力、色情)。
■ 未经请求而主动递送的邮件,又称垃圾邮件。
■ 吸引怪客(cracker)的内容(安全资讯)。
■ 会引起问题的潜在非法内容。
■ 需要不常见的服务器硬体、作业系统或软体的需求。
■ 对超大宽频(特别不是不可预知宽频)的需求。
如果你正是以上这些情况之一,则需要提前告知。如果能找到不错且符合的虚拟主机服务,别再犹豫了,赶快抓住机会用了再说,以后再慢慢寻找更好的处理方式。
最后,必须要提及所有负面因素中最重要的一点:糟糕的虚拟主机服务会造成你很大的挫折和忧虑。无法形容当你的网页正列于Slashdot但是却无法显示网页的咬牙切齿、胃肠抽、惊声尖叫的书面,使得你看似公诸于世但却失去所有演出的机会。
更别提其它常见的问题,比如说像是莫名其妙遗失电子邮件、DNS不见了,网站不明断线,资料库资料遗失(这只在我们发生过),缺乏备份、或者等上一个小时的电子话就为了和他们的技术支援人员谈一谈,而这些人好像从未走近过服务器,也从未对你的礼貌邮件做出回应,而你只有在付费时才会得到些许优待……(我们不是在讥讽,总是我们的律师说我们不能提及太多)。
选择虚拟主机服务的底线是:其实在选择虚拟主机服务时,也就等于让自己开始面对危险了。一定要随时搬走的准备,这也意味着不要选那种没有长期合约和(或)采取预付款方式的服务,就算他们有多便宜或是功能多齐全都一样。相反地,在和他们打交道时不要急躁,如果以前从未外包过虚拟主机,要花些时间了解一下和评判Web虚拟主机服务公司(小心很烂又糟糕的技术支持)和根本的Internet流量问题之间的差别。
细节
如果决定要采用虚拟主机,你要知道在目前的市场上是很多种选择的。然而,采购新手应该小心,因为[ISP]一词几乎可以包含一切,进而让你什么都搞不清楚。表3-1中的指南提供了专业化范围和最适合的用途(其中提到的公司只是例子,并不表示对其服务的认可或推荐)。
表3-1 各种不同的ISP
虽然想要对找一个好的Web虚拟主机服务有时像寻找终生伴侣一样困难,但下列的一些资源可使这个过程更容易一点:
http://hosts.php.net/
http://www.od-site.com/php>
要对使用者及市场的评价多留意,不论是好的评价还是坏的评价都要注意。向你的朋友或同事询问他们的使用经验。到网路上找一找PHP使者社群或讨论群组,大家偶尔会对自己的好与坏经历做些建意和评论。
在签约时可能引起争议的问题就是网站流量。小心这种广告说词「无限流量/频宽/点阅」,对于没经过具公信力单位测试的频宽级别,是不能确保它是否达到了要求。所以在签约之前,需要自己连连看、试一试,并评估可能结果。
如果评估频宽需要量?每月1GB的流量等于浏览100,000个平均10K的档案(包括图形、文字、广告等等这些除了第三方提供服务支持之外的所有一切,它是从一个使用者角度来评估计算的、而不是从服务器的角度)。
要留意你的网站计划中所需要的磁盘空间总量,尤其是对于大型的网站或图形很多的站台。如果超出了限制,一般每月会为超额的空间支付额外而昂贵的费用。解决这个问题的方法之一是小心外理日记档案(log file);定期将它删除,或者把它们下载到比较便宜的储存设备上。
选择自行建构主机的各项功则
随着连接费用的下降,自建主机已逐渐成为许多网站的选择。这给你最高控管和命令权力,如果配合经验加以充分的运用,它还能提供真正的安全性优势。自己的安装意味著问题得到解决的速度更快,因为不必浪费时间与技术支援通热线电话,而且也会觉比较有趣,无论何时有需要,都可以直接操控实际的伺服器。最后,如果你自己有什么不寻常的、产生异议或者比较不一样的需求,无论自己是否愿意,也得要自己为自己的网站服务。
另一方面,自建主需要做更多准备工作,并且旨用可能更高一点,尤其是对中小型规模的网站更是如此。而且,自建主机站的好坏是取决于你自己的技术能力有关。因此,如果你的团队中没有人对安全性有多一点的了解,则在安全性问题上就要小心了。不过你可以自己累积经验并学起来,不像交给别人管,也许他们公司主管安全性的工程师离职而出了安全问题时,我们也只能看著办而已。
更现实的问题是,如果出了问题,你也只能怪自己而已。如果在早上起来时,站在镜子前对自己说:「全部靠我自己了!这种感觉真好!」那么你就具有自行建构主机所需的自信。
折衷的解决方案
当然,外包和自建主机实际上是在这个议题的两端。除这种之外,有几种「折衷」的解决方案可提供这两方面最佳的部分。
托管意味著包装好自己的伺服器主机,并把它送到提供虚拟主机服务的公司,对方将把它挂接到他们的网路上,并且替你监视它。你负责购买、办许可证、上保险、安装、配置以及维护所有的软体和硬体,除了不间断电源之外。虚拟主机服务供应根本不会扰乱你的设备,除偶尔的重新启动之外,而这通常也得额外付费。如果需要额外的技术支援,必须自己到现场去,或者付费来得到作业人员和帮助。如果你采取托管方式,很有可能使用了对方作业人员没有操作经验的产品。
专用伺服器
专用伺服器就如字面意思一样:主机服务会购买一台伺服器,把它调整成适合你的情况(当然要付费),然后把它接到他们的网路上,之后所有的处理相关则是都归你使用。一般来说,你会得到技术支援,这比使用共用伺服器环境更安全,并且对于中大型态的网站来说,这样相对来说成本效益更高。
外包制作、自己开发
这种选择涉及到两种完整的安装:一个外包制作的网站和等同于在自家开发的伺服器(一部或多部),按照这种想法来分割,能够取得双方面的最佳内容,既有人得半夜听呼叫器(随时听命差遣),而自己又能够直接管控自己的伺服器。如果你所在的地区只存在有限的连接选择,那么这是种还不错的方案。对于需要有较多开发人员的大型网站,这也是最佳选择之一。
安装PHP
如果决定完全外包PHP主机服务,则可以跳过本章其余部份不看。然而,我们仍然建议你首先安装你自己的软体,即使只安装在你自己的工作机器,因为你会有更多经验与了解设计的环境。
开始之前的准备工作
◆ 在任何平台上安装PHP之前,你需要的东西是:
◆ 一部有足够的RAM让你的作业系统使用的伺服器主机。
◆ 已安装了UNIX、MAC OS X 或Windows作业系统。
◆ 如果这已是个正式站,需要有一个正在执行的Internet专线连接,若还在开发阶段,可安装在Intranet上,或者让它单独安装(虽然没有Internet连接,但还是需要有其它安装软体套件来配合)。
关于这些先决条件已超出了本书的范围。可从下列网站找寻相关的详细资讯:
World of windows Networking (http://www.wown.com/)
Linux Document
Project(http://www.linuxdoc/ …)
如果计划在Windows上安装PHP,还需要具备以下条件:
◆
一部支援PHP的Web伺服器。在PHP3下,IIS/PWS是最容易的选择,因为有可用于该形式下的PHP模组版本,但PHP4提供了Windows下更多更广泛的模组选择。
◆ 安装了支援PHP的资料库(如果计划要使用资料库的话)。
◆ 若是Windows 95,必须有DCOM更新,可从下列站台免费下载:http://download.microsoft.com/msdownload/dcom/95/X86/en/dcom95.exe
◆ PHP Windows二进位执行档版本(可从www.php.net/downloads.php下载)。
◆ 解压缩程式(可到有名的下载网站找,例如http://download.cnet.com/寻找PC档案压缩程式)。
如果计划在UNIX上安装PHP,需要具备以下条件:
◆ PHP原始码版本(http://www.php.net/downloads.php).
◆ 最新的Apache原始程式码版本(从http://www.apache.org/dist/寻找副档名为.tar.gz档案的最高位基数编号即是最新版本)。
◆ 如果计划使用资料库,则要有支援PHP的资料库。
◆ PHP必须连接到的所有其它支援软体(邮件伺服器、BCMath套件、JDK之类等等)。
◆ ANSI C语言编译程式。
◆ GNU make(从PHP4开始,不能用其它make版本,这尤其对于非GPL援权的Unix如Solais与BSD更是重要的,可从www.gnu.org/software/make免费下载它)。
◆ Bison和flex(确定在/usr目录下然后键入「find .-name bison -print」和「find .-name flex -print」,检查是否已经有这些内容,或者让gcc在make过程中进行检查。如果没有,可以从 www.gnu.ory/software/bison下载bison,从ftp://ftp.ee.lbl.gov/下载flex)。
进行到这里就算是完成了实际安装PHP时所需的准备工作。
请记住,PHP要连接到的任何其它伺服器或软体程式库都必须在建立之前先将它们安装好。资料库是最常见的扩充伺服器类型。其它例子还有BC math套件、IMAP伺服器、mcrypt程式库和Expat XML剖析器(除非使用Apache,它已内含这些元件)。
现在你已经准备好正式安装PHP了,建立Apache模组和建立CGI可执行档案之间的差异很小。实际上,其区别就只是在设定时使用—with-apache或—with-apax 旗标。许多使用者为了便于使用,同时编译了模组版本和CGI版本。
在过去,有许多机构提供一起安装Apache、PHP,甚至有时MySQL的程式(例如PHPTriad、Nusphere MySQL与Zend Launchpad),但不幸的,要在使用与论上这些程式似乎都有问题,Nusphere严重违反MySQL的使用援权,PHPTriad的维护者宣称他将不再维护产品,Zend Launchpad更早已从网站上消失了。
安装过程
由于PHP对于跨平如可操作性的承诺,有太多种具体的安装方法可采用,这里没办法全部列出,我们试图在介绍时涵所有在看来都适用PHP的最流行平台,但全写出对于每种可能的作业系统和Web伺服器的安装指南会让这一章内容过长。
再者,虽然安装PHP于Unix已经稳定了许多年,但是由于PHP 4.0的发行使得安装在Windows实在有一点更异,部分原因为PHP团队、部分原因是因为Windows产品的上市,例如Windows XP与IIS可能的更新,PHP现在了可以在Macintosh OS X上执行,而在上面安装的过程在本书馔写时仍然十分不稳定。
根据这样的快速改变,我们只能够提醒你应该参见PHP网站(http://www.php.net/docs.php)
上每种下载的最清楚安装资讯,即使你过去曾经反复安装过许多次,有可能在你安装多次后会出现一些新的变动。
UNIX与Apache
第一次以原始码建立自己的HTTP daemon时,可能会有一点担心。不过这个过程相当直观,而且自己编译Web伺服器而不依靠其它人的RPM,是十分什得学习的经验,别人的RPM可能是几周或几个月之前的版本,要想用新的就等别人准备好。当一切都是自己动手搞定,且都能运转起来,你一定会觉得自己是个天才!
对于那些已经使用先前版本的PHP完成这个过程的人来说,整个过程是完全相同的,只是所需的时间可能比先前的更要长一些。
Reb Hat或Mandrake Linux安装版可能附有Apache和PHP的RPM版本。在编译自己的新PHP之前必须要先把这些软体套件移除掉。另外,可以有其它伺服器厂商的 RPM版本,诸如MySQL或PostgreSQL等,这与原始码对应版本的安装是不同的。如果遇到了问题,参阅安装来源的说明文件。
在下面的说明中,原始码片段都是在shell提示符号下输入的。
如果你安装时使用个人目录时,请记住要先用root来登入系统。
要开始进行,请根据下列步骤:
1.如果以前没有这样做过,那么就先对Apache原始版本进行unzip和untar的解压缩处理。除非有理由不这样做,否则请把它解到/usr/local这样标准位置。
Gunzip –c apache_1.3.x.tar.gz
Tar –xvf apache_1.3.x.tar.gz
2.初始调整Apacche伺服器时,如果你安装于/usr/local之外的位置,现在你必须使用以下的- -prefix选项,如果你安装在/usr/local,不需紧张底下Apacche目录是产存在的,他只在build过程中使用。
Cd apache_1.3.x
./configure - -prefix=/usr/local/apache
3.对PHP原始码版本进行unzip和untar解压缩。除非有理由不这样做,否则请把它们解到/usr/local这个标准位置。如果Apache和PHP在不同一个目录下,必须将下方的「..」位置替换成软体套件的完整路径。
cd..
gunzip –c php-4.x.tar.gz
tar –xvf php -4.x.tar
cd php -4.x
4.设置你自己的编译连接(设定PHP算是一个非常大的主题,也非常驻重要,请参考本书第三十一章里有详细的资讯)。最常见的选择是建立成一个
Apache模组,而且可支援特定资料库。Java
与XML的支持也逐渐流行起来,下面的示范就是Apache模组附带MySQL和XML支援,但读者所用的旗标可以完全不同。
./configure - -with-apache=../apache_1.3x - -with –mysql- -with-xml—enable-track-vars
5.进行make并安装PHP模组。
Make
Make install
6.进行Apache daemon 的设定与make。不用紧张libphp4.a不存在这个位置,Apache会为你产生。
cd…/apache_1.3x
./configure-activae-module=src/modules/php4/libphp4.a
Make
7.如果你已经有httpd的行行档,你现在应该关闭并忘记他,在现在Apache版码),并会内含你应使用的二进位与组态档。
Make install
8.设置php.ini档案。要编辑这个档案,可参考本书第三十一章中列出的选项,我们极力建议新使用者把错误报告设置为E_ALL(15)。
cd../..php-4.x
cp php.ini-dist/usr/local/lib/php.ini
9.告诉Web伺服器要用什副档名来识别PHP档案(.PHP是标准副档名,但也可以使用.html.phtml或任何想用的副档名)。请找到HTTP设定档在/usr/local/apache/cont或你自己设定的其它路径下)并用文字编辑器打开httpd:conf搜寻DocumentRoot字样(应该出现两次)并将两者的路径改为你想要放置档案的目录(以我们为例,/home/httpd),我们建议家目录而不要使用预设的
/usr/local/apache/htdocs,因为这样比较不安全。至少新增……解析为PHP:(这会需要一些执行效率付出,尤其如果你只想使用. html
为副档名的HTML档案的话)而确定Apache知道网域别名或是所读取的IP位址也是现在适当做的事。(如果你不知道这是什么意思,搜对
httpd.conf档案内的ServerName,并在其后加上localhost,在你较清楚后才使用你的网域名称)
AddType application/x-ttpd-php.php
AddType application/x-httpd-php.html
10.重新启动伺服器。每次更改HTTP设定或php.ini档案时,必须停止并再次启动伺服器才能产生作用。只用HUP信号是不够的。
cd../bin
./apachectl start
11.将档案根(root)目录的权限设置成可执行的。PHP档案权限性只需设成可读(644)。如果需要,把/home/httpd取代成为下面的档案根目录:
Chmod 755/home/httpd/html/php
12.打一开文字编辑器。键入「」。把它储存在Web伺服器的文件根目录(document root),取名为info.php
。启动任何一个Web浏览器来浏览这个档案,必须使用URL(http://www.testdomain.com/info.php),或使用HTTP
路径 http://localhost/info.php或 http://127.0.0.1/info.php ,而不能直接用档案路径(/home/httpd/info.php),这样应该看到一个关于PHP4安装的长条资讯表格。恭喜你安装成功!
许多Apache伺服器产品不使用php.ini档案,因为它可能不期待在两个不同的地方需要不同的组态档案,你可以将许多组态指令由php.ini移到
Apache的httpd.conf档案,最起码你应该需要设定include路径与错误回报水准,因为这些档案的预设设定是不令人满意的,请参考本书第三十七章。
Mac OS X与Apache
最近Open source世界最令人兴奋的就是Macintosh平台的部分开放,大多数使用者认为OS X是位于实作完整BSD系统上最高级的GUI介面,有可能这样的组合可以使Unix机器能用在每个家用电脑。
在使用的方式上,Mac使用者可以选择以执行格式或是以原始码方式来安装,事实上,你的OS X机器可能已安装了Apache 与PHP,这有可能是早期的版本,仍然缺乏一些少数的常用支持,然而,如果你需要的是Apache+PHP+MySQL/PostgresSQL安装在你的计算机上的话,这是最简单的方式,你所需要做的就是编辑你的Apache组态并且开启你的Web服务器,所以只要依照以下步骤(再次说明,以下的指令就是你在每个步骤所需输入的指令):
1. 用适当文书编辑器以root开启Apache组态檔
Sudo open –a TextEdit/etc/httpd/httpd.conf
2. 编辑该档案,将以下各行的注解移除:
Load Module php4_module
AddModule
mod_php4.c
AddType application/x-httpd-php-php
3. 你也可能想要移除部分的注解,否则告诉Apache哪一个目录要提供服务。
4. 重新开启你的Web服务器。
Sudo apachectl graceful
5. 现在开启一个文书编辑器,并输入,将档案储存为info.php于你的网站数据夹内,开启任何Web浏览器并浏览档案,你必须永远使用HTTP request方式来将档案解析正确(http://www.testdomain.com/-username/info.php或是http: //localhost/-username/info.php 或是 http://127.0.0.1/-username/info.php )而不能只用文件名称(/home/username/info.hph),你应该看到一些长长的表格记录着你新的PHP安装次讯,恭喜。
如果你觉得你没有PHP模块使用,或是你要将你的模块升级到新的版本,你可以在Internet许多地方下载,例如瑞士的Marc
Liyanage,这是我们底下所使用的网站,如果你有更喜欢的发行文件,将指令内的网址做取代:
crl –o http://www2.entropy.ch/download/libphp4.so.gz
gnzip
libphp4.so.gz
sdo apxs –i –a –n libphp4.so
sdo apachectl graceful
在OS X上编写源文件可能需要一点技巧,档案结构与一些相关工具并不相同,而Apple自己的内含执行格式并非标准,所以目前对缺少Unix经验的新PHP使用者而言,由原始码编者按译的方式较不被建议,如果你仍想要试一方试,在Stepwise.com有一篇好的文章:
http://www.stepwise.com/Articles/Workbench/2001-10-11.01.html
以后在OS
X上安装方式可能是被迫会随时更动的,永远在安装一个新的版PHP之一前到OS X系统安装网页查阅一下:
http://www.php.net/manual/en/install.macosx.php
Windows NT/2000/XP和IIS
在Windows上使用IIS4或5的服务器上安装PHP4比在Unix上较方便许多,因为它拥有经过编译的二进制元格式而不需要重新编译。
现在使用Windows有两种二进制格式的选择:自动安装的Installshield与压缩檔方式,这种方式是比较简易的,但是拥有许多缺点,它只能够在IIS4或多或5与Xitami等Web服务器上使用,而且它只提供CGI执行版本而无法使用模块方式,它缺少extensions的自动设定过程,它是明显较不安全的,所以任何严谨的PHP安装在Windows上应选择手动安装方式。
请根据以下步骤进行安装:
1. 使用自己的解压缩工具,把二进制压缩文件解压缩,把所有档案放在C:PHP档案夹中。
2.从你的PHP目录上复制一些。Dll档案到你的系统数据夹(通常是C:Winnt/System32),你必须复制php4ts.dll,你也可能需要复制你的Web服务器模块所需档案— C:PHPSapiphp4isapi.dll,也有可能需要其它来自dlls子数据夹的档案,但是是先将上述前两部分的档案复制之后再加入你所额外需要的。
3.复制php.ini-dist或是php.ini-optimized(后者较建议)到你的Windows目录(C:Winnt或C:Winnt40 ),并重新命名为php.ini。使用文字编辑器开启该档案(例如使用记事本),编辑档案来使用组态指令,你可以参阅第37章所列的选项。我们强列建议新使用者在此时工作的机器上将错误回报设为E_ALL(15),目前最重要的步骤就是在Paths与Directories部分的doc_root指令,将此指令向你的IIS Inetpub数据夹(或是其它你想要提供服务之处)。
4. 将WWW服务关闭重新开启,由开始菜单、设定、控制台、服务,并不拉倦轴到IIS Admin Service,选取它并点选关闭,等待关闭之后(状态讯息会告诉你),选择World Wide Web Publishing Service并点选开启,但是使用Internet服务管理员来关闭并重新开启是没有用的(藉由right-click图示),由于这在Windows 上使用PHP,所以你可能需要重新开机。
5. 开启一个文书编辑器(例如记事本),输入,并在你的Web服务器文件根目录内储存档info.php, 开启Web浏览器并浏览档案,你必须永远使用 HTTP request方式(http://www.testdomain.com/info.php或是http://localhost/info.php或是 http://127.0.0.1/info.php )而不能使用档案名称(C:inetpubwwwrootinfo.php)才能正确执行该档案,你会看到一列长长表记录着你的PHP4安装资讯,恭喜。
一些Windows使用者报告说他们必须把php.ini 档案和php.exe可执行档案放在同一个目录中才能使用CGI版本的PHP。就安全性……会更好,现在PHP提供对于Windows Web服务器更好的模组方式,如果可以的话使用这种方式。
Windows 95/98/Me与PWS
在本书编辑改版之时,Microsoft宣布将不再免费发行Personal Web Server(PWS)产品,这是一个桌上使用的简易Internet Information Server版本。
根据考虑,这应该是正向的网路发展,PWS过去被安装用来当作Windows/95/98/Me机器上以最低费用与风险(或是被认为)使用PHP的方式,但是这些作业系统并非用来当作服务器平以,它信也无法长久稳固的运作,所以如果要安装Web服务器与其它厂商的scripting引擎,过去必须经过相当大量的手动调整登录资料库(Registry),但这些却导致许多系统的严重破坏,并且也不能相当容易的干净移除。
过去可能必须要等Microsoft新的Web服务器平台已相当稳定才能在桌上型机器使用,而现在我们建议Windows使用者称为Apache HTTP server友善而价廉的工作平台,你在Apache所撰写的PHP程序事实上了可以在IIS上执行(或是.NET Web Server等其它最终名称)。
虽然在Windows下可以使用有空格的资料夹名称,但我们还是建议对启用PHP的目录不要这样做,因为这会造成安装程序出问题。
Windows 95/98/We与Apache
PHP 4.0推出了等待已久的Windows Apache模组,在此之前Apache的Windows使用者只能使用PHP的CGI版本,这是比较慢而且不安全的。而PHP 4.1更在这个模组的使用上显着提升了效能与稳定度,Apache开启者也在Windows HTTP服务器上下工夫明显提升效能,根据这些理由,实在没有比尝试Apache更好的时机了,即使在Win95/98/Mc机器上仍是如此。
要在Windows95/98/Me上安装PHP:
1.由http://www.apache.org/dist/httpd/binaries/win32下载Apache服务器,寻找现行稳定并有附
no_src.msi副档名的发行版本(如果有的话你也可以尝试。Exe版本,但是它无法在所有系统都能运作而且较不容易安装),Double-
click此安装档案开始安装,C://Program
Flies是常见安装的位置,安装工具也会询问你是否要将Apache以一个服务来执行(需要较多步骤,但是你可以在系统槽找到它),或是以命令列模式、
DOS提示字符等等说法方式来使用,我们建议不要以服务的方式来安装, 因为这样会在某些电脑的开机与关机时候造成问题。
2. 使用你的压缩软体将PHP解压到资料夹内,C://PHP是常使用的位置。
3.从你的PHP资料夹复制一些.dll档案到你的系统目录(通常是C://Windows),你必须复制php4ts.dll,你也有可能需要复制你的 Web服务器模组所需档案—C://PHP/Sapi/php4apache.dll到你的Apche模组资料夹内,也有可能需要其它来自dlls子资历料夹的档案,但是先将上述前两部分的档案复制之后再加入你所额外需要的。
4.复制php.ini-dist或是php.ini-optimized(后者较建议)到你的Windows目录(C://Winnt或C: //Winnt40),并重新命名为php.ini。使用文字编辑器开启该档案(例如使用记事本),编辑档案来使用组态指令,你可以参阅第37章所列的选项。我们强列建议新使用者在此时工作的机器上将错误回报设为E_ALL(15)。
5.告诉你的Apache服务器你要在哪里提供服务以及你要使用哪一种副档名来辨识PHP档案(.php是标准的副档名,但是你也可以使用.html′.
phpml,或是任何你想要的副档名),开启你的HTTP设定位置(C:Program FilesApache
GroupApachecont或是其它你使用的位置),并使用文字编辑器开启httpd.conf,搜寻DocumentRoot(应该会出现两次)并更改为你想要对外提供服务的资料夹的位置(预设为C://Program
FilesApache GroupApachehtdocs), 并根据以下语法来加入至少一个PHP副档名:
LoadModule php4_module
modules/php4apache.dll
AddType application/x-httpd-php.php.phpml
6.你也可能需要加入下列语法:
AddModule mod_php4.c
7.现在你也要确定Apache知道domain alias 或是所听取的IP address(如果你不知道目前的dmain ,搜寻httpd.conf档案内的ServerName,并在其后加入localhost,并在你找到一个domain后再使用你的domain名称)。
8.关闭并重新开启WWW服务。你可以经由开始菜单、程序集、 Apache HTTP Server、Control Apache HTTP Server、Stop/Start,或是由MS-DOS提示定元执行Apache。
9.开启文书编辑器(如记事本),并输入 ,并在你的Web服务器文件根目录内储存档案为info.php,开启Web浏览器并浏览档案,你必须永远使用HTTP request方式(http://www.testdomain.com/info.php或是http://localhost/info.php 或是 http://127.0.0.1/info.php )而不能使用档案名称(C:inetpubwwwrootinfo.php)才能正确执行该档案,你会看一列长长表格记录着你的PHP4安装资讯,恭喜。
如果你根据这些指令但是无法得到你想见的结果时不在惊慌,你可以翻阅本书第15章来参考常见问题,如果还是无法帮助你的话,请参阅PH线上文件的相关网页所附随的注解,有许多使用者会将他们在特殊安装问题下使用特定技巧记录在此。
其它Web服务器
PHP4可执行城其它许多Web服务器,储如Netscape Entetprise Server,Xitami,Zens和thttpd.针对AOLServer,NSPAI与fhttpd的模组都已经可取得了,你可以在PHP线上手册内安装部分参考相关网页。
开发工具
当你需要使用开发工具时,不幸的PHP只适合原先设计其它程序语言的原始设计者以及那些已经相当熟练于HTML语法的人,你有可能在使用其它服务或档案系统时需要撰写到多达2000行复杂的程序,并且只输出字符串1给前端的浏览器。另一方面,有许多人使用PHP的主要功能就是在一静态HTML网页内加入共同用到的页首与页尾,对于这些使用多样的情形上,可能良好的PHP开发环境对于设计者还算是家常便饭并且觉得足够友善,但是轻巧而功能强大原工具却是难以找到的。
由静态网页设计者进入PHP开发的人可能必须经过一些工作的调整,不可能会存在一个开发工具使得你只要使用精灵并且拖拉图示现内建图形处理就可以完成你的工作,如果上述的开发方式是对你很重要的,你可以使用WYSIWYG软体来做网页排版并稍后藉由文书编辑器加入PHP的功能,当然这样方式的缺点就上机器为你产生的程序码是不容易阅读的,而且某些更是十分冗长。
特别注意当你要使用Microsoft FrontPage来当作你的PHP编辑器时,因为有似乎有许多使用者发生问题。至少你需要启动ASP格式的标签(使用php.ini档案内的选项,或是一对致使用JavaScript较为痛苦的标签。
老练的程序设计师可能较不需客外学习,并可以将PHP当做任何其它伺服端程序语言来主生HTML给浏览器以及使用其它用途上,大多数这些程序设计师较喜欢简单的文字编辑器,通常这样的软体会提供你一些有用的工具,例如语法颜色强调,括号成对比对,或是tag自动结束,大多数这些功能只是用来帮助你的无心之过,但是却不会真正帮你写程序。
现在使用PHP最令人兴奋的工具已经出现了,它叫做Zend Studio,在本书撰写时正值发行第二版,这个产品结合了一个强大的除错工具(虽然仍然不是一个WYSIWYG工具)编辑环境,这个聪明的主品可以帮助你明显的节省用于检查正确PHP函式语法重复时间,使得你可以迅速消除错误,由于开发时间就是金钱,所以这个产品的些微费用将可以使你更具生产力,你可以真正发现这个IDE的符号知道PHP的语法,Zend Studio是第一个不只是重新设计来达到一些用途的开发工具,图3-1是Zend Studio的使用介面图示。
如同你在图3-1所示, Zend Studio允许你可以执行PHP程序并在视窗内预览HTML的输出,你可以不需要藉由使用浏览器来检视原来检视原始码,而此方法并非标准结果亦非豪华的显示书面,而除错工具可提供工具可提供你强大的辅助,你可以逐行检查程序码或是跳入或跳出函式检查,设定中断点,堆叠追踪处理,追踪所有该档案的全域与私有变数或是检查一个特定数的内容,在这样简易使用的GUI接口,你会被提醒使用到未经宣告变数的潜在危险,语法颜色强调与程序内缩编排可以被容易自由的调整,新使用者可以避免使用emacs或vi的控制不便,而且程序自动完成可以节省你反复反复的查阅PHP线上说明(例如到底是strreplace还是 str_replace,而且参数顺序内容又为何等等),你也可以在使用你的HTML时使用到程序自动完成功能,尤其当你必须熟记每一个标签允许的属性时,你甚至可以注册自己定义的函式或是自动完成清单,使得它更加容易使用而不需反复参阅该函式定义,如果你习怪传递一连串参数给函式时这是非常方便的功能。当你使用越大,越复杂,越需大量函式使用的程序库时,你会发现这个IDE可以帮助你越多。
记住你的开发端不下定要与服务的服务器使用相同的作业系统,这是跨平台开发的最大价值,尤其如如果你使用Unix服务器时(甚至为The Blues Brothers),我们都拥有两种文书编辑器:emacs与vi,甚至Macintosh与Windows拥有更多友善使用接口的文书工具。另一方面, Unix使你容易支持多台机器的客户端作业系统。许多开发厂商在这些工具设计有最佳优点的某些特性,emacs,vi与Zend Studio都是可以在许多主要平台上运作的编辑器,所以如果你的开发团队使用上述标准工具的话,人们都可以在许多作业系统偏好下使用这些工具。
表3-2显示一些大多数程序设计师所使用来自各大作业系统的编辑器。
如果你要在许多作业系统之间开发时,记得断行与一些字符在W indows与Unix之宰是不兼容的,Unix格式的断行会再记事本上显示一个黑色的色愧符号,而Windows断行格式在Unix系统的编辑器看似 ∧M字符,你的PHP程序可能仍然动作正常,但是你可能会在使用相异平台所编辑的档案时感到疯狂,根据许多原因所产生的好主意,解决这类断行问题的最好方式就职使用一个举如CVS之类的版本控制系统。
除了这些著名的选择外,Keith Edmunds维护一个有关适合PHP的文字编辑器详细列表,其中许多为免费或只需要一点费用。
http://phpeditors.dancinghippo.com/
做一个深呼吸吧,经过所有的安装与设定,现在你应该可以动手撰写你的第一个PHP程序了。
表3-2 不同平台较为普遍的PHP编辑器
摘要
在能使用PHP之前,我们需要先决定是由自己建构主机,外包,还是采取一种折衷解决方案,诸如托管。在这个决策过程中,最重要的因素中网站的费用,大小和流量,特殊有硬体或软体需求,内容的类型以及对控管的期望。外部Web主机服务是没有特殊需求的小型网站的最佳选择。
如果决定自行建构或维护开发服务器,本章前面对大多数常见平台都提供了详细的安装指引和说明。PHP4虽然支持许多不同类型的Web服务器,但在本书载稿时为止还没有正式文件说明关于它们的安装的详细内容。
最后,读者可能想知道哪种开发工具最适合PHP。在还没有特别属于PHP的整合开发环境(IDE)前,大多数PHP开发人员就是使用自己喜欢的文字编辑器来编写程序。把PHP功能新增到一个所谓[所见即所得]的编辑器中是可能的,但看上去会很杂乱。