梁远辉的Blog

记录个人的一些事情、一些心情。

« 唯一的2009年12月31日只为PHP在Windows 2003跑得好点(2)-日志出错篇 »

只为PHP在Windows 2003跑得好点(1)-开篇

题目是为了PHP在Windows下跑得好点,其实不完全是这样的,有一个很重要的原因,是为了让伟大的ASP和PHP同时跑动。当然,也有一个很基础的原因,Windows 2003配置直观点,不用太多的命令行(Windows 2003的高级应用都离不开命令行)。

本系列文章从一个主题:PHP,入手描述一台新安装的服务器的配置过程,希望可以给大家一点帮助。

先说明本系列文章用到的服务:IIS 6+FastCGI+PHP 5.2.x+MySQL 5.0.x+MSSQL 2000+NET 2.0.x+Serv-U 6.x+McAfee 8.7i

其他的软件环境就不一一写出来,等到在文章用到的时候再写出来即可。服务器是为了更加方便地上新的网站,所以我们也希望服务器是乖乖的听我们的话。

上面的服务基本可以满足目前市场上主流的网站系统了,比如流行的Discuz!论坛,织梦CMS,帝国CMS,Discuz!NT论坛,动易CMS(ASP版和NET版)。而且,我们例子采用的FastCGI+IIS来运行PHP应该是目前最快地运行PHP方案了(就Windows而言)。

如何让服务器跑得好点?首先肯定需要高点的配置吧,现在装机器也不贵。弄个英特尔至强4核+4G内存,四千左右都能搞定。至于硬盘方面,建议组个Raid1,两个硬盘同步数据,比较大地保障了数据安全,Raid1的原理是两个硬盘的数据一模一样的,只要不同时坏两个硬盘,都能保障数据无损。

选好机器了,就得配个好点机房来托管,现在宽带也在逐渐下降了,独享的宽带也能用得起了。建议准备搭建服务器的朋友,多点操作,选择机器和托管分开,会在第二年节省不少钱的,如果普通的服务器租用,不带产权的话,每年8000元好了,如果第二年续费,还是同样价格,因为没有服务器产权,这样越久就越不划算。所以,不管怎样,建议使用有产权的租用或者自己配服务器,而且租用前先谈好第二点托管的价格,这样可以为了您的服务器长久地运行作了铺垫。

选好机器和托管地点的话,就得开始为自己的爱机怎样安装一下门面了。最起码要分区吧,如果是有300G以上硬盘的话,建议系统盘给20G,然后再分多四个区,一个放网站,一个放数据库,一个放软件,一个放备份,这样的话,网站和数据库都独立分开放,会好管理点。把系统安装好了,如果机器在自己手上的话,可以考虑使用一键Ghost备份一个镜像先,以后再重装也方便多了。

以上涉及到的软件下载地址参考:一键Ghost的下载地址:http://www.onlinedown.net/soft/33492.htm

其他软件容后在环境软件版本补上,因为PHP环境对版本的区分是很重要的一课。

在本系列文章第一章中提及到的环境软件版本如下:IIS 6+FastCGI+PHP 5.2.x+MySQL 5.0.x+MSSQL 2000+NET 2.0.x+Serv-U 6.x+McAfee 8.7i。

毕竟PHP环境原生于Linux,如果要在Windows环境跑得好点,是需要区分好它的版本号的。

首先,先简单从笔者的理解介绍一下FastCGI,它是微软推出在Windows的IIS下运行PHP脚本的软件,首先应用于Windows 2008的IIS 7,后来又发布了for IIS 6版本,根据微软自己的发布介绍,说这个FastCGI可以让PHP在Windows环境比之前的加载DLL形式(isapi)效率高上几倍。

如果要在Windows配置PHP环境,建议安装软件的顺序是: IIS 6-FastCGI-PHP+MySQL。添加IIS组件的就不介绍了,直接到控制面板,删除/添加组件即可。FastCGI的下载地址:http://www.iis.net/expand/fastcgi,请区分好您的系统是32位还是64位的,一般而言,默认安装的都是32位的系统,在下载页面,看到:x86 / x64,x86就是32位的意思,x64就是64位的意思。选择对应的先下载保存好。本章是属于介绍版本的,所以安装的注意事项下一章再展开。

由于FastCGI的文档查询起来有点困难,所以暂时不对FastCGI的版本等信息展开。

下面重点展开PHP和MySQL的版本探讨。毕竟在Discuz等论坛都看到不少关于PHP版本的问题。

