Archive for 六月, 2009

Nginx 使用在windows下的配置备忘录

星期二, 六月 30th, 2009

nginx [engine x] 是由 Igor Sysoev开发的一个HTTP 服务器和mail 代理服务器软件
Nginx 因其稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx 超越Apache的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中有新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴 Web 2.0网站。
所以我也打算给我手上的服务器们都换上这个。首先解决使用fastcgi的办法去完成php。
下载后直接运行 nginx.exe 就可以开启nginx机制,提供web服务了
需要注意的是要在服务中加上他的 自动启动~
sc create nginx binpath= “C:\nginx\nginx.exe”  start= auto displayname= “bordfServer_nginx”
sc description nginx “nginx提供bordfServer中的web服务,bordf制作 欢迎访问www.bordf.com.cn”
加服务不好用的 就这样干:
—————————————–
假设nginx安装在c:\nginx\下:
1.下载微软服务注册工具srvany.exe, instsrv.exe, srvany-instsrv存放到c:\nginx\目录下
2.安装Nginx服务, 将命令行切换到c:\nginx\,执行下列命令
instsrv NGINX c:\nginx\srvany.exe
3.在c:\nginx\下,新建一个nginx.reg文件,输入一下内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
“Application”=”C:\\nginx\\nginx.exe”
“AppParameters”=””
“AppDirectory”=”C:\\nginx\\”
5.让服务与程序关联起来, 命令行执行
regedit /s nginx.reg
6.编辑启动nginx脚本start-nginx.bat(关闭脚本不用变), 让程序以服务方式运行
@ECHO OFF
net stop nginx
net start nginx
EXIT
—————————————-
然后修改nginx配置!加载php fastcgi
我使用的 是php-5.2.10-Win32
修改php.ini-dist 为php.ini 打开去掉某些常用的DLL的注释
extension=php_mcrypt.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_gd2.dll
extension_dir = [...]

PHP在IIS下的ISAPI与FastCGI 对比报告

星期二, 六月 30th, 2009

在Windows IIS 6.0下配置PHP,通常有CGI、ISAPI和FastCGI三种配置方式,他们在配置的区别和性能上的有不少差异。
1、CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
2、ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。
在Windows Server 2003的IIS6下配置ISAPI方式的PHP,配置方法是,在IIS的“WEB服务扩展”中,添加一个新的WEB服务扩展,程序后缀为 PHP,ISAPI程序为php5isapi.dll,然后再“环境变量”-“系统变量”中增加变量名PHPRC,数值为php.ini的路径,在 Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择“属性”),再选择“主目录”。点击“配置”按钮,选择“映射 ”Tab页。点击“添加…”,在“可执行文件”设为: c:\php\php5isapi.dll,扩展名设为.php,选择“确认文件是否存在”,然后“确定”保存设置。重启服务器即可完成PHP的配置。(建议在加载的时候 进行一下稍微的过滤)
3、FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是 CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。
我自己将要编写的bordfServer 就是打算使用FastCGI 形式的 PHP +NGINX来进行web服务。
FastCGI已经集成于IIS7,也支持IIS6。
先点这里下载一个32位的FastCGI extension for IIS,然后将其安装,安装后的文件应该放到system32\inetsrv目录下。(好像这个目录有点危险,应该可以转移的吧)
之后打开system32\inetsrv目录,执行下面的语句,其中c:\php为你的PHP目录,可以修改为其他数值。
cscript fcgiconfig.js -add -section:”PHP” -extension:php -path:”c:\php\php-cgi.exe”
在Internet信息服务管理器中,选择网站或应用程序的根目录,打开目录属性页(右键选择“属性”),再选择“主目录”。点击“配置”按钮,选择“ 映射”Tab页。点击“添加…”,在“可执行文件”设为: c:\windows\system32\inetsrv\fcgiext.dll,扩展名设为.php,选择“确认文件是否存在”,然后“确定”保存设置。
修改php.ini文件,增加如下语句:
fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
之后打开system32\inetsrv目录,执行以下语句:
cscript fcgiconfig.js -set -section:”PHP” -InstanceMaxRequests:10000
cscript fcgiconfig.js -set -section:”PHP” -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
最后,配置c:\php目录的安全性,使得IIS_WPG组对于这个目录有读取和执行的权限。
这时候,基于FastCGI的PHP就成功配置到IIS6上了。
不过根据我自己的测试,FastCGI的性能比ISAPI的好像高不了多少,不知道Windows Server 2008下的IIS7是不是会好一些。这里是微软提供的基于内置FastCGI的IIS7安装PHP的方法。(IIS7 据说性能和apache差不多了。但是我选择了nginx)
感谢月光博主的 知识扫盲。谢谢!
来源:http://www.williamlong.info/archives/1846.html

