apache+php环境搭建(windows)

1.编译版本VC6orVC9

PHP高版本只有VC9版了

从以下官方下载来看,PHP貌似5.3以后,就不再提供VC6编译的版本了。

http://www.php.net/downloads.php

http://windows.php.net/downloads/releases/archives/

对于这两个版本的区别,PHP官方的解释是:

引用
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

IfyouareusingPHPwithIISyoushouldusetheVC9versionsofPHP

VC6VersionsarecompiledwiththelegacyVisualStudio6compiler

VC9VersionsarecompiledwiththeVisualStudio2008compilerandhaveimprovementsinperformanceandstability.TheVC9versionsrequireyoutohavetheMicrosoft2008C++Runtime(x86)ortheMicrosoft2008C++Runtime(x64)installed

DoNOTuseVC9versionwithapache.orgbinaries

VC9versionsofApachecanbefetchedatApacheLounge.WeusetheirbinariestobuildtheApacheSAPIs.

根据以上说法,apache应该从apachelounge下载,而不应该使用apache.org的版本。

http://www.apachelounge.com/download/additional/

不过我实际试验了下,apache.org上的2.2和PHP5.4.11一起使用,没有发现明显问题。

2.fastcgivsmodule

Apache使用php的两种模式,相比传统的module方式,貌似fastcgi速度更快。

fastcgi模式的环境搭建:

a.下载mod_fcgid,解压缩到apache目录下即可。

b.修改httpd.conf。在httpd.conf最后加上这么几句然后重启apache就OK了(php安装目录需修改)

LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php"
AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php

这里我第一次操作的时候没成功,httpd的error显示:

引用
The pipe has been ended.  : mod_fcgid: get overlap result error

Prematureendofscriptheaders:index.php

后来发现是PHP里面某个extensionload失败导致的(直接点击php.exe,会有messagebox弹出的),解决掉该问题就好了。

module模式的环境搭建:

主要问题是PHP的VC9版本里没有php5apache2_x.dll了,这个可以到apachelounge.com下载。

3.PHP模块的安装

想装个oauth模块,下载代码自己编译实在太麻烦。。。

最后还是去下载了编译好的binaries。。。

http://downloads.php.net/pierre/

http://windows.php.net/downloads/pecl/releases/oauth/1.2.3/

相关推荐