在IIS 6中安装FastCGI运行PHP

为 系统Windows2003,512M内存的vps配置fastcgi+php支持,步骤如下

  1. 下载必要文件FastCGI扩展:http://www.iis.net/extensions/fastcgi (根据自己系统选择相应版本)
    php文件包:http://windows.php.net/download这里选择下载VC9 x86 Non Thread Safe的zip压缩包,具体说明查看windows平台PHP版本选择说明
  2. 安装FastCGI扩展,同时将会拷贝相关到 “%windir%\system32\inetsrv”文件夹下,并注册成IIS的扩展。其中文件包括:
    1. fcgiext.dll – fastcgi处理程序
    2. fcgiext.ini – 配置文件
    3. fcgiconfig.js – FastCGI的控制脚本

    解压php压缩包到指定目录(c:\webserver\php),并把其安装路径(c:\webserver\php)注册到系统变量PATH中,添加名为 PHPRC 值其php安装目录的系统变量

  3. 运行fcgiconfig.js配置脚本注册php-cgi.exe处理php文件,命令如下:
    cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"c:\webserver\php\php-cgi.exe"

    (fcgiconfig.js存在%windir%\system32\inetsrv目录下,为避免发生找不到脚本的错误,fcgiconfig.js可以使用其绝对路径,或进入其所在目录执行。如果想仅仅是为一个站点添加 php的处理功能可以在命令后添加 “–site:[siteId]” 参数)
    修改php.ini
    extension_dir="c:\webserver\php\ext"
    fastcgi.impersonate = 1
    cgi.fix_pathinfo=1
    cgi.force_redirect = 0

    配置回收php-cgi最大成功请求数

    cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:10000
    cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP"-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

    其请求大小根据自己配置执行设定,但要保持InstanceMaxRequests小于或等于 PHP_FCGI_MAX_REQUESTS 。

参考:Configure the FastCGI Extension for IIS 6.0

[Php]windows平台PHP版本选择说明(转)

最近在PHP官网上看到又有新版的PHP下载了,于是上去找找For Windows的版本,可是一看确傻眼了,一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。

一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本

VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。

VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。

二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本

先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。

ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;

而 FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。

官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

美女计时桌面小工具

最近在异次元软件世界网站看到这个小工具,可以让很多美女给你报时,以前也看类似网站搞这个,很有创意。据说是它们每一分钟都显示一张美女拿着时间牌拍的照片,然后每分钟都自动更新。根据一天1440分钟(24小时*60分钟)计算,每天你就能看到1千多张美女的照片了!

  1. 安装很简单,解压并将目录下bijintokei.Gadget文件复制到C:\Program Files\Windows Sidebar\Gadgets
  2. 返回桌面,右键》小工具》美女计时

下载:SkyDriver

来源:美女时钟网站与Windows侧边栏工具 (捕捉漂亮MM,让时间变得更美丽)

[笔记]使用poEdit代替gettext新建编辑po文件

PoEdit 是翻译PO文件的工具软件,跨平台,我用的是win32下的1.4.2简体中文版本。poEdit可以直接对pot/po等文件直接操作。
下面将结束直接新建一个消息目录文档:
范例源文件代码(hello.php)

<?php
echo gettext('Hello world');
$me=_("in perfect harmony;");
?>

一、新建

点击文件-》消息目录文档
1.填入工程名称,和字符集(在这里 填写是utf-8)
po设置
2.填写基本路径(以便poedit准确扫描源文件,这里输入是 . 将扫描当前和其子目录的源文件)
po路径设置
3.填写关键字(如果默认不使用gettext函数,如在wordpress中使用 __ 和 _e)
po关键字填写
4.保存po日志文件,接着poEdit开始扫描,列出新建和过时的字符串如下
po列出字符串

二、使用poedit进行翻译

下面就可以下是翻译
翻译图
接着你可以使用工具栏上面的
保持进行保存操作,同时会生成同名mo二进制文件
更新同步可以和源文件进再次更新同步操作

进一步提升:使用PoEdit翻译PO文件
wordpress codex: http://codex.wordpress.org/User:Skippy/Creating_POT_Files

[笔记]gettext基本操作

近来随着i18n的逐渐标准化,在 PHP 也可以利用 gettext 库写作 i18n 程序,实现 NLS(Native Language Support) 国际化支持。以下是gettext对po/mo操作的记录。
操作环境:windows7 ,程序语言:php
因为是Windows环境我们使用GNU gettext,可以进入sourceforge.net下载页面。这里我们下载完整包(Complete package, except sources)
为了方便操作,先把其安装目录下的bin目录加入到系统环境变量 path(路径)中。(步骤:我的电脑->属性->高级-点击 环境变量)
以下是被翻译源码:

<?php
echo gettext('Hello world');
$me=_("in perfect harmony;");
?>

1. 开始创建pot模板文档(默认是生产是po后缀文档,可以需手动改成pot)
打开命令行(win7需要管理员身份运行)命令如下,生成 hello.pot 模板:

xgettext -d hello -o E:\hello.pot --from-code=UTF-8 E:\hello.php

用法:xgettext [选项] [输入文件]…
从给定的输入文件中提取可翻译的字符串。

2. 生成翻译的拷贝 (这是以中文为例zh_CN,同时注意编码)

msginit -i hello.pot -l zh_CN -o my-zh_CN.po

用法:msginit [选项]
创建新的 PO 文件,即根据用户环境取值初始化文件头。

生成my-zh_CN.po完全大写的地方,就是要你(翻译者)去正确填写的部分。不同的国家(地区),不同的翻译者,填写的时候都要遵守一定的规则。而翻译工作,在填完了以上这些头部内容以后,就显得非常简单了。只要对应于 msgid”…” 中的内容,把它翻译成你(翻译者)自己的语言,写在 msgstr”" 中就行了。
3.生成二进制文件

msgfmt my-zh_CN.po -o zh_CN.mo

用法:msgfmt [选项] 文件名.po …
由文字模式描述生成二进制消息文件。

你反编译 可以使用msgunfmt zh_CN.mo -o my-zh_CN.po