Mysql绿色(mySql-noinstall)配置使用以及在windows下的安装、设置与启动方法

星期二, 六月 30th, 2009

我使用的是mysql-noinstall-5.0.22-win32
解压到一个目录去,这个就是mysql的 目录了~
然后就是该删除的删除,精简下,有很多其实是用不到的 ~
第一点:
my-small.ini (内存 <= 64M)
my-medium.ini (内存 128M )
my-large.ini (内存 512M)
my-huge.ini (内存 1G-2G)
my-innodb-heavy-4G.ini (内存 4GB)
对应自己的配置,自己选择下,我的是my-innodb-heavy-4G.ini,其他的就删除吧~   然后重命名成my.ini.
第二点:
编辑my.ini,在[mysqld]的“port=3306”下面增加如下几句:
# 安装目录的路径
basedir=”XXXXXXXXXXXXXX”
# 设置mysql数据库的数据的存放目录
datadir=”XXXXXXXXXXXXXXXXXX”
# 设置mysql数据库搜索引擎
default-storage-engine=innodb
注意,在Windows中路径名中使用斜杠“/”而不是反斜杠“\”。 如果使用反斜杠“\”,那么必须双写它们“\\”。 还要注意一定是放到[mysqld]下的!
在[mysql]下面新增:
# 设置mysql服务器的字符集
default-character-set = utf8
修改以下几句:
#max_allowed_packet 参数说明:用来控制其通信缓冲区的最大长度。
max_allowed_packet = 128M
#sort_buffer_size 参数说明:查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!
如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。
所以,对于内存在4GB左右的服务器推荐设置为6-8M。
sort_buffer_size =6M  (4G的my.ini中这些数值好像很大.默认512M的… 按照计算的话,内存全都给MYSQL给占了,先修改成6M的吧,如果不行,再修改呗。6M和512M也差太多了吧… 汗… )
第三点:安装服务
cmd:
cd到 mysql的安装路径下的bin里
mysqld-nt  –install Mysql –defaults-file=”mysql安装路径\my.ini”  指定服务与配置文件
–install Mysql – 为安装的 服务名称
简单安装服务办法:mysqld-nt –install
这样用默认的 MySQL 为名称添加了一个windows服务
sc delete 服务名称   可以删除服务  比如:sc delete Mysql
mysqld-nt [...]

Nginx+php+mysql应用于windows服务器组件包_bordfServer制作计划

星期二, 六月 30th, 2009

一直以来都是使用的组件包,很推崇amps
最近几年nginx开始流行,个人感觉也不错,所以决定自己写个组件包来使用~
因为只会使用windows服务器,所以使用windows版本的nginx
最初的版本上 只会加载 php(fast cgi)以及mysql5.0
当然我会写好rewrite 规则,因为,我自己会用到的!
phpMyAdmin-3.1.2也会被安装进去的~
开始行动,使用mysql5.022作为数据库。
nginx使用nginx-0.8.4版本
开始行动!

PR2了

星期四, 六月 25th, 2009

其实手底下的站,一般都是PR4的 …
不过这个blog是自己亲手一点点的经营的,PR2,也不错了~

飞信fetion发送短信的API接口使用c#的实例

星期四, 六月 18th, 2009