PHP的官方网站:http://www.php.net/。打开它的官方网站,可以看到不少关于PHP的文档。PHP是一个开源的环境平台,它支持在Linux内核的系统和Windows内核的系统运行。现在就它的版本为大家解释一下。

截止本文发布的日期,在下载页面,看到的有:PHP 5.3.1,PHP 5.2.12。究竟这两个有什么区别呢?是不是越新越好呢?答案不是的。如果您安装的是PHP 5.3.1的话,很多国内的程序根本还不兼容,因为它是最新的PHP的版本发展方向,是过渡到PHP 6的前一个版本。而且,最新的PHP 5.3.1是直接使用FastCGI形式运行的了,不再支持ISAPI加载DLL的形式。如果要运行大部分的程序,还是选择PHP 5.2.12是最好的,PHP 5.2.x和PHP 5.3.x是完全不同的版本的了。至于PHP 5.2.x,后面的x则代表不同的版本号,一般是越大越修复多的Bug,也就是越好的版本,只要不超过那个PHP 5.2.x中的2即可。讲到这里,意思应该大家都明白,如果您看到的一篇文章是关于在PHP 5.2.6下安装Discuz论坛的话,那么,在PHP 5.2.12下安装也是差不多的,只是PHP 5.2.12比PHP 5.2.6的版本更加新罢了。

PHP除了版本,还有加载方式的区分,就是文中之前提及到的ISAPI方式和FastCGI方式。如果是ISAP方式的话,下载的则需要是pack包形式的,这样里面才有php5isapi.dll这个DLL文件可以配置。下载页面:http://www.php.net/get/php-5.2.12-nts-Win32.zip/from/a/mirror

如果是FastCGI的话,请下载Install包的,下载页面:http://www.php.net/get/php-5.2.12-nts-win32-installer.msi/from/a/mirror

关于PHP页面的一些版本区别,VC6和VC9的区别,Thread Safe和Non Thread Safe。翻译一些英文资料:只有在CGI/FastCGI模式下non-thread-safe才会工作。模块化安装方式不起作用,Windows下web server大多是多线程的。non-thread-safe意味着更好的性能,不过差异不大,php内部就已经很高效。无论是否值得这么做,带来的困惑却有很大争议。建议使用FastCGI方式的话,下载non-thread-safe的即可,即使不起作用,也不影响。

MySQL官方网站:http://www.mysql.com/。MySQL比起PHP,有着更加复杂的背景,不过我们只追求环境的搭配,不去研究这些公司背后的事情。MySQL分成三大版本:MySQL 4.1、MySQL 5.0和MySQL 5.5。和PHP一样,PHP 5.5是实验室中的产品,具有很多先进的性能,但是实际生产环境还没有大规模去应用。所以建议使用MySQL 4.1和MySQL 5.0即可,在国内的主流应用当中,建议使用MySQL 5.0。截止本文发布日期,官网上最新的MySQL 5.0.x系列版本是MySQL 5.0.89。笔者则建议使用MySQL 5.0.11a,为什么呢?笔者选择的原因很简单,因为最新版本的PHPMyAdmin 3.2.4使用的MySQL引擎就是MySQL 5.0.11a版本。所以,使用PHPMYAdmin管理MySQL的话,使用这个版本会减少不必要的警告信息。

MySQL 下载没有多大的区别,在Windows 下载的话,下载页面是:http://dev.mysql.com/downloads/mysql/5.0.html#win32,这个是32位的操作系统的下载页面,其他版本的话请选择其他的连接即可。

MySQL 4.1版本还是有很大的应用场合,但是PHP 4.x系列的话,在国内基本最新的程序都不支持了,建议使用PHP 5.2.x+MySQL 5.0.x组合。

以上两个是PHP环境最需要注意的版本信息,其他的软件则不在PHP环境下重点讨论的。MSSQL 2000是微软经典的数据库软件版本,比起MSSQL 2005和MSSQL 2008,MSSQL 2000则有着巨大的使用人群。.NET 2.0则是在国内比较折中的应用,比起.NET 1.1和.NET 3.0,.NET 2.0是主流。

至于McAfee 8.7i,它比McAfee 8.5i的进程多了三、四个吧,但是占用资源却比McAfee 8.5i和McAfee 8.0都低很多,特别是经过优化的配置,占用的资源达到很理想的状态,这个在安全篇再展开探讨吧。

《只为PHP在Windows 2003跑得好点》系列文章首发于“用网站改变一些事情”梁远辉的Blog:http://blog.gougliang.com

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 91204

Copyright 2002-2010 gougliang.com. Some Rights Reserved.