Windows平台下Apache+PHP5.3+FastCGI+XCache安装笔记 2011版
http://www.newsmth.net/pc/pccon.php?id=7204&nid=425506
http://lee.kometo.com/archives/655#more-655
几点说明
1.PHP自5.3版起默认不在支持针对Windows的VC6编译版本,只提供VC9版本的,而APAche官方提供的Apache Windows编译包都是VC6的。所以我们需要使用第三方编译的VC9版本的Apache。
2.PHP 的 None Thread Safe 版本适用于CGI/FastCGI方式,而相应的Thread Safe版本适用于SAPI和Mod方式
3.http://www.apachelounge.com/download/ 这里提供了大量适用于Windows的LAMP有关预编译包,包括VC9版本的Apache和FastCGI,这个网站也是PHP官方推荐的网站。
版本选择及安装包获取
Apache 2.2 VC9 来源: http://www.apachelounge.com/download/
mod_fcgid-2.3.6-win32-x86 http://www.apachelounge.com/download/
PHP 5.3.6 nts vc9 来源:php.com
VC 2008 RunTime vcredist_x86 来源:php.com
XCache-1.3.0-php-5.3.0-nts-Win32-VC9-x86.zip 来源:http://xcache.lighttpd.net/pub/Releases/
安装过程
1.下载准备好有关安装包,解压apache,php到规划好的目录,比如:d:\server\
2.按照说明分别把 mod_fcgid.so 和php_xcache.dll 解压到相应的目录
3.安装 VC 2008 RunTime vcredist_x86
4.建立配置文件目录,比如 d:\server\confs
5.分别编辑/建立有关的配置文件,有关配置文件详见下面实例,(配置文件中涉及的路径及具体配置请根据实际情况修改)
6.使用 httpd -k install -n "service name" 方式手动安装服务
基本目录结构
d:\server
\apache
\php5
\confs
\apache
\php5
\logs
\wwwroot
配置文件示例
Aapche默认配置文件修改( d:\server\apache\conf\httpd.conf)
#修改 Serverroot
#修改 documentroot
#在文件末尾增加自动搜索配置文件的路径
include "D:/server/confs/apache/*.conf"
php-fcgid.conf (d:\server\confs\apache\)
#加载 mod_fcgid
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi .php
#php.ini的存放目录
FcgidInitialEnv PHPRC "d:/server/confs/php5/"
# 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 500
#php-cgi每个进程的最大请求数
FcgidMaxRequestsPerProcess 500
#php-cgi最大的进程数
FcgidMaxProcesses 5
#最大执行时间
FcgidIOTimeout 120
FcgidIdleTimeout 120
#php-cgi的路径
FcgidWrapper "D:/server/php-5.3.6-nts/php-cgi.exe" .php
AddType application/x-httpd-php .php
</IfModule>
#这里是关于prefork的配置,此配置未经验证,而且似乎上面提到apache安装包不是使用prefork模式的
#这段配置放到这里仅仅是留在备用参考,可以不使用
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 1024
MaxClients 768
MaxRequestsPerChild 0
</IfModule>
vh.conf(d:\server\confs\apache\)
#加载一些mod
LoadModule rewrite_module modules/mod_rewrite.so
#定义有关目录、端口、虚拟主机配置
Listen 10.5.183.132:80
NameVirtualHost 10.5.183.132:80
<Directory "D:/wwwroot">
Options ExecCGI FollowSymLinks ExecCGI #必须有ExecCGI,才能运行PHP
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
<VirtualHost 10.5.183.132:80>
DocumentRoot "D:/wwwroot/www.test.local"
ServerName www.test.local
</VirtualHost>
php.ini (d:/server/confs/php5)
[Custom]
;***************************************************
; Custom Config 这段配置可以直接附加到默认的PHP.ini文件末尾
;***************************************************
date.timezone = "Asia/Shanghai"
pdo_mysql.default_socket=
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1;
;session.save_handler = files
;session.save_path = /tmp
session.use_cookies = 1
;session.use_only_cookies = 1
; file_uploads = On
; upload_tmp_dir =
; upload_max_filesize = 2M
; post_max_size = 8M
; memory_limit = 8M
; max_execution_time = 30
; max_input_time = 60
display_errors = on
; error_reporting = E_ALL
log_errors = off
error_log = d:\server\confs\logs\php-error.log
; mysql.connect_timeout = 1
; doc_root = d:\wwwroot
;; 加载Ext
extension_dir = "D:\server\php-5.3.6-nts\ext"
extension = php_mysql.dll
extension = php_mysqli.dll
;extension = php_pdo.dll
extension = php_pdo_mysql.dll
extension = php_mbstring.dll
extension = php_mcrypt.dll
extension = php_gd2.dll
extension = php_bz2.dll
extension = php_curl.dll
[xcache]
;; Xcache 配置
;; 安装成 zend extension (推荐), 路径一般是 "$extension_dir/xcache.so"
;; zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
;; Windows 系统例子:
;zend_extension_ts = d:/Servers/Php5.3/ext/php_xcacshedd.dll
;; 或者您也可把 XCache 安装成 extension, 注意确保您的 extension_dir 设置正确, 并把 xcache.so 或者 php_xcache.dll 放到该目录里面
; extension = xcache.so
;; 或者 Win32 系统:
extension = "d:/server/php-5.3.6-nts/ext/php_xcache.dll"
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
; xcache.admin.pass = md5($您的密码)
xcache.admin.pass = "******"
; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = "mmap"
; 禁用: xcache.size=0
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
xcache.size = 64M
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)
xcache.slots = 8K
; 缓存项目的 ttl, 0=永久
xcache.ttl = 0
; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
xcache.gc_interval = 0
; 同上, 只是针对变量缓存设置
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8K
; 默认, 允许 ini_set()
xcache.var_ttl = 0
; 最大ttl值
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; 仅测试用
xcache.test = Off
; /dev/zero 时无效
xcache.readonly_protection = Off
; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).
; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"
; 2 个 php 组不会共享同一个 /tmp/xcache
; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
xcache.mmap_path = "/tmp/xcache"
; 仅用于 *nix 系统
; 设置为空(禁用) 或者类似 "/tmp/phpcore/"
; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off
xcache.coverager = Off
; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
; 依赖于 xcache.coverager=On
xcache.coveragedump_directory = ""
[Xdebug]
;Xdebug 配置 ,暂时还没测试Xdebug和Xcache的兼容性,这段配置放在这里仅仅是备用
;zend_extension_ts = "D:\server\php5\ext\php_xdebug-2.0.5-5.3-vc6.dll"
;zend_extension = "D:\server\php5\ext\php_xdebug-2.0.5-5.3-vc6-nts.dll"
xdebug.auto_trace = off ;开启自动跟踪
xdebug.remote_autostart = off ;开启远程调试自动启动
xdebug.remote_enable = 1
xdebug.remote_host = pc-dev.ysh.local
xdebug.remote_port = 9000
;xdebug.remote_handler = “dbgp”
xdebug.show_exception_trace = off ;开启异常跟踪
xdebug.collect_vars = On ;收集变量
xdebug.collect_return = On ;收集返回值
xdebug.collect_params = On ;收集参数
原文链接 http://lee.kometo.com/archives/655#more-655