首先,本文所说的是windows 64位环境下apache和php的安装,也就是windows server 2003 以及windows server 2008r2。32位的方法相同,但是文件应该去apache和php官方下载。
我们需要做的准备工作就是下载visual c++ 2008 x64、visual c++ 2010 x64 2个库文件,官方下载地址分别是:
visual c++ 2008 x64(vc9库):http://www.microsoft.com/zh-cn/download/details.aspx?id=15336
visual c++ 2010 x64(vc9库):http://www.microsoft.com/zh-cn/download/details.aspx?id=13523
因为一般情况下windows server 2003或者windows server 2008 r2都没有安装这两个库文件,所以我们需要自己安装,vc2008库是php 5.3.x运行必须的,而vc2010是apachex64运行必备的,这个需要注意。
windows apache 2.2.22 x64的下载地址:
http://www.apachelounge.com/download/win64/
需要说明的是,目前windiows环境下apache的主流环境有2.2x版本和2.4x版本,本文所说的是2.2.x版本。这个版本的mod_bw此网站没有给出,文末处站长会给出实测有效的mod_bw x64 for apache 2.2.x,解压密码是im486
(备注:mod_bw是apache的一个限速模块,可以限制大文件的下载速度以及线程)
php 5.4.3-php 5.3.13 nts x64 for winodws下载地址:
PHP 5.4.3 and PHP 5.3.13 x64 (64 bit) for Windows
下载完成以后,解压到相应目录以后在开始——>运行栏输入 apache所在目录完整路径/bin/httpd.exe -k install即可将apache注册为系统服务,卸载的时候把install换成uninstall就可以了。运行的时候直接在服务里面开启apache(当然也可以在运行栏输入net start apache2.2)。
此时因为还没有配置完成,所以暂时不运行apache,待php配置完成后再运行。
需要说明的是php 5.3.3以后似乎没有vc6的版本,所以apache只能以fastcgi模式运行。所以我们还需要下载mod_cgid,下载地址是:
http://www.apachelounge.com/download/win64/mods-22/mod_fcgid-2.3.7-win64.zip
下载完成此文件以后,将mod_fcgid目录下mod_fcgid.so解压到apache目录下的modules目录中。
接下来我们编辑apache的http.conf文件,在其中加入如下代码:
01 | LoadModule fcgid_module modules/mod_fcgid.so |
02 | <IfModule mod_fcgid.c> |
03 | AddHandler fcgid-script .fcgi .php |
04 | #下一行"php完整路径"需要替换成你的php解压目录,比如d:/php,下同 |
05 | FcgidInitialEnv PHPRC "PHP完整路径" |
06 | #最大处理请求数 |
07 | FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 10000 |
08 | #单个进程退出前最大请求数 |
09 | FcgidMaxRequestsPerProcess 1000 |
10 | #最多允许多少个php-cgi.exe进程,这里是8,建议设置为10~100,具体看内存大小 |
11 | FcgidMaxProcesses 8 |
12 | #运行超时设置 |
13 | FcgidIOTimeout 120 |
14 | #空闲超时设置 |
15 | FcgidIdleTimeout 120 |
16 | FcgidWrapper "PHP完整路径/php-cgi.exe" .php |
17 | #下面一行如果在mime类型中已经加入则可以省去 |
18 | AddType application/x-httpd-php .php |
19 | </IfModule> |
接下来我们在需要php支持的虚拟主机下,找到Options FollowSymLinks或者Options Indexes FollowSymLinks,一般是前者,因为我们一般禁止目录浏览,在其后添加Includes ExecCGI,然后在服务里启动apache,你就可以看到你的php站点已经在64位服务器上用64位平台运行起来了。
另外,php x64的相关扩展可以在这里下载:http://www.mediafire.com/php-win64-extensions
已知的问题:
1.php_curl.dll运行有问题,作者在文末给出了fixed,但是我这里似乎是受GFW的影响,打不开此页
2.验证码似乎不能显示,即使没有使用完整路径而是给出的相对路径。不知道是我配置的问题还是什么问题,我本机32位相同的配置就可以显示。