标签 windows 下的文章

在制作xServer集成环境Windows版过程中,发现官方编译版组件较少,故自行从源码编译了Nginx,下面为详细步骤。

一、下载如下文件

VS2008     http://download.microsoft.com/download/3/0/2/3025EAE6-2E15-4972-972A-F5B1ED248E85/VS2008ExpressWithSP1CHSX1504735.iso
Perl       http://strawberry-perl.googlecode.com/files/strawberry-perl-5.16.3.1-32bit.msi
Mercurial  http://mercurial.selenic.com/downloads/
MinGW      http://sourceforge.net/projects/mingw/files/latest/download

OpenSSL    http://www.openssl.org/source/openssl-1.0.1e.tar.gz
Pcre       http://nchc.dl.sourceforge.net/project/pcre/pcre/8.32/pcre-8.32.zip
Zlib       http://zlib.net/zlib-1.2.8.tar.gz

subs_filter   https://codeload.github.com/yaoweibin/ngx_http_substitutions_filter_module/zip/master

二、编译nginx

1、安装 VS2008、Perl、Mercurial,分别对应C++编译环境、Perl脚本运行时、Hg源码仓库客户端

2、安装MinGW管理器,添加MSYS模块,其他模块可以不安装,用于生成Makefile文件

a、使用 C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe 替换 C:\MinGW\msys\1.0\bin\link.exe

b、编辑 C:\MinGW\msys\1.0\msys.bat 在@echo off下面加入:call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

3、将 OpenSSL、Pcre、Zlib 分别解压到目录 c:\nginx\objs\lib{openssl-1.0.1e,pcre-8.32,zlib-1.2.8} 中

4、检出nginx源码,命令:hg clone --verbose -- http://hg.nginx.org/nginx c:\nginx

a.编辑 c:\nginx\src\core\nginx.h 修改服务器名称

b.替换 c:\nginx\src\os\win32\nginx.ico 自定义软件图标

c.将 subs_filter 解压到 c:\nginx\objs\module\http_subs_filter
编辑文件 ngx_http_subs_filter_module.c,将 ngx_regex_compile_t rc; 移动到当前函数顶部,否则编译出错

5、把下面命令写入到c:\nginx\mkngx,然后在msys中执行该文件

    auto/configure --with-cc=cl --builddir=objs --prefix= --sbin-path=nginx.exe --conf-path=conf/nginx.conf \
        --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log \
        --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp \
        --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp \
        --with-cc-opt=-DFD_SETSIZE=1024 --with-select_module --with-ipv6 --with-mail \
        --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module \
        --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module \
        --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module \
        --with-pcre=objs/lib/pcre-8.32 --with-zlib=objs/lib/zlib-1.2.8 --with-openssl=objs/lib/openssl-1.0.1e \
        --with-openssl-opt=enable-tlsext --with-http_ssl_module --with-mail_ssl_module \
        --add-module=objs/module/http_subs_filter

    mkdir objs/{conf,logs}
    nmake -f objs/Makefile

6、执行上述步骤时可能会提示找不到stdin.h文件

编辑 c:\nginx\objs\lib\pcre-8.32\config.h,删除如下内容

    #ifndef HAVE_INTTYPES_H
    #define HAVE_INTTYPES_H 1
    #endif

    #ifndef HAVE_STDINT_H
    #define HAVE_STDINT_H 1
    #endif

今天想给局域网的朋友发消息,竟然发现命令失败;谷歌之,原来XP时代的“net send”,在windows7中已用“msg”替代。

MSG {username | sessionname | sessionid | @filename | *}
    [/SERVER:servername] [/TIME:seconds] [/V] [/W] [message]

  username            标识指定的用户名。
  sessionname         会话名。
  sessionid           会话 ID。
  @filename           识别该文件,文件含有将所发消息发送到的用户名、会话名和会话标识号的列表。
  *                   给指定服务器上的所有会话发送信息。
  /SERVER:servername  要联系的服务器(默认值是当前值)。
  /TIME:seconds       等待接收器确认消息的时间延迟。
  /V                  显示有关执行的操作的信息。
  /W                  等待用户的响应,跟 /V 一起有用。
  message             要发送的消息。如果没有指定,发出提示,或者从 stdin 读取。

简单用法如下:
msg /server:局域网IP * 信息内容

延伸一个用用法,定时提示:
at 20:57 msg * 信息内容

SSLCertKit是若海[mail@anrip.com]使用DOS命令编写的,生成供Nginx使用的数字证书的小工具。

SSLCertKit调用openssl来生成数字证书,生成的证书可以给Windows或Unix(Linux)下的Nginx使用,以支持HTTPS协议。

此工具使用于以下几种情况:
1、创建自己的RootCA和服务器证书
2、创建自签名的服务器证书
3、使用第三方签名服务器证书

下载附件: SSLCertKit

Windows下使用php sendmail配置方法是否不太可能,但也不是绝路,现在告诉大家如何在WINDOWS平台下解决php sendmail配置问题.

大家非常好奇为什么别人大型公司的论坛注册后会系统自动发送一封注册信息的电子邮件到注册人的信箱里,而同样用的是一种内核的论坛程序,为什么自己架设的却没有这个功能,今天我来为大家解密这个原因。我们拿PHPBB来举例,这个论坛内核早已经写好了论坛邮件发送功能,只需要你本地有个SMTP转发的服务在就可以,由于大公司服务器大多数用的是UNIX或者是LIUNX,因为这些服务器本身具有本地SMTP服务的作用,所以可以直接发注册信息到注册人的邮箱里,而我们个人架设网站大部分都是WINDOWS的平台,由于ASP论坛非常不安全,而ASPX论坛又不好进行开源。

虽然这两种论坛架构非常容易运用些IIS的相关的SMTP服务器来解决问题,但都先天不足,很多网友都非常喜欢用PHP内核的论坛来架设,比如PHPBB、PHPWIND、等这些都是具备论坛发信功能,但由于PHP先天就是LIUNX的宠爱,所以WINDOWS下支持SMTP的东西不是很多.Windows下使用php sendmail配置方法是否不太可能,但也不是绝路,现在告诉大家如何在WINDOWS平台下解决php sendmail配置问题.

1.修改 sendmail.ini 文件,修改以下信息:

smtp_server = mail.anrip.com
auth_username = user@anrip.com
auth_password = passwd

2.修改 php.ini 文件,修改以下信息:

[mail function]
;smtp_port = 25
;sendmail_from =
sendmail_path = "E:\sendmail\sendmail.exe -t"
  1. 重新启动php进程,测试mail()功能:
<?php
    $now = date("Y-m-d h:i:s");
    $from_name = '寄件人';
    $from_email =
    $headers = 'From: $from_name <$from_email>';
    $body = '嗨, \n 這是一封测试信件来自 $from_name <$from_email>.';
    $subject = '[$now] 测试邮件发送';
    if (mail($to, $subject, $body, $headers)) {
        echo "success!";
    } else {
        echo "fail…";
    }
?>

这样,Windows下使用php-sendmail配置就顺利完成了!

1、客户机开启超级用户。

2、然后在开始=》运行=》输入cmd,然后输入以下命令即可开启或关闭PAE模式。

::开启PAE模式
bcdedit /set PAE forceenable
::关闭PAE模式
bcdedit /set PAE forcedisable

注意:该命令需要在管理员状态下运行。

3、执行完命令后,可以通过继续输入bcdedit来查看PAE开启状态。

4、此方法同样适用于 Windows Server 2008