IIS FastCGI PHP 环境下搭建 WordPress

2010-1-12 Jerry 开发

2009年年底最郁闷的事情除了离开 Sun 以外莫过于自己的博客站点被无故关停。服务商给的解释是 CPU 和流量超负荷。这个理由非常搞笑,因为我的站点上只放了一个 WordPress 博客程序。如果我的博客 CPU 和流量能达到超负荷的级别,那这个站点绝对 PR >=4 了。

几经波折,从服务商那边要回了站点文件和数据库备份脚本。新申请了 DreamHost,但是至今状态还在 pending。正值前段时间在家里部署了一台 Windows Server 2008,遂尝试在自己的服务器上恢复博客应用。

Windows Server 2008 (SP2) + IIS 7

添加 Web 服务器角色,需要安装 CGI 扩展支持。

FastCGI + PHP (5.2.12) + MySQL (5.1) + Zend (3.3)

先从 php.net 官网下载Windows 版本安装程序,这里使用的版本是 5.2.12。本人 5.2 和 5.3 版本均做过尝试,发现 5.3 非常不稳定,会出现程序卡住的现象,建议还是 5.2 版本。另外压缩版本的配置文件也不太好用,调整的地方过多,建议使用 MSI 版本。安装的时候在向导中选择 IIS FastCGI,扩展 ext 不要乱选,有些组件还需要下载其他文件支持,容易出现缺少文件的问题。

安装后,打开 PHP.ini 配置如下选项,注意把前面的;注释去掉:

fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
open_basedir = Web 根目录
date.timezone ="Asia/Shanghai"

short_open_tag = On

其中后两个配置选项是在部署 WordPress 碰到问题时需要添加的。

“开始” - “运行” - 进入 PHP 安装目录,运行:php -info,正常情况下会输出各种参数变量。

打开 IIS 管理器,找到“处理程序映射”,右侧面板中选择“添加模块映射”,路径 *.php,模块 FastCgiModule,可执行文件 php-cgi.exe 所在路径,名称可以写为 PHP_via_FastCGI。弹出提示选择“是”。PHP 支持添加完成。

注意,wwwroot 文件权限需要设定好,否则应用将无法正常上传或修改文件。

MySQLZend 的安装比较轻松,根据向导一路 Next 即可。

MySQL 数据库中涉及到 WordPress 域名变换的问题,可以使用 mysqldump 先导出 SQL,文本替换旧域名,然后 mysqlimport  导入。

Serv-U (9.2) PASV 设定

IIS 的 FTP 服务器比较简单,Serv-U 更为强大,而且支持 FTPS 和 SFTP。在 Serv-U 搭建中一个比较常见的问题是“被动模式”端口因为防火墙而无法正常访问。这将导致 WordPress 不能自动更新和自动安装插件。建议在设置中设定 PASV 端口范围,并添加防火墙例外。

其他尚待解决的问题

  1. WordPress Flash 上传图片组件运行不正常。
  2. WordPress XML-RPC 不正常,无法使用 Windows Live Writer。


发表评论:

Powered by emlog sitemap