飞信免费发短信API接口调用方式(通过HTTP访问以下网址、支持GET和POST):
http://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
2009年5月28日新增:飞信免费发短信API接口调用方式(通过HTTPS加密隧道访问以下网址、支持GET和POST,进一步保证您的密码安全):
https://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&password=您的移动飞信登录密码&sendto=接收短信的飞信好友手机号(也可以是你自己的手机号)&message=短信内容
注:短信内容最大长度为180个汉字,超过180个汉字不发送。返回的信息为UTF-8编码的中文文本信息。
来源:张宴 高人,他的APMS也很强大!
发送实例:我自己写的~ c#的
C# CODE:
aspx:
<%@ Page Language=”C#” AutoEventWireup=”true”  CodeFile=”Default.aspx.cs” Inherits=”_Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>短讯发送</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<asp:TextBox ID=”tel” runat=”server” Width=”203px” Text =”要发送的手机号码”></asp:TextBox>
<asp:TextBox ID=”content” runat=”server” Text =”短信内容″></asp:TextBox>
<asp:Button ID=”send” runat=”server” Text=”发送短信” OnClick=”send_Click” /></div>
</form>
</body>
</html>
cs:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Net;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page{
protected void send_Click(object sender, EventArgs e)
{
string [...]

第三次装DONET2005…

星期四, 六月 18th, 2009

大学三年级的时候装过一次,算是知道了什么叫作C#吧
然后 大学毕业后装了次。基本没用上~
现在第三次装,希望能多写点吧~

windows下MySQL5绿色版的安装方法

星期三, 六月 17th, 2009

一、下载MySQL
http://www.mysql.org/downloads
二、安装过程
1、解压缩mysql-noinstall-5.0.45-win32.zip到一个目录。
假定MYSQL_HOME=D:\Dev\mysql-5.0.45
2、编写mysql的运行配置文件my.ini
my.ini
—————————–
[mysqld]
# 设置mysql的安装目录
basedir=$MYSQL_HOME
# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx\data
datadir=$MYSQL_HOME\data
# 设置mysql服务器的字符集
default-character-set=utf8
[client]
# 设置mysql客户端的字符集
default-character-set=gbk
—————————–
3、安装mysql服务
从MS-DOS窗口进入目录E:\myserver\mysql-5.0.37-win32\bin,运行如下命令:
mysqld –install MySQL5 –defaults-file=:\Dev\mysql-5.0.45\my.ini
4、启动mysql数据库
还在上面的命令窗口里面,输入命令:net start MySQL5
这样就启动了mysql服务。
5、删除服务
执行mysqld –remove MySQL5即可

Serv-U配置Internet防火墙

星期六, 六月 13th, 2009

如今的网络防火墙各不相同,而且针对FTP的处理方式也各不相同。您可以在您的防火墙说明上,或者联系制造商等,来了解是否需要开启任何特殊的设置,来允许FTP数据的正常通过。(否则也许会被防火墙阻拦)
通常情况下,您需要设置防火墙开放端口21,并且为被动模式开放50000~50004的端口。然后就可以像问题一中一样,通过对域,本地服务器中的设置,来使Serv-U监听21端口,并配置好相应的被动模式端口。

Serv-U一个账号管理多个分区..

星期六, 六月 13th, 2009

这个很实用~
在用户的主目录之外访问FTP服务器的其他资源是比较困难的。因为这需要用户了解服务器里成千上万的目录结构,而这样显然是管理员所不希望提供的。(这只会使情况变复杂)Serv-U允许用户按照真实的目录环境,构造虚拟路径。而具体构建虚拟路径的方式如下:
首先,打开Serv-U Administrator。
然后,选择您需要建立虚拟路径的域。
第三,在展开的目录里选择“设置” 。
第四,在右边的项目中选择“虚拟路径”。
第五,在虚拟路径映射下点选“添加”。  如图所示:

 第六,输入“物理路径”,即,资源的确切存放路径。(例如:C:\FTP\Virtual)

 第七,选择要映射物理路径的目录的位置(%HOME%指的是主目录)

第八,给映射的路径起个名字。用户在映射的路径目录中看到的名字(例如,Virtual Directory)

如果用户没有访问虚拟路径的权限,那么他将无法看见相应的目录。所以管理员需要确保用户有这样的权限——比如一个用户叫“小军”,想查看指向C:\FTP\Virtual的虚拟路径,那么就必须给予“小军”这个许可。可以在每个用户的“设置”里对他们进行这样的授权。这样设置完,“小军”就可以登陆并在他的主目录里看到虚拟路径的目录了。
在Windows NT,2000,XP还有2003的系统下, Serv-U的系统服务默认是运行在本地系统的默认帐户下的。而这个账户没有权限访问任何网络资源。这种问题很常见,解决的办法有两个:
1、 简单的处理方法是关闭Serv-U运行的服务。运行Serv-U Administrator,在本地服务器下将“自动开始”(系统服务)的勾去掉。
2、 稍微麻烦一些的办法是,让Serv-U用有权限访问网络资源的账户登陆和启动服务。因为每个人的用户名或者网络不一样,我们无法确切告诉您怎么配置您的账户。但可以告诉您,这类设置在Windows控制面板下可以修改。如果您不知道哪个账户有这样的权力,请联系您的网络管理员。
Serv-U以系统服务的形式运行还会带来一个潜在的问题。就是系统服务是无法识别映射的网络驱动器的。因此,每一个指定的网络地址都必须以UNC的格式(通用命名标准)存放。(例如\\server\share)
注意:Serv-U Personal Edition(个人版)并不支持虚拟路径功能。而其他所有版本都拥有该功能。

550 Permission denied.-列表错误FTP客户端无法看见目录列表或连接解决方案

星期六, 六月 13th, 2009

有些时候,Internet服务供应商为了防止他们的客户自建FTP服务器而禁止了FTP端口:21端口。他们监听这个端口的数据,并适时关闭目录菜单和文件的传递。更有甚者,关闭这个端口的所有数据连接。
一些用户发现他们可以通过改变Serv-U监听的端口来使其他人连接他们的FTP服务器。也就是把Serv-U监听的21端口改成其他不常用的端口号。
通常,用于更改的端口号是1024之后的,比如端口2121。这些端口没有为任何应用程序保留。而其他的在1024之前的一些除了21号端口之外的端口也可以用来代替,但是这就要冒有可能和其他服务冲突的风险。具体可以尝试不同的端口设置来找出可以使用的端口。
注意:如果你改变了Serv-U的监听端口,你也必须改变你的FTP客户端的端口。在FTP Voyager中,你可以在连接选项下,点击“高级”设置你的端口地址。
另外,建立一个FTP服务器也许会违反您的ISP的规定。所以请您向为您提供Internet服务的供应商申请更改端口的许可。
另一个常见的问题是,被动模式没有配置好,这样就会导致数据包被路由器或者防火墙拦截下来。如果是这样的话,请参考本文的第一个问题–Serv-U路由器、防火墙完全设置

Serv-U与McAfee Virus冲突被杀处理

星期六, 六月 13th, 2009

McAfee Virus在2004年4月29号和同年10月9号的病毒库中,将Serv-U定义为“潜在的不受欢迎的程序”。虽然McAfee将这些程序视为与病毒的工作方式在某些方面类似,但是,必须声明和强调的是,ServUDaemon.exe和susetup.exe并不是病毒。ServUDaemon.exe是Serv-U的FTP引擎,而susetup.exe是Serv-U的安装程序。
McAfee一直将Serv-U定义为“潜在的不受欢迎的程序”。这就使得您的反病毒软件有可能对Serv-U采取行动。您可以按照下面的图示来关闭这种误判。
注释:我们现在在努力和McAfee和Avert Labs协调。试图阻止防毒软件对Serv-U的误判。我们希望能真正永久的结束这个难题。

Serv-U与路由器以及防火墙的设置

星期六, 六月 13th, 2009

首先,设置路由器里的转发规则,将21端口映射到Serv-U监听的内网IP地址。这样路由器就会将外网试图访问内网FTP的数据包转发至Serv-U。一般现在市面上的路由器都有这样的转发功能。另外,如果您的路由器支持UPnP(通用即插即用),那么Serv-U的6.2以上版本里将可以自动设置您的路由器端口。
第二,在Serv-U里,设置一个被动模式的IP地址来使Serv-U区别内网IP和真实的外网IP,具体步骤如下:
·首先,在域内,选择设置。(如图所示的域123)
·然后,选择高级选项。
·在图示位置,输入您链接Internet的外网IP。但是如果您的链接是动态IP(如电信的一些web式宽带接入),那就不要在这打勾。

接着,为Serv-U设置PASV端口范围:
在“本地服务器”中选择“设置”——接着点高级,如图所示,设置好PASV范围。

在设置PASV端口范围时,我们推荐的范围是50000——50004.然后在路由器打开相同的端口范围并将它们与Serv-U相映射。
基于以上设置,用户可以从任意一个FTP客户端用PASV模式链接上服务器。不过,如果仍然不能连接服务器,就先关闭“拦截FTP_bounce攻击和FXP”。通常这个选项会引起一些连接失败,原因比较复杂。